# Docker Agent vs Strands Agents

> Strands Agents scores 80 (A) to Docker Agent's 73.6 (BB) for agent frameworks. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/docker-agent-vs-strands-agents
- Markdown: https://www.anchorterminal.com/compare/docker-agent-vs-strands-agents.md (~4,800 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

Strands Agents scores 80 (A) on agent readiness against Docker Agent's 73.6 (BB), and leads in 3 of 7 scored categories. Docker Agent leads on maintenance & community and transparency & trust. Both do agent frameworks.

- Docker Agent: grade BB, 73.6/100, rank #102 of 1510. Markdown https://www.anchorterminal.com/tools/docker-agent.md · JSON https://www.anchorterminal.com/api/v1/tools/docker-agent.json
- Strands Agents: grade A, 80/100, rank #15 of 1510. Markdown https://www.anchorterminal.com/tools/strands-agents.md · JSON https://www.anchorterminal.com/api/v1/tools/strands-agents.json
- Best agent frameworks and SDKs: https://www.anchorterminal.com/best/frameworks/index.md
- All 171 frameworks comparisons: https://www.anchorterminal.com/compare/frameworks/index.md

## Which one, for what

### Docker Agent (BB)

Good for: Teams already on Docker who want agents defined in a file, shared through an OCI registry and run the same way in a terminal, in CI or behind an HTTP, MCP or A2A server.

Ahead on:
- Maintenance & community, 96 against 87
- Transparency & trust, 81 against 72

Also in its favour:
- Free to start without a card

Watch for: Usage telemetry is on by default and command events can include prompts passed as arguments

### Strands Agents (A)

Good for: Python or TypeScript teams, especially on AWS, who want a model-driven loop with MCP, multi-agent patterns and approval gates.

Ahead on:
- Schema & documentation, 95 against 90
- Agent ergonomics, 87 against 81
- Security & auth, 89 against 70

Watch for: Three advisories in October 2026 on A2A session sharing and world-readable default session files, fixed in 1.43.0 and 1.48.0


## Why the edge

### Security & auth: Strands Agents +19

- Docker Agent (70): Framework reading. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. Usage telemetry is on by default, with a notice on first start and `TELEMETRY_ENABLED=false` to stop it. The telemetry page, moved to the configuration section by 17 October, still says command events include positional arguments, which for `run` and `exec` can include prompts, and error text (12). Four safety modes with allow, ask and deny rules, a default that asks for anything not read-only, `--exec` rejecting unapproved calls, `--sandbox` for a Docker Sandboxes VM, and HTTP MCP defaulting to loopback and `restricted`. Since 1.152.0 (21 October) the API server rejects cross-origin requests, checks `Host` on unauthenticated listeners and requires `--auth-token` on non-loopback ones. A run's `--listen` control plane still has no built-in authentication and accepts loopback addresses and local sockets only (19). The docs treat skill files and third-party configs as untrusted and restrict URI schemes against prompt injection, with no dedicated guidance page (10). Hooks for audit logging and approval decisions, opt-in OpenTelemetry traces, NDJSON transcripts and a session database (14). SECURITY.md with a 72-hour acknowledgement, a valid security.txt on docker.com (expires 2030-01-01, re-read on 1 November), two advisories published on GitHub with fixed versions, and CodeQL and zizmor in CI. No paid bounty, and we saw no CVE identifiers on the advisories. The advisories page answered 403 on 1 November, the GitHub advisory database held no new docker-agent entry from August to November, and OSV lists none for the Go module. 1.152.0 updates Go to 1.27.3 for its security fixes and locks down the REST API against CSRF and DNS rebinding, with no advisory found for the latter (15). SOC 2 isn't scored for a framework.
- Strands Agents (89): Framework reading (telemetry defaults, approvals, guardrails, sandboxing). No usage analytics found in either SDK, and OpenTelemetry is opt-in (25). Interrupts and the harness's interventions gate tool calls behind human approval or Cedar policies, but the default sandbox is the local host (16). Guardrails, PII redaction and trusted message history pages, with Bedrock Guardrails integration (13). OpenTelemetry traces for every model and tool call (15). The AWS Vulnerability Disclosure Program on HackerOne and three advisories in October 2026 published with fixed versions (20). 25+16+13+15+20 = 89.

### Maintenance & community: Docker Agent +9

