Operator Tags

An Open Web Standard for AI Agent Interactions

Introduction to Operator Tags

Operator Tags is an open standard designed to enable AI agents and assistants to safely and effectively interact with web content. By embedding semantic metadata directly into HTML elements, website owners can specify how AI systems should interpret, access, and interact with their content.

Open Standard: This specification is an open standard, designed for community-driven improvement and widespread adoption. We welcome contributions and feedback to enhance its functionality and scope.

Purpose & Benefits

For Website Owners

  • Control how AI agents interact with your content
  • Protect sensitive or proprietary information
  • Ensure accurate interpretation of your content
  • Create AI-friendly interactive experiences
  • Develop paywalled or premium content with clear access controls

For AI Developers

  • Clearly understand permitted interactions with web content
  • Access semantic information about content structure and purpose
  • Respect content restrictions and privacy settings
  • Create more intelligent and contextually aware interactions

For Users

  • Enhanced privacy protection
  • Better AI-assisted browsing experiences
  • Clearer understanding of content that AI can/cannot access
  • More accurate AI interpretations of web content

Implementation Guide

Basic Implementation

Operator Tags are implemented as HTML attributes using the operator- prefix. They can be applied to any HTML element.

<div operator-info="product description" operator-access="allow">
    Product details here...
</div>

Implementation Methods

There are three ways to implement Operator Tags:

1. Direct HTML Attributes

Add attributes directly to HTML elements:

<p operator-info="pricing details" operator-access="allow">$99.99</p>

2. Custom Element

Use the dedicated <operator> element:

<operator operator-info="special instructions" operator-access="allow">
    Instructions for AI agents...
</operator>

3. HTTP Headers

For page-wide settings, use HTTP headers:

Operator-Access: deny-screenshot
Operator-Access-Control: must-authenticate
Operator-Privacy: no-process-pii

Core Attributes

Attribute Description Values Example
operator-info Provides descriptive information about the element for AI agents String operator-info="product pricing information"
operator-label Short label for the element that AIs can reference String operator-label="price-tag"
operator-role Semantic role of the element (similar to ARIA roles) String operator-role="navigation"
operator-importance Indicates importance level for AI processing critical, high, medium, low operator-importance="high"
operator-version Version of the operator tag specification String (semver) operator-version="1.0.0"

Access Control Tags

Basic Access Control

These tags control whether AI agents can access, process, or interact with content.

operator-access="allow"

Explicitly allows AI agents to access and process this content.

<div operator-access="allow">
    This content is available for AI processing.
</div>

operator-access="deny"

Explicitly prevents AI agents from accessing or processing this content.

<div operator-access="deny">
    This content should not be processed by AI.
</div>

operator-access="conditional"

Access is conditional based on other attributes.

<div operator-access="conditional" 
     operator-condition="authenticated">
    Premium content here.
</div>

Access Conditions

Attribute Description Values Example
operator-must-pay Indicates content requires payment to access Boolean or payment details operator-must-pay="true"
operator-must-authenticate Requires authentication before access Boolean operator-must-authenticate="true"
operator-must-read Content must be read/presented to users Boolean operator-must-read="true"
operator-access-level Required access level for content public, registered, premium, admin operator-access-level="premium"
operator-condition Custom condition for access String operator-condition="subscription-active"

Interaction Tags

These tags define how AI agents can interact with elements.

Attribute Description Values Example
operator-can-click Whether AI can click/activate this element Boolean operator-can-click="true"
operator-can-fill Whether AI can fill in form fields Boolean operator-can-fill="true"
operator-can-navigate Whether AI can navigate to linked resources Boolean operator-can-navigate="true"
operator-can-select Whether AI can select options Boolean operator-can-select="true"
operator-interaction General interaction permissions none, read, limited, full operator-interaction="limited"

Interactive Elements Example

<form>
    <input type="text" 
           operator-can-fill="true" 
           operator-info="username field">
    
    <button type="submit" 
            operator-can-click="true" 
            operator-info="login button">
        Login
    </button>
    
    <button type="button" 
            operator-can-click="false" 
            operator-info="admin access - restricted">
        Admin Panel
    </button>
</form>

Content Control Tags

These tags control how content can be used, shared, or reproduced.

Attribute Description Values Example
operator-no-screenshot Prevents taking screenshots of content Boolean operator-no-screenshot="true"
operator-no-quote Prevents quoting this content Boolean operator-no-quote="true"
operator-no-summarize Prevents summarizing this content Boolean operator-no-summarize="true"
operator-no-translate Prevents translation of content Boolean operator-no-translate="true"
operator-attribution Attribution requirements String operator-attribution="© 2025 Example Inc."
operator-license License information for content String operator-license="CC-BY-4.0"

Important Note on Content Protection

While these tags communicate intended restrictions, they rely on AI agent compliance. They are not technical prevention mechanisms but rather communication tools. Responsible AI systems should respect these directives.

Semantic Tags

These tags provide semantic context for content understanding.

Attribute Description Values Example
operator-content-type Type of content contained String operator-content-type="product-description"
operator-language Language of the content ISO language code operator-language="en-US"
operator-sentiment Intended sentiment of content positive, negative, neutral operator-sentiment="positive"
operator-context Additional context information String operator-context="financial advice disclaimer"
operator-entity Entity information (person, place, etc.) String operator-entity="organization: Acme Inc."

