Example identity strings using the AAIP v2 format.
Updated: January 2026
<vendor>/<model> (<application>; <version>) [aid=<agent-id>] [behalf=<tenant>] [delegated=<parent>]
Capabilities (separate header/field):
cap:<level>;tools:<list>;mcp:<list>
| Pattern | Format | Example | Use Case |
|---|---|---|---|
| App-Environment | <app>-<env> |
atlas-prod |
Most common |
| App-Instance | <app>-<num> |
crawler-001 |
Multiple instances |
| Vendor-App | <vendor>-<app> |
acme-support |
Enterprise |
| Purpose-Scope | <role>-<scope> |
search-global |
Role-based |
Best practices:
- Lowercase with hyphens
- 8-24 characters
- Stable across versions
- No user identifiers
# Minimal
AI-Agent: OpenAI/GPT-5.2 (ChatGPT; 2026.01)
# With Agent ID
AI-Agent: OpenAI/GPT-5.2 (Atlas; 1.0) [aid=atlas-prod]
# Full
AI-Agent: OpenAI/GPT-5.2 (LangChain; 0.3.0) [aid=langchain-demo]
AI-Agent-Capabilities: cap:execute;tools:web_search,code_exec
# Minimal
AI-Agent: Anthropic/claude-4.5-opus (Claude-Web; 2026.01)
# With Computer Use
AI-Agent: Anthropic/claude-4.5-sonnet (AutoBot; 2.0) [aid=autobot-prod]
AI-Agent-Capabilities: cap:execute;tools:computer,bash,web_search
# Fast model
AI-Agent: Anthropic/claude-4.5-haiku (QuickBot; 1.0) [aid=quickbot-prod]
AI-Agent-Capabilities: cap:readonly
# Redacted version
AI-Agent: Anthropic/claude-4.5 (InternalTool; redacted) [aid=internal-001]
AI-Agent: Google/gemini-3-pro-preview (VertexAgent; 1.0) [aid=vertex-prod]
AI-Agent-Capabilities: cap:browse;tools:web_search
AI-Agent: Google/gemini-3-pro-preview (MobileApp; 5.0) [aid=mobile-prod]
AI-Agent-Capabilities: cap:readonly
AI-Agent: Google/gemini-3-pro-preview (DataAnalyzer; 2.0) [aid=analyzer-prod]
AI-Agent-Capabilities: cap:execute;tools:python,bigquery
AI-Agent: Meta/llama-4-70b (LocalAgent; 1.0) [aid=local-llama]
AI-Agent-Capabilities: cap:readonly
AI-Agent: Meta/llama-4-405b (ResearchBot; 2.0) [aid=research-prod]
AI-Agent-Capabilities: cap:execute;tools:python,file_io
AI-Agent: Azure/GPT-5.2 (Copilot; 2026.01) [aid=copilot-m365]
AI-Agent-Capabilities: cap:browse;mcp:office|teams
AI-Agent: Azure/GPT-5.2 (SemanticKernel; 2.0) [aid=sk-enterprise]
AI-Agent-Capabilities: cap:execute;tools:bing_search,database
AI-Agent: Perplexity/sonar-2 (Perplexity-Web; 2026.01) [aid=perplexity-prod]
AI-Agent-Capabilities: cap:browse;tools:web_search,memory
AI-Agent: Perplexity/sonar-2 (API-Client; 1.0) [aid=perplexity-api]
AI-Agent-Capabilities: cap:readonly
AI-Agent: Mistral/large-3 (MistralChat; 2026.01) [aid=mistral-chat]
AI-Agent-Capabilities: cap:browse
AI-Agent: Mistral/codestral-2 (CodeBot; 1.0) [aid=codestral-prod]
AI-Agent-Capabilities: cap:execute;tools:code_exec
AI-Agent: xAI/grok-4 (GrokWeb; 2026.01) [aid=grok-web]
AI-Agent-Capabilities: cap:browse;tools:web_search
Browser products that can autonomously navigate and act on pages.
# Using Sonar Pro model
AI-Agent: Perplexity/sonar-pro (Comet; 1.0) [aid=comet-prod]
AI-Agent-Capabilities: cap:browse
# Using Sonar model
AI-Agent: Perplexity/sonar-2 (Comet; 1.0) [aid=comet-prod]
AI-Agent-Capabilities: cap:browse
# Model not introspectable
AI-Agent: Perplexity/unknown (Comet; 1.0) [aid=comet-prod]
AI-Agent-Capabilities: cap:browse
AI-Agent: OpenAI/GPT-5.2 (Operator; 2026.01) [aid=operator-prod]
AI-Agent-Capabilities: cap:browse
# Opera Browser Operator
AI-Agent: Opera/unknown (Opera-Browser-Operator; 1.0) [aid=opera-operator]
AI-Agent-Capabilities: cap:browse
# Arc Max
AI-Agent: Arc/unknown (Arc-Max; 1.5) [aid=arc-max]
AI-Agent-Capabilities: cap:browse
AI-Agent: OpenAI/GPT-5.2 (Summarizer; 1.0) [aid=summarizer-prod]
AI-Agent-Capabilities: cap:readonly
AI-Agent: Anthropic/claude-4.5-haiku (QuickAnswer; 1.0) [aid=qa-prod]
AI-Agent-Capabilities: cap:readonly
AI-Agent: OpenAI/GPT-5.2 (WebCrawler; 2.0) [aid=crawler-prod]
AI-Agent-Capabilities: cap:browse;tools:web_search
AI-Agent: Perplexity/sonar-2 (SearchBot; 1.0) [aid=search-prod]
AI-Agent-Capabilities: cap:browse;tools:web_search,memory
AI-Agent: Anthropic/claude-4.5-opus (DevAssistant; 3.0) [aid=dev-assistant]
AI-Agent-Capabilities: cap:execute;tools:bash,python,file_io
AI-Agent: OpenAI/GPT-5.2 (CodeBot; 1.5) [aid=codebot-prod]
AI-Agent-Capabilities: cap:execute;tools:code_exec,git
# Orchestrator
AI-Agent: OpenAI/GPT-5.2 (Orchestrator; 1.0) [aid=orch-main]
AI-Agent-Capabilities: cap:browse
# Worker delegated by orchestrator
AI-Agent: Anthropic/claude-4.5-haiku (Worker; 1.0) [aid=worker-001] [delegated=orch-main]
AI-Agent-Capabilities: cap:readonly
AI-Agent: OpenAI/GPT-5.2 (EnterpriseBot; 2.0) [aid=enterprise-bot] [behalf=acme-corp]
AI-Agent-Capabilities: cap:execute;mcp:salesforce|jira
AI-Agent: CustomVendor/unknown (MyApp; 1.0) [aid=custom-agent]
AI-Agent: Vendor/model (App; redacted) [aid=redacted-001]
AI-Agent-Capabilities: cap:execute
AI-Agent: OpenAI/GPT-5.2 (SDK; unknown) [aid=sdk-client]
GET /api/data HTTP/1.1
Host: example.com
User-Agent: Python/3.12 httpx/0.27
AI-Agent: OpenAI/GPT-5.2 (Atlas; 1.0) [aid=atlas-prod]
AI-Agent-Capabilities: cap:browsemetadata = [
('x-ai-agent', 'OpenAI/GPT-5.2 (MyApp; 1.0) [aid=myapp-prod]'),
('x-ai-agent-capabilities', 'cap:execute'),
]{
"aiAgent": {
"identity": "Anthropic/claude-4.5 (MyApp; 1.0) [aid=myapp-prod]",
"capabilities": "cap:execute;mcp:github"
}
}AI_AGENT = "OpenAI/GPT-5.2 (MyBot; 1.0) [aid=mybot-prod]"
AI_CAPS = "cap:browse;tools:web_search"
headers = {
"AI-Agent": AI_AGENT,
"AI-Agent-Capabilities": AI_CAPS
}
response = requests.get("https://example.com", headers=headers)const headers = {
"AI-Agent": "Anthropic/claude-4.5 (JSBot; 2.0) [aid=jsbot-prod]",
"AI-Agent-Capabilities": "cap:readonly"
};
const response = await fetch("https://example.com", { headers });curl -H "AI-Agent: OpenAI/GPT-5.2 (CLI; 1.0) [aid=cli-tool]" \
-H "AI-Agent-Capabilities: cap:execute" \
https://example.com/api