SPB Git forge

spb/doc-api

Public
2commits 1branches 0releases
15.7 MBsize
maindefault branch
13 days agolast push
Python 88.3% TypeScript 7.6% Shell 4.1%
24.3 KB

# Agent platforms — OpenAI Agents API · Claude Managed Agents · xAI Responses loop + Grok Build · Gemini Interactions agents

Status: endpoint inventory and statuses from generated/endpoints.json (OpenAI agents-platform/agents 34 + vaults 9 + chatkit 6 + workspace-agents 2; Anthropic managed-agents 96; xAI responses 5 + skills 5 (ACCOUNT_RESTRICTED); Gemini interactions 9 + agents 4 + environments 7 + triggers 7 + credentials 5 + webhooks 7), events from generated/streaming-events.json and generated/webhook-events.json, parameters from generated/parameters.json (OpenAI agents 396 rows, Anthropic managed-agents 1,122, xAI POST /v1/responses 281, Gemini POST /v1beta/interactions 147, environments 14). Live: OpenAI 23/47 operations LIVE_VERIFIED (gpt-5.6-luna); Anthropic 20/96 (claude-haiku-4-5-20251001); xAI Responses agentic loop with web search / code interpreter / MCP LIVE_VERIFIED (grok-4.3); Gemini Interactions create/get/cancel/delete + Deep Research background run + environments CRUD LIVE_VERIFIED, custom agents / triggers / credentials / webhooks not tested. OpenAI and Anthropic are BETA; Gemini agents are PREVIEW; xAI's loop is GA with a BETA multi-agent model. Sources: https://developers.openai.com/api/docs/guides/agents-api/overview · https://platform.claude.com/docs/en/managed-agents/overview · https://docs.x.ai/developers/tools/overview · https://docs.x.ai/build (Grok Build) · https://ai.google.dev/gemini-api/docs/interactions · https://ai.google.dev/gemini-api/docs/deep-research · https://ai.google.dev/gemini-api/docs/antigravity · docs/openai/agents-api.md · docs/anthropic/managed-agents.md · docs/xai/responses.md · docs/xai/grok-build.md · docs/gemini/interactions-api.md Last verified: 2026-09-18

# 1. Positioning

OpenAI Agents API Claude Managed Agents xAI Responses agentic loop (+ Grok Build) Gemini Interactions agents
What runs where OpenAI hosts the Codex harness (model + tool loop + compaction + recovery); you supply tools, input and optionally your own execution environment Anthropic hosts a pre-built agent harness (model loop, built-in tools in a Linux sandbox, compaction, persisted history); you handle only custom tools No agent resource. One POST /v1/responses runs the model and its server-side tools (web/x search, code interpreter, collections, MCP, image generation) in a loop bounded by max_turns; the stored response is the session. Grok Build (grok CLI, BETA) is a client-side coding harness with MCP, hooks, skills, subagents and a local sandbox Google hosts agents as models: POST /v1beta/interactions {agent: …} runs Deep Research (research loop with search/URL/code tools, background) or Antigravity (coding agent in a Linux sandbox) or a custom managed agent you define with POST /v1beta/agents; environments, credentials, triggers, webhooks are separate resources
Gate OpenAI-Beta: agents=v1; restricted keys need api.agents.* scopes anthropic-beta: managed-agents-2026-04-01 (+ agent-memory-2026-07-22, dreaming-2026-04-21, mcp-tunnels-2026-06-22) none (no beta headers); grok-4.20-multi-agent-0309 BETA; Skills API 404 (ACCOUNT_RESTRICTED); tool_search alpha (403) /v1beta path; agents PREVIEW; GET /v1beta/interactions (list) 404; /v1/interactions GA but UNVERIFIED
Models Responses-capable current models; live gpt-5.4-nano rejected, gpt-5.6-luna accepted Claude 4.5+ (Fable 5.1/5, Sonnet 5, Opus 5/4.8/4.7/4.6/4.5, Sonnet 4.6, Haiku 4.5) any Grok text model (grok-4.6, grok-4.5, grok-4.3, 4.20 ids, grok-build-0.1); multi-agent model for fan-out Deep Research agents (deep-research-preview-04-2026, -max-, -pro-preview-12-2025), Antigravity (antigravity-preview-09-2026, model gemini-3.8-flash default / 3.7 / 3.6 / 3.5 Flash / 3.5 Flash-Lite), custom agents built on base_agent: antigravity-preview-09-2026
Billing model tokens at Responses rates + hosted-tool rates + container rates; harness base instructions ≈ 6k input tokens per turn observed model tokens at list price + $0.08 per session-hour + $10 / 1k web searches model tokens (incl. intermediate steps and reasoning) + per-call tool fees ($5/1k web/x/code, $2.50/1k collections, $10/1k attachments); usage.cost_in_usd_ticks per call; $0.05 fee per pre-generation policy violation model inference at list rates incl. intermediate/reasoning tokens + tool fees; sandbox compute unbilled during preview; Deep Research est. $1–3 / $3–7 per task; Antigravity est. $0.25–3.25 per interaction
Data retention server-side sessions/items; hosted sandbox ~1 h idle stateful by design → not ZDR / HIPAA eligible; sandbox state 30 days stored responses 30 days (store: true; ZDR teams cannot store) interactions 55 days paid / 1 day free (store: false = stateless, no id); environments idle 15 min, deleted 7 days
Also on api.openai.com only Claude API and Claude Platform on AWS api.x.ai (+ Vertex Model Garden / Foundry for the model, not the loop) Gemini Developer API only (not Vertex AI)