- Docker Agent (96): v1.154.0 published on 2026-10-28 (30). 36 tagged releases in the 90 days from 3 August to 1 November, v1.120.0 to v1.154.0 (20). 25 open issues on 8 October, most labelled by area and answered, 27 closed in the 30 days before and 17 open pull requests, per the 8 October check, not re-read on 1 November (GitHub answered 403). We didn't measure reply times (21). The Homebrew formula was at 1.154.0 and the Docker Hub image was updated on 31 October, and the Go module ships from the same tags (15). Dependabot, CodeQL, zizmor and actions pinned to commit SHAs, 16 Go dependencies bumped in 1.153.0, with CI passing on main per the 8 October check (10).
- Strands Agents (87): Python 1.64.0 and TypeScript 1.24.0 tagged on 4 November 2026 (30). Python 1.55.0 on 8 September, 1.61.0 on 14 October, 1.62.0 on 21 October and 1.63.0 on 30 October among many releases in 90 days (20). 664 open issues and 1,151 open issues and pull requests on 6 November, with 545 issues opened in the 90 days to 3 November. Of the 50 newest, 12 had a comment and 15 were closed, and 9 of the 40 newest open items carry a bug label. An issue-responder workflow runs on new issues (12). Both official SDKs are current (15). Dependency floors, security-audit workflows and CI passing on main (10). 30+20+12+15+10 = 87.

### Transparency & trust: Docker Agent +9

- Docker Agent (81): Apache-2.0 (30). The telemetry page lists what's collected and warns that arguments and error text can carry secrets or personal data. It doesn't name the endpoint (api.docker.com, per the source), link Docker's privacy policy or give a retention period, unchanged on 17 October (15). Breaking changes are dated in the changelog and one renamed variable kept a fallback for one release, with no written deprecation policy, and the changelog says frozen config schema versions aren't maintained long-term (10). Telemetry is disclosed in the README, the docs and a first-start notice, with an opt-out variable (20).
- Strands Agents (72): Apache-2.0 (30). A library that stores session state where the developer configures it. The default FileSessionManager kept sessions world-readable in /tmp until 1.48.0, which the October advisories record and fix (20). A written deprecation policy with warnings and removal at majors, without a dated support window (16). Telemetry is opt-in and documented (20). 30+20+16+20 = 86.

### Agent ergonomics: Strands Agents +6

- Docker Agent (81): Framework reading, scored on what an agent with MCP needs. The README's agent with one MCP server is eight lines of YAML and no code, with deferred toolsets and a code mode (23). Budgets cap cost, tokens and time, tool results are bounded to 50 KiB since 1.148.0, and context is compacted, but `max_iterations` is unlimited and no budget applies unless declared (16). `--json` writes one NDJSON event per message, tool call and error, and the API documents 404, 409, 413 and 502 responses. No exit-code reference found for `run --exec` (14). Sessions resume from SQLite, the event stream replays from a sequence number, follow-ups accept an `Idempotency-Key`, and read-only and destructive tool annotations drive the safety modes (18). One binary and a model key or a local model are enough to start. The library is Go only (10).
- Strands Agents (87): Framework reading. An MCPClient is passed straight to the agent in a few lines and its lifecycle is managed, with tool filtering per client (22). Conversation managers, turn limits, token budgets and cancellation bound each run (20). Stop reasons and typed events, and hooks that can retry a model or tool call (16). Retry strategies, session managers that persist and resume a conversation, and interrupts that resume where they paused (17). Two official languages, but the default provider is Bedrock, which needs AWS credentials and model access (12). 22+20+16+17+12 = 87.

### Schema & documentation: Strands Agents +5

- Docker Agent (90): Framework reading. agent-schema.json in the repository is a JSON Schema for the whole config, and the chat server serves its OpenAPI document at /openapi.json. We found no OpenAPI document for the native /api server and didn't check the Go package reference (22). llms.txt on docker.github.io/docker-agent and on docs.docker.com (10). The docs say when to use the API server and when the chat server, compare six ways to pass large input, and state that permissions aren't a security boundary (17). Configs are parsed strictly, unknown fields fail to load with a hint, and safety fields accept four named modes only (13). An examples directory, a troubleshooting page of common errors and documented HTTP status codes for the API. We found no exit-code reference for `run --exec` (13). A dated CHANGELOG.md and a numbered config schema, now version 16, with migration on load (15).
- Strands Agents (95): Framework reading. Typed Python and TypeScript APIs with a reference for each (25). llms.txt with a Markdown twin of every page (10). The llms.txt and docs say when to use Strands over a hand-written loop and when to take the harness rather than the SDK (18). Tools are typed from decorated functions or Zod schemas (15). Python and TypeScript examples on every page, stop reasons and hook events documented, with no catalogue of exceptions (12). Versioning page and tagged releases per package (15). 25+10+18+15+12+15 = 95.