Privacy Tags

These tags specify privacy requirements for content.

Attribute Description Values Example
operator-pii Indicates presence of PII Boolean operator-pii="true"
operator-no-store Content should not be stored Boolean operator-no-store="true"
operator-no-process Content should not be processed Boolean operator-no-process="true"
operator-privacy-level Privacy sensitivity level public, low, medium, high, critical operator-privacy-level="high"
operator-data-category Category of data contained String operator-data-category="health"

Privacy Tag Example:

<div operator-pii="true" 
     operator-no-store="true"
     operator-privacy-level="high"
     operator-data-category="financial">
    Account number: 1234 5678 9012 3456
    Balance: $10,521.75
</div>

Examples

Example 1: Product Page with Mixed Access

<div class="product-container">
    <h1 operator-info="product name" operator-access="allow">Ultra HD Smart TV</h1>
    
    <div class="product-images" operator-access="allow" operator-no-screenshot="true">
        <img src="tv-front.jpg" alt="TV Front View">
        <img src="tv-side.jpg" alt="TV Side View">
    </div>
    
    <div class="product-description" operator-info="product details" operator-access="allow">
        65-inch Ultra HD Smart TV with voice control and AI-powered picture quality.
    </div>
    
    <div class="pricing" operator-info="pricing details" operator-access="allow">
        <p>Regular Price: $1,299.99</p>
        <p>Sale Price: $999.99</p>
    </div>
    
    <div class="internal-notes" operator-access="deny">
        Profit margin: 22%, Competitor pricing: $1,099 at BestBuy
    </div>
    
    <div class="reviews" operator-access="allow" operator-info="customer reviews">
        <div class="review">★★★★★ Amazing picture quality! - John D.</div>
        <div class="review">★★★★☆ Good TV for the price. - Sarah M.</div>
    </div>
    
    <div class="premium-content" 
         operator-access="conditional" 
         operator-must-pay="true" 
         operator-info="expert review">
        Expert analysis: This TV outperforms competitors in its price range by...
    </div>
</div>

Example 2: News Article with Privacy Controls

<article operator-info="news article" operator-content-type="news">
    <h1 operator-access="allow">Breaking News: New Renewable Energy Policy</h1>
    
    <div class="byline" operator-access="allow">
        By Jane Smith, Senior Energy Correspondent
    </div>
    
    <div class="article-content" operator-access="allow" operator-no-quote="false">
        The government announced today a new renewable energy policy that will...
    </div>
    
    <div class="subscriber-only" 
         operator-access="conditional" 
         operator-must-authenticate="true"
         operator-info="premium content">
        According to insider sources, this policy will impact the energy sector by...
    </div>
    
    <div class="comments" operator-access="allow" operator-info="user comments">
        <div class="comment">This policy is long overdue! - GreenEnergy23</div>
        <div class="comment">I'm concerned about implementation costs - EconomyFirst</div>
    </div>
</article>

Example 3: Form with Interaction Controls

<form operator-info="contact form">
    <label for="name">Name:</label>
    <input type="text" id="name" 
           operator-can-fill="true" 
           operator-info="user name field">
    
    <label for="email">Email:</label>
    <input type="email" id="email" 
           operator-can-fill="true" 
           operator-info="user email field" 
           operator-pii="true">
    
    <label for="message">Message:</label>
    <textarea id="message" 
              operator-can-fill="true" 
              operator-info="user message"></textarea>
    
    <label for="cc-number">Credit Card:</label>
    <input type="text" id="cc-number" 
           operator-can-fill="false" 
           operator-info="credit card field" 
           operator-pii="true" 
           operator-privacy-level="critical">
    
    <button type="submit" 
            operator-can-click="true" 
            operator-info="submit button">Submit</button>
</form>

Best Practices

Recommended Implementation Practices

  1. Be Explicit with Access Controls

    Clearly mark sections that should be restricted from AI access with operator-access="deny".

  2. Provide Rich Contextual Information

    Use operator-info and operator-label to help AI understand content context.

  3. Group Related Content

    Apply operator tags to container elements when possible, rather than individual elements.

  4. Be Consistent

    Use consistent naming conventions and attribute values across your site.

  5. Don't Over-Tag

    Focus on important elements that need special handling rather than tagging everything.

  6. Consider Privacy Implications

    Always mark PII and sensitive data with appropriate privacy controls.

  7. Test with AI Tools

    Verify that AI agents respect your implemented tags.

Performance Considerations

While operator tags provide valuable context for AI agents, they can increase HTML size. Consider minifying or compressing your HTML to offset this impact in production environments.

Contribute to the Standard

Operator Tags is an open standard under active development. We welcome contributions in the following areas:

  • New tag proposals and enhancements
  • Implementation libraries and tools
  • Documentation improvements
  • Case studies and usage examples
  • Compliance testing tools

Join the Community

Visit our GitHub repository to contribute to the standard, report issues, or participate in discussions about the future of Operator Tags.

GitHub Repository: operatortags