# 2. Resource model side by side

Concept OpenAI Anthropic xAI Gemini Notes
Agent definition POST /v1/agents (model, name, instructions, reasoning, text, service_tier, tools[] ≤2000, multi_agent, metadata); not versioned POST /v1/agents (name, model, system ≤100k, tools[] ≤128, mcp_servers[] ≤20, skills[], multiagent); versioned; archive none — the request body (model, instructions, tools[], max_turns) is the definition; Grok Build stores agent config in ~/.grok/config.toml POST /v1beta/agents {id, base_agent, agent_config, system_instruction, tools[], base_environment} (≤1,000/project, no versioning, reserved id prefixes); built-in agents need no definition
Execution environment per session environment: none | openai_hosted{…} | self_hosted{…}; templates /v1/agents/environments/templates POST /v1/environments (cloud sandbox Ubuntu 24.04, 8 GB RAM, 10 GB disk | self_hosted work queue); reusable none (Python code interpreter has no container object); shell {environment: local} runs on your machine POST /v1beta/environments {sources[] (repository ≤500 MB | gcs ≤2 GB | inline), network (unrestricted | disabled | allowlist + credentials), from_environment}; Antigravity sandbox 4 vCPU / 16 GB (Python 3.12, Node 22); referenced by interaction.environment {environment_id}
Session POST /v1/agents/sessions {agent|agent_id, environment*, input, stream, vault_ids} → 201 agent.session; statuses idle → in_progress → requires_action → … POST /v1/sessions {agent*, environment_id*, initial_events, resources[], vault_ids[], budget, title} → 200 session; idle/running/rescheduling/terminated POST /v1/responses {…, store: true} → response (completed | in_progress | incomplete); continue with previous_response_id POST /v1beta/interactions {agent|model, input, background, store, environment, tools, webhook_config} → interaction (queued, in_progress, requires_action, completed, incomplete, failed, cancelled); chain with previous_interaction_id
Unit of work turn (GET …/turns[/{id}]) model requests (spans) one POST /v1/responses (up to max_turns server-side iterations) one interaction (Deep Research runs ≤60 min in background)
History items (GET …/items) events (GET …/events) GET /v1/responses/{id}/input_items + output[] GET /v1beta/interactions/{id} → steps[] (user_input, thought, model_output, function_call/result, *_call/*_result)
Live stream SSE on POST /sessions {stream:true} or GET …/events?stream=true; 31 events GET /v1/sessions/{id}/events/stream; 37 events the Responses SSE stream (24 events) or wss://api.x.ai/v1/responses stream: true → 15 event types; resume GET …?stream=true&last_event_id=
Client → server events agent.session.input.message | tool_result | cancel user.message, user.interrupt, user.tool_confirmation, user.custom_tool_result, user.tool_result, user.define_outcome, system.message a new POST /v1/responses (function_call_output, shell_call_output, user message) a new POST /v1beta/interactions with previous_interaction_id (function_result steps, text); POST …/cancel
Tool execution function tools → required_actions[]; MCP; web_search; tool_search; programmatic_tool_calling; sandbox shell built-in agent_toolset_20260401 in the sandbox; custom tools; MCP via mcp_servers + vaults; permission_policy server tools run inside the loop; function/shell calls end the request; MCP without approvals Deep Research default tools google_search, url_context, code_execution (+ mcp_server, file_search); Antigravity built-ins (code_execution bash/python/node, view_file, write_to_file, replace_file_content, list_dir, find_by_name, grep_search) + custom function tools; hooks .agents/hooks.json
Skills environment.skills[] ≤200 agent.skills[] ≤500 shell.environment.skills[] (Skills API 404); Grok Build loads skills locally custom agents mount .agents/skills/<name>/SKILL.md from environment sources
Files in / out files[], POST /v1/agents/environments/{id}/files; artifacts resources[] {type: file, mount_path}; outputs → Files API scope_id input_file (attachment search $10/1k); outputs via include / Files API environment sources[], PUT /upload/v1beta/environments/{env}/files/{path} (≤2 GiB); outputs GET …/files/{path}?alt=media; Deep Research reports as model_output steps
Secrets Vaults + mcp.credential_id Vaults (mcp_oauth, environment_variable) inline authorization/headers on the mcp tool Credentials (bearer_token, oauth2, environment_variable; injection_location, trusted_domains) referenced by environment network allowlists
Multi-agent multi_agent.enabled; subagents /sessions/{id}/subagents… multiagent {coordinator, agents[]}; threads ≤25 grok-4.20-multi-agent-0309: 4 or 16 agents inside one call (reasoning.effort) none for custom agents (docs); Deep Research orchestrates internally
Budgets none (session_budget_exceeded error exists) budget {max_list_cost}; session.budget_reached max_turns (turns) Antigravity agent_config.max_total_tokens → incomplete
Quality loop — user.define_outcome → grader iterations — —
Memory — memory stores /v1/memory_stores, dreams — —
Scheduling — /v1/deployments (cron) → /v1/deployment_runs — /v1beta/triggers {schedule, time_zone, interaction}; PATCH {status: paused|active}; POST …/executions
Private MCP Secure MCP Tunnel (tunnel_id) /v1/tunnels — — (credentials + allowlists)
Webhooks agent.session.* via /v1/webhook_endpoints 44 Managed Agents events (Console-registered) SIP realtime.call.incoming only /v1/webhooks (create/list/get/update/delete/rotate_secret) + per-request webhook_config {uris[], user_metadata}; events interaction.completed|failed|cancelled|requires_action, batch.succeeded|failed; JWKS-signed
Observability items, turns, traces (404 live) events, session.usage, Console viewer, ant beta:sessions connect usage.cost_in_usd_ticks, server_side_tool_usage_details, num_server_side_tools_used usage {total_*_tokens, *_by_modality, grounding_tool_count[]}, steps[] timeline
UI kit ChatKit (Agent Builder shutdown 2026-11-30) — — AI Studio (builder, free)

# 3. Endpoint inventory (counts from generated/endpoints.json)

Family OpenAI (34 + 9 + 6 + 2) Anthropic (96) xAI (5 + 5) Gemini (9 + 4 + 7 + 7 + 5 + 7)
agents /v1/agents[/{id}] (5) /v1/agents[/{id}], /archive, /versions (6) — /v1beta/agents[/{id}] (4; POST/GET/GET/DELETE)
sessions / runs /v1/agents/sessions… (20) /v1/sessions…, /threads… (19) POST /v1/responses, GET/DELETE /v1/responses/{id}, GET …/input_items, POST /v1/responses/compact (5) POST /v1beta/interactions, GET/DELETE /v1beta/interactions/{id}, POST …/cancel, /v1/interactions… (GA, UNVERIFIED) (9)
environments /v1/agents/environments/{id}[/files], /templates[/{id}] (7) /v1/environments…, /work… (14) — /v1beta/environments[/{id}], …/files/{path}, PUT /upload/v1beta/environments/{env}/files/{path}, legacy GET /v1beta/files/environment-{env}:download (7)
secrets /v1/vaults… (9) /v1/vaults… (13) — /v1beta/credentials[/{id}] (5)
memory / dreams — 14 + 5 — —
scheduling — /v1/deployments… (7), /v1/deployment_runs… (2) — /v1beta/triggers[/{id}], …/executions (7)
tunnels / profiles — 10 + 5 — —
skills /v1/skills… (11) /v1/skills… (9) /v1/skills… (5, all 404 → ACCOUNT_RESTRICTED) —
webhooks /v1/webhook_endpoints… (8) Console only POST /v2/phone-numbers (SIP webhook) /v1/webhooks… (7)
UI / workspace /v1/chatkit/… (6), api.chatgpt.com/v1/workspace_agents/… (2) — — —

# 4. The same task on all four providers — run one agentic turn and stream it

bash
# OpenAI (LIVE_VERIFIED shapes; header OpenAI-Beta: agents=v1)
curl https://api.openai.com/v1/agents -H "Authorization: Bearer $OPENAI_API_KEY" -H "OpenAI-Beta: agents=v1" -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.6-luna","name":"atlas-demo","instructions":"Reply with OK.","reasoning":{"effort":"low"}}'
curl -N https://api.openai.com/v1/agents/sessions -H "Authorization: Bearer $OPENAI_API_KEY" -H "OpenAI-Beta: agents=v1" -H "Content-Type: application/json" \
  -d '{"agent_id":"agent_…","environment":{"type":"none"},"input":"Reply with OK.","stream":true}'
# SSE: agent.session.created → agent.session.turn.created → …output_text.delta → agent.session.turn.completed → agent.session.idle
bash
# Anthropic (LIVE_VERIFIED shapes; header anthropic-beta: managed-agents-2026-04-01)
H=(-H "x-api-key: $ANTHROPIC_API_KEY" -H "anthropic-version: 2023-06-01" -H "anthropic-beta: managed-agents-2026-04-01" -H "content-type: application/json")
curl https://api.anthropic.com/v1/agents "${H[@]}" -d '{"name":"atlas-demo","model":"claude-haiku-4-5-20251001","system":"Reply with OK."}'
curl https://api.anthropic.com/v1/environments "${H[@]}" -d '{"name":"atlas-env","config":{"type":"cloud"}}'
curl https://api.anthropic.com/v1/sessions "${H[@]}" -d '{"agent":"agent_…","environment_id":"env_…","initial_events":[{"type":"user.message","content":[{"type":"text","text":"Reply with OK."}]}]}'
curl -N "https://api.anthropic.com/v1/sessions/sesn_…/events/stream" "${H[@]}"
# SSE: session.status_running → span.model_request_start → agent.message → span.model_request_end → session.usage → session.status_idle
bash
# xAI (LIVE_VERIFIED shapes; no agent resource — the Responses call is the agentic loop)
curl -N https://api.x.ai/v1/responses -H "Authorization: Bearer $XAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"model":"grok-4.3","input":"What is the latest xAI release note? Reply in one line.",
       "tools":[{"type":"web_search"},{"type":"code_interpreter"}],"max_turns":3,"store":true,"stream":true}'
# SSE: response.created → response.output_item.added(reasoning) → … → response.output_item.added(web_search_call) → response.output_item.done
#      → response.output_item.added(message) → response.output_text.delta… → response.completed (usage.server_side_tool_usage_details, cost_in_usd_ticks)
# follow-up: POST /v1/responses {"model":"grok-4.3","previous_response_id":"resp_…","input":"Summarise in 5 words."}
bash
# Gemini (LIVE_VERIFIED shapes; snake_case body; header x-goog-api-key)
curl -N https://generativelanguage.googleapis.com/v1beta/interactions -H "x-goog-api-key: $GEMINI_API_KEY" -H "Content-Type: application/json" \
  -d '{"model":"gemini-3.5-flash-lite","input":"Reply with OK.","tools":[{"type":"code_execution"}],"stream":true}'
# SSE: interaction.created → interaction.status_update → step.start(thought) → step.delta{thought_signature} → step.stop → step.start(model_output) → step.delta{text} → step.stop → interaction.completed → done
# agent run (background, LIVE_VERIFIED create → in_progress → cancel):
curl https://generativelanguage.googleapis.com/v1beta/interactions -H "x-goog-api-key: $GEMINI_API_KEY" -H "Content-Type: application/json" \
  -d '{"agent":"deep-research-preview-04-2026","input":"Summarise the four providers'"'"' agent APIs.","background":true,"agent_config":{"type":"deep-research","thinking_summaries":"auto"}}'
# poll GET /v1beta/interactions/{id}  ·  stop POST /v1beta/interactions/{id}/cancel

Follow-up input: OpenAI POST /v1/agents/sessions/{id}/events {"events":[{"type":"agent.session.input.message","content":"…"}]}; Anthropic POST /v1/sessions/{id}/events {"events":[{"type":"user.message","content":[{"type":"text","text":"…"}]}]}; xAI POST /v1/responses {"previous_response_id":"resp_…","input":"…"}; Gemini POST /v1beta/interactions {"model":"…","previous_interaction_id":"v1_…","input":"…"}.

# 5. Function-tool round trip inside a session

Step OpenAI Anthropic xAI Gemini
declare agent.tools: [{type: function, name, description, parameters}] agent.tools: [{type: custom, name, description, input_schema}] tools: [{type: function, name, description, parameters}] on the Responses call tools: [{type: function, name, description, parameters}] (Interactions) / functionDeclarations (generateContent); custom agents: tools[] in the agent definition
call surfaces stream agent.session.requires_action; session.required_actions[{type: function_call, turn_id, call_id, name, arguments}]; webhook agent.session.action_required stream agent.custom_tool_use {id, name, input} then session.status_idle {stop_reason: {type: requires_action}}; webhook session.requires_action output[] {type: function_call, call_id, name, arguments}; the server loop ends and the response completes status: requires_action; steps[] {type: function_call, id, name, arguments}; stream interaction.requires_action (DOCUMENTATION_INCOMPLETE); webhook interaction.requires_action
answer POST …/events {type: agent.session.input.tool_result, turn_id, call_id, success, output} POST …/events {type: user.custom_tool_result, custom_tool_use_id, content} POST /v1/responses {previous_response_id, input: [{type: function_call_output, call_id, output}]} (fresh max_turns) POST /v1beta/interactions {previous_interaction_id, input: [{type: function_result, call_id, name, result}]}
approvals MCP require_approval permission_policy: always_ask → user.tool_confirmation none computer use safety_decision → safety_acknowledgement
self-hosted commands codex exec-server runs shell; command_execution items worker claims work items, posts user.tool_result shell {environment: local} → shell_call → shell_call_output; Grok Build runs locally —

# 6. Sandboxes and self-hosting

OpenAI hosted Anthropic cloud Gemini environment (Antigravity / custom agents) OpenAI self-hosted Anthropic self-hosted xAI
Base /workspace; packages, ≤16 setup commands, network enabled|disabled|restricted, env vars Ubuntu 24.04, 8 GB RAM, 10 GB disk, /workspace, /mnt/session/{uploads,outputs}, /mnt/memory Linux, 4 vCPU / 16 GB, Python 3.12, Node 22; sources[] repository/GCS/inline; network unrestricted / disabled / allowlist (+ credentials); hooks .agents/hooks.json codex exec-server --remote …, outbound-only, CODEX_API_KEY work queue poll/ack/heartbeat/stop; ant beta:worker; sk-ant-oat01-… no hosted sandbox for agents (code interpreter runs Python without a container object; shell local; Grok Build Landlock/Seatbelt sandbox on your machine)
Lifetime ~1 h idle checkpointed; 30 days idle after 15 min, deleted after 7 days; from_environment clones your compute your compute your compute
Outputs artifacts from /workspace/outputs (≤200 MiB) files from /mnt/session/outputs (Files API) GET /v1beta/environments/{env}/files/{path}?alt=media (bytes or tar) never published as artifacts posted as tool results code_interpreter_call.outputs via include; Files API
Templates / reuse /v1/agents/environments/templates environments are reusable resources base_environment on custom agents; from_environment — — —
Compute price container rates $0.08 / session-hour not billed during preview — — $5 / 1k code-interpreter calls

# 7. Limits (documented)

Limit OpenAI Anthropic xAI Gemini
tools per agent / request 2,000 128 (across toolsets); 20 MCP servers ≤350 (Chat); MCP servers: multiple allowed, no cap documented 512 function declarations (SDK); custom agents ≤1,000 per project
skills 200 per environment 500 per session Skills API inaccessible (404) via environment sources (≤500 MB repo / 2 GB GCS / 1 MB inline files)
files 50 per create; inline 5 MiB; artifact 200 MiB 500 per session; body 32 MB Files 50 MB (spec) / 512 MB (guide); attachments $10/1k environment upload ≤2 GiB per file; Files API 2 GB / 20 GB project
concurrency max_concurrent_subagents 6 25 threads; roster 20 multi-agent model 4 or 16 agents; RPS 9→56 for that model Deep Research ≤60 min per run; environments per project quota (storage.tier: free, 1 GiB observed)
rate limits none documented for Agents endpoints create 300 / read 1,200 req/min/org Responses share the model's RPS/TPM tiers; Batch bypasses per-project RPM/TPM/RPD; agents not on the free tier (Deep Research LIVE_VERIFIED here on create/cancel)
retention sessions server-side; sandbox ~1 h sandbox 30 days stored responses 30 days interactions 55 d paid / 1 d free; environments 7 days
webhook delivery Standard Webhooks retries ≤3 attempts, 5-min freshness HMAC-SHA256 Standard Webhooks (SIP only) JWKS-signed; webhook_config.uris[] per request or /v1/webhooks resources

# 8. Where the other building blocks sit

Need OpenAI Anthropic xAI Gemini
Client-side agent loop library Agents SDK (openai-agents, @openai/agents) Claude Agent SDK; ant CLI; SDK tool_runner Grok Build CLI (grok, grok -p … --output-format json, grok agent stdio ACP; api_backend = chat_completions|responses|messages); xai-sdk Python; OpenAI SDK with baseURL google-genai automatic function calling, mcpToTool(); Genkit, Firebase AI Logic, Vercel AI SDK, LangGraph/CrewAI/LlamaIndex
Durable chat state without a harness Conversations API + Responses Messages (stateless) — none stored Responses + previous_response_id Interactions with model + previous_interaction_id
Visual builder / embedded UI Agent Builder (shutdown 2026-11-30) + ChatKit; Workspace Agents in ChatGPT Console visual builder, session viewer Grok Apps / Grok Bot (consumer products) AI Studio (free), Antigravity IDE product
Research agent product deep-research models retired; Responses web_search + background web search + web fetch on Messages; Managed Agents Responses with web_search + x_search + code_interpreter, max_turns 10+ Deep Research agents (background: true, collaborative_planning, visualization)
Retired predecessor Assistants API (RETIRED 2026-08-26) — Live Search on Chat (410); /v1/messages compat (deprecated) Interactions legacy schema (outputs, content.* events) removed 2026-06-08; antigravity-preview-05-2026 → 2026-10-05

Related: features · state-management · tool-execution · streaming · docs/openai/agents-api.md · docs/anthropic/managed-agents.md · docs/xai/responses.md · docs/xai/grok-build.md · docs/gemini/interactions-api.md.