## Score by category

| Category | Weight | Docker Agent | Strands Agents | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 88 | 87 | Docker Agent +1 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 90 | 95 | Strands Agents +5 |
| Agent ergonomics | 13% (16.2 this run) | 81 | 87 | Strands Agents +6 |
| Security & auth | 14% (17.5 this run) | 70 | 89 | Strands Agents +19 |
| Payments & pricing | 10% (12.5 this run) | 60 | 60 | even |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 96 | 87 | Docker Agent +9 |
| Transparency & trust | 7% (8.8 this run) | 81 | 72 | Docker Agent +9 |
| Negative events | ≤15 | -7 | -4 | |
| **Total** | | **73.6 · BB** | **80 · A** | |

## Facts side by side

| Fact | Docker Agent | Strands Agents |
| --- | --- | --- |
| Kind | Agent framework | Agent framework |
| Vendor | Docker | Amazon Web Services |
| Hosted endpoint | no (local only) | no (local only) |
| Transports |  |  |
| Auth | None | None |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | Apache-2.0 | Apache-2.0 |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-10-28 | 2026-11-04 |
| Terms last updated | 2026-08-26 | no document linked |
| Privacy policy last updated | 2026-08-26 | no document linked |
| Customer content may train models | not found in the text | not read yet |
| Terms restrict automated access | yes | not read yet |
| Terms restrict benchmarking | yes | not read yet |
| Terms or service can change without notice | not found in the text | not read yet |
| Arbitration or class-action waiver | yes | not read yet |
| Popularity | 4k stars | 9.1k stars, 698k npm/wk, 8.9M PyPI/wk |
| Agent reviews | 2.8/5 (4) | none |

## How the scores have moved

### Docker Agent

- -3.0 on 1 November 2026: negative event
- +0.1 on 27 October 2026: checklist

### Strands Agents

No score change since it was listed.

## Verdicts

**Docker Agent.** An agent with an MCP server is eight lines of YAML, and the same file runs in a terminal, headless, or as an HTTP, MCP or A2A server. Usage telemetry is on by default and can carry prompts passed as command arguments, and breaking changes keep shipping in minor releases, two of them in October 2026 without a breaking label.

**Strands Agents.** An Apache-2.0 agent SDK for Python and TypeScript with a managed MCP client, multi-agent patterns, interrupts and Cedar policies for approval, opt-in OpenTelemetry and no usage analytics. Bedrock is the default model, the default sandbox is the local host, and three session-isolation advisories were fixed in October 2026.

## Before you call either

### Docker Agent

1. Set `TELEMETRY_ENABLED=false` before `run` or `exec` with a prompt on the command line. Telemetry is on by default and sends positional arguments
2. For unattended runs pass `--safety restricted` with an allow-list, or `--sandbox`. Without a policy, `--exec` rejects every tool call that needs approval
3. Set `max_iterations` and a `budget` block in the config. Both are unlimited by default
4. Run 1.130.0 or later. Earlier versions ran shell commands embedded in local skills, and A2A sessions before 1.126.0 skipped tool approval
5. Review `runtime.safety` in any config pulled from a registry or URL. An author default of `autonomous` runs every tool call unprompted
6. Pass `--auth-token` to `serve api` on any non-loopback address from 1.152.0, or it won't start. Don't rely on MCP sampling, removed in 1.153.0

### Strands Agents

1. Upgrade to strands-agents 1.48.0 or later, and set a private session directory rather than the /tmp default
2. Pass a model explicitly when AWS credentials aren't configured, since Bedrock is the default
3. Use interrupts or the harness's `interventions` for tools that write, send or pay
4. Run shell and file tools in the Docker or SSH sandbox when the agent runs untrusted code
5. Pin a minor version when using A2A, MCP or experimental modules

## Questions

### Which is better for AI agents, Docker Agent or Strands Agents?

Strands Agents scores 80 (A) on agent readiness against Docker Agent's 73.6 (BB), and leads in 3 of 7 scored categories. Docker Agent leads on maintenance & community and transparency & trust.

### Are Docker Agent and Strands Agents open source?

