Skip to content

1.6 Compared with Vendor Agent SDKs ​

What you'll learn

  • How Agentao differs from the Claude Agent SDK, the OpenAI Agents SDK and Strands
  • Where each of those is the stronger choice
  • What to check before you pick one

Several vendors now ship an agent loop you can embed in your own program. If you are choosing one, the question is not "which has more features" — they overlap heavily — but which trade-offs fit your host. This page compares Agentao with three of them on the points that most often decide it.

Checked on 2026-10-01

Facts about other projects come from their own documentation and repositories on that date (versions under Sources). These projects release often; follow the links before relying on a detail. Corrections are welcome as issues.

At a glance ​

AgentaoClaude Agent SDKOpenAI Agents SDKStrands Agents (AWS)
Where the agent loop runsIn your Python processIn a bundled Claude Code CLI that the SDK starts as a child processIn your Python processIn your process
LanguagesPython; other languages over ACPPython, TypeScriptPython (separate JS/TS SDK)Python, TypeScript
ModelsAny OpenAI-compatible Chat Completions endpoint, plus native Anthropic Messages and OpenAI Responses wires; switch provider at runtimeClaude only — via the Anthropic API, Bedrock, Vertex AI or Microsoft Foundry; routing to non-Claude models is not supportedOpenAI natively; any OpenAI-compatible endpoint; LiteLLM / Any-LLM adapters documented as best-effort betaBedrock by default; Anthropic, OpenAI, Gemini, Ollama, LiteLLM and others
Sent to the vendor by defaultNothing — no telemetryInherits Claude Code's defaults: usage metrics go to Anthropic when using the Claude API (off on Bedrock / Vertex / Foundry); can be disabledTraces go to OpenAI's tracing backend; can be disabled or redirectedOpenTelemetry export is opt-in; the Strands harness touches no telemetry unless it is configured
Audit / observabilityLocal JSONL replay files and an in-process event stream; no OpenTelemetryOpenTelemetry export (opt-in); client-side cost estimatesTracing with pluggable processors and many third-party integrationsOpenTelemetry
PermissionsFour modes (read-only, workspace-write, full-access, plan); allow / deny / ask rules; per-call approval through the hostSix modes; allow / deny / ask rules; a canUseTool callbackPer-tool needs_approval with pause/resume; input, output and tool guardrailsInterrupts for human approval; the Strands harness adds opt-in "interventions" (it runs tools unasked by default)
HooksEight shell-hook events; reads hook files written for Claude Code (an enumerated subset)Ten events in the Python SDK, more in TypeScriptRun and agent lifecycle callbacksTyped hook events
MCPstdio, Streamable HTTP, SSE; OAuth login for URL serversIn-process servers, stdio, HTTP, SSEHosted MCP, Streamable HTTP, SSE, stdioYes
SandboxmacOS sandbox-exec, off by defaultClaude Code's sandbox: macOS, Linux and WSL2, off by defaultSandbox agents on local Unix or Docker, or hosted providers (E2B, Modal, Daytona, …)Pluggable sandbox backends (Docker, SSH, custom)
ACP (agent ↔ editor)Built in: agentao --acp --stdio (and an ACP client)Through a separate adapter published by the Agent Client Protocol projectNot documentedTypeScript strands CLI only (--acp-server); not in the Python packages
LicenseMITMIT, use governed by Anthropic's Commercial TermsMITApache-2.0

All four also have sub-agents and saved, resumable sessions.

Where Agentao is different ​

  • No vendor loop, no vendor data path. The loop is Agentao's own code running in your process, it talks to whichever endpoint you configure, and it sends no telemetry. The Claude Agent SDK runs Claude Code itself (a separate binary), and the OpenAI Agents SDK exports traces to OpenAI unless you turn that off.
  • Provider-neutral as a design point, not an adapter. Three wire protocols are implemented natively, and history stays in one format across them, so /provider or a host call can switch model or vendor mid-session.
  • The audit trail is a file you own. Every turn can be recorded as JSONL under .agentao/replays/; the host also gets a typed event stream (agentao.host). Nothing depends on a hosted tracing backend.
  • One runtime, three surfaces. The same package is a Python library, the agentao CLI and an ACP server, so a non-Python host or an ACP editor drives exactly what a Python host embeds (1.3 Integration Modes).
  • Chinese-language support. Bilingual documentation, and memory recall that segments Chinese text (jieba).

Where another choice is stronger ​

  • You only use Claude and want Claude Code's behaviour exactly → the Claude Agent SDK runs the same agent, with more hook events, file checkpointing, and Claude Code's sandbox on Linux as well as macOS.
  • You want managed sandboxes or the OpenAI tracing ecosystem → the OpenAI Agents SDK ships Docker and hosted sandbox backends, many session stores and tracing integrations.
  • You are on AWS, or want OpenTelemetry, an evals package, or multi-agent patterns (graph, swarm, A2A) → Strands covers those.
  • You need Linux or container sandboxing, or OpenTelemetry, today → Agentao does not have them yet.
  • You need an ecosystem → the vendor SDKs have far larger communities; Agentao is a small project.

Before you choose ​

Answer these for your host, then pick:

  1. Must prompts, code and traces stay off third-party services other than the model endpoint you choose?
  2. Will you need models from more than one vendor, or to switch vendor without changing code?
  3. Is your host Python, or does it need a process boundary (another language, an editor)?
  4. Do you need OS-level isolation on Linux, or is per-call approval plus your own process isolation enough?

If 1–3 are mostly "yes" and 4 is "approval is enough", Agentao is built for that case. Otherwise, start from the "stronger" list above.

Sources ​

Checked 2026-10-01.

→ Part 2 · Embedding in Python