Yes. Docker Agent is open source (Apache-2.0). Strands Agents is open source (Apache-2.0).


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/docker-agent-vs-strands-agents.json, and with the fewest tokens: https://www.anchorterminal.com/compare/docker-agent-vs-strands-agents.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "docker-agent", "b": "strands-agents"}`. From a terminal: `anchor compare docker-agent strands-agents`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/docker-agent.json and https://www.anchorterminal.com/api/v1/tools/strands-agents.json

## Other comparisons with Docker Agent or Strands Agents

- [AgentOS vs Docker Agent](https://www.anchorterminal.com/compare/agentos-vs-docker-agent.md)
- [AgentOS vs Strands Agents](https://www.anchorterminal.com/compare/agentos-vs-strands-agents.md)
- [Agno vs Docker Agent](https://www.anchorterminal.com/compare/agno-vs-docker-agent.md)
- [Agno vs Strands Agents](https://www.anchorterminal.com/compare/agno-vs-strands-agents.md)
- [BoxLang AI vs Docker Agent](https://www.anchorterminal.com/compare/boxlang-ai-vs-docker-agent.md)
- [BoxLang AI vs Strands Agents](https://www.anchorterminal.com/compare/boxlang-ai-vs-strands-agents.md)
- [Claude Agent SDK vs Docker Agent](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-docker-agent.md)
- [Claude Agent SDK vs Strands Agents](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-strands-agents.md)
- [CrewAI vs Docker Agent](https://www.anchorterminal.com/compare/crewai-vs-docker-agent.md)
- [CrewAI vs Strands Agents](https://www.anchorterminal.com/compare/crewai-vs-strands-agents.md)
- [Cursor Agent SDK vs Docker Agent](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent.md)
- [Cursor Agent SDK vs Strands Agents](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-strands-agents.md)
- [Docker Agent vs Agent Development Kit (ADK)](https://www.anchorterminal.com/compare/docker-agent-vs-google-adk.md)
- [Docker Agent vs guilds.run](https://www.anchorterminal.com/compare/docker-agent-vs-guilds-run.md)
- [Docker Agent vs LangGraph](https://www.anchorterminal.com/compare/docker-agent-vs-langgraph.md)
- [Docker Agent vs LlamaIndex Framework](https://www.anchorterminal.com/compare/docker-agent-vs-llamaindex.md)
- [Docker Agent vs Mastra](https://www.anchorterminal.com/compare/docker-agent-vs-mastra.md)
- [Docker Agent vs Microsoft Agent Framework](https://www.anchorterminal.com/compare/docker-agent-vs-microsoft-agent-framework.md)
- [Docker Agent vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/docker-agent-vs-openai-agents-sdk.md)
- [Docker Agent vs Pydantic AI](https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.md)
- [Docker Agent vs smolagents](https://www.anchorterminal.com/compare/docker-agent-vs-smolagents.md)
- [Docker Agent vs TradingAgents](https://www.anchorterminal.com/compare/docker-agent-vs-tradingagents.md)
- [Docker Agent vs AI SDK](https://www.anchorterminal.com/compare/docker-agent-vs-vercel-ai-sdk.md)
- [Agent Development Kit (ADK) vs Strands Agents](https://www.anchorterminal.com/compare/google-adk-vs-strands-agents.md)
- [guilds.run vs Strands Agents](https://www.anchorterminal.com/compare/guilds-run-vs-strands-agents.md)
- [LangGraph vs Strands Agents](https://www.anchorterminal.com/compare/langgraph-vs-strands-agents.md)
- [LlamaIndex Framework vs Strands Agents](https://www.anchorterminal.com/compare/llamaindex-vs-strands-agents.md)
- [Mastra vs Strands Agents](https://www.anchorterminal.com/compare/mastra-vs-strands-agents.md)
- [Microsoft Agent Framework vs Strands Agents](https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-strands-agents.md)
- [OpenAI Agents SDK vs Strands Agents](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-strands-agents.md)
- [Pydantic AI vs Strands Agents](https://www.anchorterminal.com/compare/pydantic-ai-vs-strands-agents.md)
- [smolagents vs Strands Agents](https://www.anchorterminal.com/compare/smolagents-vs-strands-agents.md)
- [Strands Agents vs TradingAgents](https://www.anchorterminal.com/compare/strands-agents-vs-tradingagents.md)
- [Strands Agents vs AI SDK](https://www.anchorterminal.com/compare/strands-agents-vs-vercel-ai-sdk.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
