{
  "data": {
    "a": {
      "slug": "docker-agent",
      "name": "Docker Agent",
      "vendor": "Docker",
      "vendorUrl": "https://docker.github.io/docker-agent/",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Docker's open-source runtime for building and running AI agents from YAML or HCL files, formerly cagent. It runs as a `docker agent` CLI plugin with a terminal UI, headless mode, HTTP, MCP and A2A servers, and a Go library.",
      "url": "https://www.anchorterminal.com/tools/docker-agent",
      "markdownUrl": "https://www.anchorterminal.com/tools/docker-agent.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/docker-agent.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/docker-agent.json",
      "dns": "docker-agent.grade.anchorterminal.com",
      "repo": "https://github.com/docker/docker-agent",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "oci",
          "name": "docker/docker-agent"
        },
        {
          "registry": "go",
          "name": "github.com/docker/docker-agent"
        }
      ],
      "auth": "none",
      "authNotes": "No account of its own. Model keys come from provider environment variables, `--env-from-file`, an account login or Docker Model Runner for local models. The servers it starts take an optional Bearer token (`--auth-token`), which HTTP MCP requires on a non-loopback address.",
      "pricing": "free",
      "pricingNotes": "Free and Apache-2.0, with nothing to buy for the CLI. You pay your model provider, or nothing with a local model through Docker Model Runner. Cloud sandboxes need a Docker login and weren't priced in this check.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the README (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 4029,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docker.github.io/docker-agent/",
      "llmsTxt": "https://docker.github.io/docker-agent/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.multi-agent",
        "agent.mcp-client",
        "agent.durable"
      ],
      "tags": [
        "framework",
        "open-source",
        "go",
        "local",
        "free",
        "no-card",
        "llms-txt",
        "docker"
      ],
      "lastRelease": "2026-10-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 73.6,
        "grade": "BB",
        "agentReady": true,
        "rank": 101,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 8,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 81,
          "maintenance": 96,
          "payments": 60,
          "reliability": 88,
          "schema": 90,
          "security": 70,
          "transparency": 81
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -7,
        "negativeNotes": [
          "2026-09-01. GHSA-8f6v-26r8-3r4h (high). `read_skill` was treated as read-only and could be auto-approved, yet it ran shell commands embedded in local skill files, so opening a repository that ships skills could run commands without a prompt. Affects 1.32.5 up to 1.130.0. Fixed in 1.130.0 and published, inside six months, -2. https://github.com/docker/docker-agent/security/advisories/GHSA-8f6v-26r8-3r4h",
          "2026-08-20. GHSA-f2g7-cxrq-x54m (high). `docker agent serve a2a` created unattended sessions with tool approval disabled, so a client that could reach the endpoint could run tools without approval. The listener binds to loopback by default. Affects 1.8.2 up to 1.126.0. Fixed in 1.126.0 and published, inside six months, -2. https://github.com/docker/docker-agent/security/advisories/GHSA-f2g7-cxrq-x54m",
          "2026-10-21 and 2026-10-28. Breaking changes in minor releases without notice. 1.152.0 made `--auth-token` mandatory on non-loopback TCP listeners, so `serve api --listen 0.0.0.0:8080`, the command the API server docs showed without a token before that release, now refuses to start, and the change is listed under Bug Fixes. 1.153.0 removed MCP sampling, roots and logging support under Technical Changes, with no earlier deprecation notice in the changelog. Neither has a Breaking Changes section. The same pattern ran through 1.137.0 (9 September), which removed the `session_plan` toolset in a labelled Breaking Changes section with no deprecation notice found, read only through the semver line on 17 October. The auth change closes a DNS-rebinding and CSRF path and the error says what to set, so the floor, one term for the pattern across these releases, -3. https://github.com/docker/docker-agent/blob/main/CHANGELOG.md"
        ],
        "verdict": "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.",
        "bestFor": "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.",
        "strengths": [
          "An agent with one MCP server is eight lines of YAML, with a published JSON Schema for the config",
          "Four safety modes, allow, ask and deny rules, and a `--sandbox` flag that runs the agent in a Docker Sandboxes VM",
          "Headless `run --exec` with NDJSON events, structured output, and budgets for cost, tokens and time",
          "The same config runs as an HTTP API, an OpenAI-compatible chat server, an MCP server or an A2A server",
          "v1.154.0 on 28 October 2026, with 36 tagged releases in the 90 days to 1 November and a dated changelog"
        ],
        "weaknesses": [
          "Usage telemetry is on by default and command events can include prompts passed as arguments",
          "Two high-severity advisories in 2026, each letting tools or shell commands run without approval, both fixed",
          "Breaking changes ship in minor releases, three labelled between July and September 2026 and two unlabelled in October (1.152.0, 1.153.0)",
          "`max_iterations` is unlimited and no budget is set unless the config declares one",
          "The `--listen` control plane has no built-in authentication (loopback only), and A2A support is described as early"
        ],
        "agentNotes": [
          "Set `TELEMETRY_ENABLED=false` before `run` or `exec` with a prompt on the command line. Telemetry is on by default and sends positional arguments",
          "For unattended runs pass `--safety restricted` with an allow-list, or `--sandbox`. Without a policy, `--exec` rejects every tool call that needs approval",
          "Set `max_iterations` and a `budget` block in the config. Both are unlimited by default",
          "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",
          "Review `runtime.safety` in any config pulled from a registry or URL. An author default of `autonomous` runs every tool call unprompted",
          "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"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 73.6
          }
        ],
        "editorialScores": {
          "ergonomics": 81,
          "maintenance": 96,
          "payments": 60,
          "reliability": 88,
          "schema": 90,
          "security": 70,
          "transparency": 75
        },
        "provenanceScore": 86,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "brew install docker-agent   # bundled with Docker Desktop 4.63 and later as `docker agent`",
        "claudeCode": "claude mcp add --transport stdio myagent --env OPENAI_API_KEY=$OPENAI_API_KEY --env ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY -- docker agent serve mcp myorg/agent:tag --working-dir $(pwd)",
        "headless": {
          "command": "docker agent run --exec --safety restricted agent.yaml --json \"$TASK\"",
          "env": {
            "OPENAI_API_KEY": "\u003ckey\u003e",
            "TELEMETRY_ENABLED": "false"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/docker-agent"
      },
      "sameCompany": [
        "docker-model-runner"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Docker, Inc.",
        "domain": "docker.com",
        "domainRegistered": "1995-01-25",
        "endpointOnVendorDomain": null,
        "terms": "https://www.docker.com/legal/docker-terms-use/",
        "privacy": "https://www.docker.com/legal/privacy/",
        "statusPage": "",
        "changelog": "https://github.com/docker/docker-agent/blob/main/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-11-01",
        "notes": [
          "The repository is under GitHub's docker organisation and SECURITY.md sends reports to security@docker.com. Docker's privacy policy names Docker, Inc.",
          "www.docker.com/.well-known/security.txt gives security@docker.com, a policy URL and an expiry of 1 January 2030, re-read on 1 November 2026.",
          "Main-branch docs are on docker.github.io/docker-agent and the stable docs on docs.docker.com/ai/docker-agent. By 17 October 2026 the telemetry and OpenTelemetry pages had moved from the community section to the configuration section, and the old paths still load.",
          "Docker's general terms and privacy policy are listed. Neither the README nor the telemetry page says which terms govern the open-source CLI.",
          "No status page is listed because the software runs on the owner's machine. Usage telemetry goes to api.docker.com/events/v1/track per pkg/telemetry/client.go.",
          "RDAP for docker.com gives a registration date of 1995-01-25."
        ],
        "score": 86
      },
      "requirements": {
        "setupChecked": true,
        "complianceChecked": true,
        "card": "unknown",
        "freeTier": true,
        "minutes": 5,
        "credential": "api-key",
        "hosting": [
          "self-hosted"
        ],
        "euResidency": "unknown",
        "trainsOnData": "no",
        "zeroRetention": "unknown",
        "selfHost": "yes"
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/docker-agent.json",
      "live": {
        "slug": "docker-agent",
        "versions": [
          {
            "registry": "github",
            "name": "docker/docker-agent",
            "version": "v1.157.2",
            "released": "2026-11-05",
            "seenAt": "2026-11-06T23:21:45.59514179Z"
          }
        ],
        "githubStars": 4662,
        "securityTxt": {
          "url": "https://docker.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-01-01T05:00:00.000Z",
          "checkedAt": "2026-11-07T16:00:06.40302104Z"
        },
        "llmsTxt": {
          "url": "https://docker.github.io/docker-agent/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:18.14013237Z"
        },
        "domain": {
          "domain": "docker.com",
          "registered": "1995-01-25",
          "source": "https://rdap.verisign.com/com/v1/domain/docker.com",
          "checkedAt": "2026-11-01T14:14:21.327350802Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/docker/docker-agent/main/CHANGELOG.md",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-11-07T14:20:37.941057894Z",
            "changedAt": "2026-11-06T13:41:57.676287987Z",
            "fingerprint": "3ffc7b576b1b"
          },
          {
            "url": "https://www.docker.com/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:28:02.241968202Z",
            "changedAt": "2026-10-09T18:49:41.704132769Z",
            "fingerprint": "8e523e7e5859"
          },
          {
            "url": "https://www.docker.com/legal/docker-terms-use/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:28:00.267054946Z",
            "changedAt": "2026-10-30T05:54:50.28672223Z",
            "fingerprint": "e68baa3d8d9c"
          }
        ],
        "github": {
          "repo": "docker/docker-agent",
          "checkedAt": "2026-11-02T08:44:40.290365909Z",
          "stars": 4646,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-02T08:37:52Z",
          "openIssues": 37,
          "openPRs": 35,
          "issuesOpened90d": 153,
          "issuesClosed90d": 124,
          "prsMerged90d": 658,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 46,
            "failure": 4,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-11-02T08:23:20Z"
          },
          "advisories": [
            {
              "ghsa": "GHSA-8f6v-26r8-3r4h",
              "severity": "high",
              "published": "2026-09-01T16:46:23Z"
            },
            {
              "ghsa": "GHSA-f2g7-cxrq-x54m",
              "severity": "high",
              "published": "2026-08-20T13:03:08Z"
            }
          ],
          "replies": {
            "sampled": 25,
            "unanswered": 11,
            "medianDays": 0.9
          }
        },
        "updatedAt": "2026-11-07T16:00:06.40302104Z"
      }
    },
    "answer": "Docker Agent scores 73.6 (BB) on agent readiness against smolagents's 58.7 (C), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "smolagents",
      "name": "smolagents",
      "vendor": "Hugging Face",
      "vendorUrl": "https://github.com/huggingface/smolagents",
      "kind": "framework",
      "category": "frameworks",
      "summary": "smolagents is Hugging Face's small Python library for agents that write and run Python code (CodeAgent) or call tools as JSON (ToolCallingAgent), with MCP tools, any model provider and sandboxed execution through E2B, Docker, Modal or Blaxel.",
      "url": "https://www.anchorterminal.com/tools/smolagents",
      "markdownUrl": "https://www.anchorterminal.com/tools/smolagents.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/smolagents.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/smolagents.json",
      "dns": "smolagents.grade.anchorterminal.com",
      "repo": "https://github.com/huggingface/smolagents",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "smolagents"
        }
      ],
      "auth": "none",
      "authNotes": "A library with no credentials of its own. The default InferenceClientModel uses a Hugging Face token; other providers and remote sandboxes take their own keys.",
      "pricing": "free",
      "pricingNotes": "Free and open source under Apache-2.0. You pay for model calls and for any remote sandbox (E2B, Modal, Blaxel) you use.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the repository (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 30234,
        "npmWeekly": null,
        "pypiWeekly": 171063,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://huggingface.co/docs/smolagents/index",
      "llmsTxt": "https://huggingface.co/docs/smolagents/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "framework",
        "python",
        "open-source",
        "llms-txt",
        "mcp",
        "code-agent",
        "sandbox"
      ],
      "lastRelease": "2026-05-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.7,
        "grade": "C",
        "agentReady": false,
        "rank": 735,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 18,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 34,
          "payments": 60,
          "reliability": 64,
          "schema": 81,
          "security": 66,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": -6,
        "negativeNotes": [
          "2025-12-23 to 2026-03-27. GHSA-q9r5-6hrr-9ph7 (CVE-2025-14931, critical, from the Zero Day Initiative) reports remote code execution through pickle deserialisation in the remote Python executor; the fix for remote executors merged on 15 February 2026, about eight weeks after publication. CVE-2026-2654 (SSRF, 1.24.0) and CVE-2026-4963 (code injection in LocalPythonExecutor, an incomplete earlier fix) are rated low, and both records say the vendor did not respond. Fixed or low, under 12 months old, 6 points. https://osv.dev/vulnerability/GHSA-q9r5-6hrr-9ph7"
        ],
        "verdict": "A compact Python library for code-writing and tool-calling agents, with MCP tools, any model provider and remote sandboxes through E2B, Docker, Modal or Blaxel. The newest release is 1.26.0 of 29 May 2026, a critical remote-executor RCE took about eight weeks to fix, and the local executor isn't a security boundary.",
        "bestFor": "Small Python projects and research that want code-writing agents with minimal abstraction.",
        "strengths": [
          "CodeAgent and ToolCallingAgent in a small, readable codebase",
          "MCP tools from any server through MCPClient",
          "Remote execution through E2B, Docker, Modal or Blaxel, with a guide on when it's needed",
          "No telemetry found in the source",
          "llms.txt and Markdown docs on huggingface.co"
        ],
        "weaknesses": [
          "No release since 1.26.0 on 29 May 2026, and few commits to main since August",
          "The local Python executor isn't a security boundary, per its own guide",
          "A critical RCE in the remote executor (published December 2025) was fixed in February 2026",
          "No human approval hook, retry or resume built in",
          "Breaking removals such as WasmExecutor shipped in minor releases"
        ],
        "agentNotes": [
          "Run CodeAgent with `executor_type` set to e2b, docker, modal or blaxel whenever the model or its inputs aren't trusted",
          "Use smolagents 1.24.0 or later to get the remote-executor deserialisation fix",
          "Set max_steps and final_answer_checks so a run stops on its own",
          "Pass structured_output explicitly to MCPClient to avoid the default-change warning",
          "Pin the version, since minor releases have removed APIs"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.7
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 34,
          "payments": 60,
          "reliability": 64,
          "schema": 81,
          "security": 66,
          "transparency": 67
        },
        "provenanceScore": 62,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install smolagents   # MCP: pip install 'smolagents[mcp]'"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/smolagents"
      },
      "sameCompany": [
        "hugging-face-inference-providers",
        "hugging-face-inference-endpoints",
        "carbon-x",
        "smollm3-3b"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Hugging Face, Inc.",
        "domain": "huggingface.co",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://huggingface.co/terms-of-service",
        "privacy": "https://huggingface.co/privacy",
        "statusPage": "",
        "changelog": "https://github.com/huggingface/smolagents/releases",
        "securityTxt": "unknown",
        "checked": "2026-11-06",
        "notes": [
          "SECURITY.md takes reports through GitHub private vulnerability reporting or security@huggingface.co, with no bounty.",
          "huggingface.co/robots.txt allows all crawlers.",
          "The terms and privacy links are Hugging Face's site-wide documents; the library itself collects nothing."
        ],
        "score": 62
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/smolagents.json",
      "live": {
        "slug": "smolagents",
        "versions": [
          {
            "registry": "github",
            "name": "huggingface/smolagents",
            "version": "v1.26.0",
            "released": "2026-05-29",
            "seenAt": "2026-11-07T00:06:55.865567193Z"
          },
          {
            "registry": "pypi",
            "name": "smolagents",
            "version": "1.26.0",
            "released": "2026-05-29",
            "seenAt": "2026-11-07T00:06:55.546186347Z"
          }
        ],
        "githubStars": 30238,
        "pypiWeekly": 171063,
        "securityTxt": {
          "url": "https://huggingface.co/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-07-01T08:42:00.000Z",
          "checkedAt": "2026-11-07T16:00:00.493446773Z"
        },
        "llmsTxt": {
          "url": "https://huggingface.co/docs/smolagents/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:57.593545427Z"
        },
        "updatedAt": "2026-11-07T16:00:00.493446773Z"
      }
    },
    "edges": [
      {
        "by": 62,
        "category": "maintenance",
        "leads": "docker-agent",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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).",
          "b": "v1.26.0 on 29 May 2026, 161 days before this check (10). No release in the 90 days to 6 November (0). 416 open issues and 1,045 open issues and pull requests on 6 November, with 144 issues opened in the 90 days to 3 November. Of the 50 newest, 26 had a comment and 1 was closed. Two 2026 CVE records say the vendor didn't respond to the reporter, and seven commits reached main from 8 August to 6 November (6). Python only, and the package is the current one (10). CI with actions pinned to commit SHAs and Dependabot for actions (8). 10+0+6+10+8 = 34."
        },
        "scores": {
          "a": 96,
          "b": 34
        }
      },
      {
        "by": 24,
        "category": "reliability",
        "leads": "docker-agent",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the local-software lines, because the owner runs it. Binaries for macOS, Linux and Windows on amd64 and arm64 on every GitHub release, a Homebrew formula at 1.154.0 on 1 November, a Docker Hub image updated on 31 October, and Docker Desktop 4.63 and later bundle it. Go 1.27 is the stated minimum for source builds (20). The ci workflow runs on every push to main with about 1,350 test files and an e2e directory. Nine of the last ten push runs passed on 8 October, per the 8 October check, not re-read on 1 November (25). 25 open issues and 17 open pull requests on 8 October, most labelled and answered, with open reports of a race in `transfer_task` (#4156), a hand-off dropped silently (#4242) and `edit_file` editing the first of several matches (#3929), per the 8 October check, not re-read on 1 November (20). The changelog has Breaking Changes sections, but those changes ship in minor releases (1.114.0, 1.133.0 and 1.137.0 since July) and the major version has never moved. Since then 1.152.0 (21 October) made `--auth-token` mandatory on non-loopback API listeners under Bug Fixes, and 1.153.0 (28 October) removed MCP sampling, roots and logging support under Technical Changes and changed Go runtime packages in commits marked `!`, none of them in a Breaking Changes section (8). 1.154.0, past 1.0 (15).",
          "b": "Local-package reading. Official PyPI package with Python 3.10 or newer (20). A public tests workflow runs pytest on Python 3.10 and 3.12 for pushes and pull requests; whether main passes wasn't read (15). 416 open issues and 1,045 open issues and pull requests on 6 November, with 144 issues opened in the 90 days to 3 November. Of the 50 newest, 26 had a comment and 1 was closed. Two 2026 CVE records say the vendor didn't respond to the reporter, and seven commits reached main from 8 August to 6 November (6). Release notes on GitHub tags but no changelog file, and the remote WasmExecutor was removed in a minor release (8). 1.0 since 31 December 2024 (15). 20+15+6+8+15 = 64."
        },
        "scores": {
          "a": 88,
          "b": 64
        }
      },
      {
        "by": 16,
        "category": "transparency",
        "leads": "docker-agent",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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).",
          "b": "Apache-2.0 (30). The library stores nothing itself; the default model sends prompts to Hugging Face's inference providers, which the docs show (20). Breaking removals such as WasmExecutor shipped in minor releases, without a written deprecation policy (5). No telemetry, though no page states it (12). 30+20+5+12 = 67."
        },
        "scores": {
          "a": 81,
          "b": 65
        }
      },
      {
        "by": 13,
        "category": "ergonomics",
        "leads": "docker-agent",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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).",
          "b": "Framework reading. MCPClient loads an MCP server's tools in a few lines (20). max_steps, planning intervals and final_answer_checks bound a run (16). Errors from tools and code go back to the model as observations (14). No built-in retry, idempotency or resume beyond replaying memory (8). Few required parameters and many providers, Python only, and the default model needs a Hugging Face token (10). 20+16+14+8+10 = 68."
        },
        "scores": {
          "a": 81,
          "b": 68
        }
      },
      {
        "by": 9,
        "category": "schema",
        "leads": "docker-agent",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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).",
          "b": "Framework reading. A typed Python API with reference pages for agents, models, tools and executors (22). llms.txt and Markdown pages on huggingface.co (10). The docs say when to use CodeAgent or ToolCallingAgent and when a sandbox is needed (17). Tools declare typed inputs in a schema dictionary or from a decorated function (12). Many runnable examples; error classes exist but aren't catalogued (10). Versions tagged with release notes, no changelog file (10). 22+10+17+12+10+10 = 81."
        },
        "scores": {
          "a": 90,
          "b": 81
        }
      }
    ],
    "facts": [
      {
        "a": "Agent framework",
        "b": "Agent framework",
        "name": "Kind"
      },
      {
        "a": "Docker",
        "b": "Hugging Face",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-28",
        "b": "2026-05-29",
        "name": "Last release"
      },
      {
        "a": "2026-08-26",
        "b": "2022-09-15",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-26",
        "b": "2023-03-28",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "4k stars",
        "b": "30k stars, 171k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "2.8/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Docker Agent scores 73.6 (BB) on agent readiness against smolagents's 58.7 (C), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Docker Agent or smolagents?"
      },
      {
        "answer": "Yes. Docker Agent is open source (Apache-2.0). smolagents is open source (Apache-2.0).",
        "question": "Are Docker Agent and smolagents open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 88 against 64",
          "Schema \u0026 documentation, 90 against 81",
          "Agent ergonomics, 81 against 68",
          "Maintenance \u0026 community, 96 against 34",
          "Transparency \u0026 trust, 81 against 65"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Free to start without a card"
        ],
        "goodFor": "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.",
        "slug": "docker-agent",
        "watchFor": "Usage telemetry is on by default and command events can include prompts passed as arguments"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Small Python projects and research that want code-writing agents with minimal abstraction.",
        "slug": "smolagents",
        "watchFor": "No release since 1.26.0 on 29 May 2026, and few commits to main since August"
      }
    ],
    "history": {
      "docker-agent": [
        {
          "causes": [
            "event"
          ],
          "date": "2026-11-01",
          "delta": -3,
          "from": 76.6,
          "fromGrade": "BB",
          "to": 73.6,
          "toGrade": "BB"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 76.5,
          "fromGrade": "BB",
          "to": 76.6,
          "toGrade": "BB"
        }
      ],
      "smolagents": null
    },
    "job": {
      "capability": "agent.framework",
      "name": "Agent frameworks"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentos-vs-docker-agent.json",
        "title": "AgentOS vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentos-vs-smolagents.json",
        "title": "AgentOS vs smolagents",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agno-vs-docker-agent.json",
        "title": "Agno vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/agno-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agno-vs-smolagents.json",
        "title": "Agno vs smolagents",
        "url": "https://www.anchorterminal.com/compare/agno-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boxlang-ai-vs-docker-agent.json",
        "title": "BoxLang AI vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/boxlang-ai-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boxlang-ai-vs-smolagents.json",
        "title": "BoxLang AI vs smolagents",
        "url": "https://www.anchorterminal.com/compare/boxlang-ai-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-docker-agent.json",
        "title": "Claude Agent SDK vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-smolagents.json",
        "title": "Claude Agent SDK vs smolagents",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-docker-agent.json",
        "title": "CrewAI vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-smolagents.json",
        "title": "CrewAI vs smolagents",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent.json",
        "title": "Cursor Agent SDK vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-smolagents.json",
        "title": "Cursor Agent SDK vs smolagents",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-google-adk.json",
        "title": "Docker Agent vs Agent Development Kit (ADK)",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-google-adk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-guilds-run.json",
        "title": "Docker Agent vs guilds.run",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-guilds-run"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-langgraph.json",
        "title": "Docker Agent vs LangGraph",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-langgraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-llamaindex.json",
        "title": "Docker Agent vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-llamaindex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-mastra.json",
        "title": "Docker Agent vs Mastra",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-mastra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-microsoft-agent-framework.json",
        "title": "Docker Agent vs Microsoft Agent Framework",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-microsoft-agent-framework"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-openai-agents-sdk.json",
        "title": "Docker Agent vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.json",
        "title": "Docker Agent vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-strands-agents.json",
        "title": "Docker Agent vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-tradingagents.json",
        "title": "Docker Agent vs TradingAgents",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-tradingagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-vercel-ai-sdk.json",
        "title": "Docker Agent vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-adk-vs-smolagents.json",
        "title": "Agent Development Kit (ADK) vs smolagents",
        "url": "https://www.anchorterminal.com/compare/google-adk-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guilds-run-vs-smolagents.json",
        "title": "guilds.run vs smolagents",
        "url": "https://www.anchorterminal.com/compare/guilds-run-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langgraph-vs-smolagents.json",
        "title": "LangGraph vs smolagents",
        "url": "https://www.anchorterminal.com/compare/langgraph-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-smolagents.json",
        "title": "LlamaIndex Framework vs smolagents",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mastra-vs-smolagents.json",
        "title": "Mastra vs smolagents",
        "url": "https://www.anchorterminal.com/compare/mastra-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-smolagents.json",
        "title": "Microsoft Agent Framework vs smolagents",
        "url": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-smolagents.json",
        "title": "OpenAI Agents SDK vs smolagents",
        "url": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pydantic-ai-vs-smolagents.json",
        "title": "Pydantic AI vs smolagents",
        "url": "https://www.anchorterminal.com/compare/pydantic-ai-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/smolagents-vs-strands-agents.json",
        "title": "smolagents vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/smolagents-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/smolagents-vs-tradingagents.json",
        "title": "smolagents vs TradingAgents",
        "url": "https://www.anchorterminal.com/compare/smolagents-vs-tradingagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/smolagents-vs-vercel-ai-sdk.json",
        "title": "smolagents vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/smolagents-vs-vercel-ai-sdk"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 24,
        "docker-agent": 88,
        "edge": "docker-agent",
        "key": "reliability",
        "name": "Reliability",
        "smolagents": 64,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "docker-agent": 90,
        "edge": "docker-agent",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "smolagents": 81,
        "weight": 13
      },
      {
        "by": 13,
        "docker-agent": 81,
        "edge": "docker-agent",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "smolagents": 68,
        "weight": 13
      },
      {
        "by": 4,
        "docker-agent": 70,
        "edge": "docker-agent",
        "key": "security",
        "name": "Security \u0026 auth",
        "smolagents": 66,
        "weight": 14
      },
      {
        "by": 0,
        "docker-agent": 60,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "smolagents": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 62,
        "docker-agent": 96,
        "edge": "docker-agent",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "smolagents": 34,
        "weight": 7
      },
      {
        "by": 16,
        "docker-agent": 81,
        "edge": "docker-agent",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "smolagents": 65,
        "weight": 7
      }
    ],
    "summary": "Docker Agent scores 73.6 (BB) on agent readiness against smolagents's 58.7 (C), and leads in 6 of 7 scored categories. Both do agent frameworks.",
    "tasks": null,
    "tutorials": [],
    "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.",
      "smolagents": "A compact Python library for code-writing and tool-calling agents, with MCP tools, any model provider and remote sandboxes through E2B, Docker, Modal or Blaxel. The newest release is 1.26.0 of 29 May 2026, a critical remote-executor RCE took about eight weeks to fix, and the local executor isn't a security boundary."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/docker-agent-vs-smolagents",
    "json": "https://www.anchorterminal.com/compare/docker-agent-vs-smolagents.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/docker-agent-vs-smolagents.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/docker-agent-vs-smolagents.min.md"
  },
  "markdown": "Docker Agent scores 73.6 (BB) on agent readiness against smolagents's 58.7 (C), and leads in 6 of 7 scored categories. Both do agent frameworks.\n\n- Docker Agent: grade BB, 73.6/100, rank #101 of 1486. Markdown https://www.anchorterminal.com/tools/docker-agent.md · JSON https://www.anchorterminal.com/api/v1/tools/docker-agent.json\n- smolagents: grade C, 58.7/100, rank #735 of 1486. Markdown https://www.anchorterminal.com/tools/smolagents.md · JSON https://www.anchorterminal.com/api/v1/tools/smolagents.json\n- Best agent frameworks and SDKs: https://www.anchorterminal.com/best/frameworks/index.md\n- All 171 frameworks comparisons: https://www.anchorterminal.com/compare/frameworks/index.md\n\n## Which one, for what\n\n### Docker Agent (BB)\n\nGood 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.\n\nAhead on:\n- Reliability, 88 against 64\n- Schema \u0026 documentation, 90 against 81\n- Agent ergonomics, 81 against 68\n- Maintenance \u0026 community, 96 against 34\n- Transparency \u0026 trust, 81 against 65\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Free to start without a card\n\nWatch for: Usage telemetry is on by default and command events can include prompts passed as arguments\n\n### smolagents (C)\n\nGood for: Small Python projects and research that want code-writing agents with minimal abstraction.\n\nWatch for: No release since 1.26.0 on 29 May 2026, and few commits to main since August\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Docker Agent +62\n\n- 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).\n- smolagents (34): v1.26.0 on 29 May 2026, 161 days before this check (10). No release in the 90 days to 6 November (0). 416 open issues and 1,045 open issues and pull requests on 6 November, with 144 issues opened in the 90 days to 3 November. Of the 50 newest, 26 had a comment and 1 was closed. Two 2026 CVE records say the vendor didn't respond to the reporter, and seven commits reached main from 8 August to 6 November (6). Python only, and the package is the current one (10). CI with actions pinned to commit SHAs and Dependabot for actions (8). 10+0+6+10+8 = 34.\n\n### Reliability: Docker Agent +24\n\n- Docker Agent (88): Read with the local-software lines, because the owner runs it. Binaries for macOS, Linux and Windows on amd64 and arm64 on every GitHub release, a Homebrew formula at 1.154.0 on 1 November, a Docker Hub image updated on 31 October, and Docker Desktop 4.63 and later bundle it. Go 1.27 is the stated minimum for source builds (20). The ci workflow runs on every push to main with about 1,350 test files and an e2e directory. Nine of the last ten push runs passed on 8 October, per the 8 October check, not re-read on 1 November (25). 25 open issues and 17 open pull requests on 8 October, most labelled and answered, with open reports of a race in `transfer_task` (#4156), a hand-off dropped silently (#4242) and `edit_file` editing the first of several matches (#3929), per the 8 October check, not re-read on 1 November (20). The changelog has Breaking Changes sections, but those changes ship in minor releases (1.114.0, 1.133.0 and 1.137.0 since July) and the major version has never moved. Since then 1.152.0 (21 October) made `--auth-token` mandatory on non-loopback API listeners under Bug Fixes, and 1.153.0 (28 October) removed MCP sampling, roots and logging support under Technical Changes and changed Go runtime packages in commits marked `!`, none of them in a Breaking Changes section (8). 1.154.0, past 1.0 (15).\n- smolagents (64): Local-package reading. Official PyPI package with Python 3.10 or newer (20). A public tests workflow runs pytest on Python 3.10 and 3.12 for pushes and pull requests; whether main passes wasn't read (15). 416 open issues and 1,045 open issues and pull requests on 6 November, with 144 issues opened in the 90 days to 3 November. Of the 50 newest, 26 had a comment and 1 was closed. Two 2026 CVE records say the vendor didn't respond to the reporter, and seven commits reached main from 8 August to 6 November (6). Release notes on GitHub tags but no changelog file, and the remote WasmExecutor was removed in a minor release (8). 1.0 since 31 December 2024 (15). 20+15+6+8+15 = 64.\n\n### Transparency \u0026 trust: Docker Agent +16\n\n- 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).\n- smolagents (65): Apache-2.0 (30). The library stores nothing itself; the default model sends prompts to Hugging Face's inference providers, which the docs show (20). Breaking removals such as WasmExecutor shipped in minor releases, without a written deprecation policy (5). No telemetry, though no page states it (12). 30+20+5+12 = 67.\n\n### Agent ergonomics: Docker Agent +13\n\n- 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).\n- smolagents (68): Framework reading. MCPClient loads an MCP server's tools in a few lines (20). max_steps, planning intervals and final_answer_checks bound a run (16). Errors from tools and code go back to the model as observations (14). No built-in retry, idempotency or resume beyond replaying memory (8). Few required parameters and many providers, Python only, and the default model needs a Hugging Face token (10). 20+16+14+8+10 = 68.\n\n### Schema \u0026 documentation: Docker Agent +9\n\n- 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).\n- smolagents (81): Framework reading. A typed Python API with reference pages for agents, models, tools and executors (22). llms.txt and Markdown pages on huggingface.co (10). The docs say when to use CodeAgent or ToolCallingAgent and when a sandbox is needed (17). Tools declare typed inputs in a schema dictionary or from a decorated function (12). Many runnable examples; error classes exist but aren't catalogued (10). Versions tagged with release notes, no changelog file (10). 22+10+17+12+10+10 = 81.\n\n## Score by category\n\n| Category | Weight | Docker Agent | smolagents | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 88 | 64 | Docker Agent +24 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 90 | 81 | Docker Agent +9 |\n| Agent ergonomics | 13% (16.2 this run) | 81 | 68 | Docker Agent +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 70 | 66 | Docker Agent +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 96 | 34 | Docker Agent +62 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 81 | 65 | Docker Agent +16 |\n| Negative events | ≤15 | -7 | -6 | |\n| **Total** | | **73.6 · BB** | **58.7 · C** | |\n\n## Facts side by side\n\n| Fact | Docker Agent | smolagents |\n| --- | --- | --- |\n| Kind | Agent framework | Agent framework |\n| Vendor | Docker | Hugging Face |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Apache-2.0 | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-28 | 2026-05-29 |\n| Terms last updated | 2026-08-26 | 2022-09-15 |\n| Privacy policy last updated | 2026-08-26 | 2023-03-28 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 4k stars | 30k stars, 171k PyPI/wk |\n| Agent reviews | 2.8/5 (4) | none |\n\n## How the scores have moved\n\n### Docker Agent\n\n- -3.0 on 1 November 2026: negative event\n- +0.1 on 27 October 2026: checklist\n\n### smolagents\n\nNo score change since it was listed.\n\n## Verdicts\n\n**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.\n\n**smolagents.** A compact Python library for code-writing and tool-calling agents, with MCP tools, any model provider and remote sandboxes through E2B, Docker, Modal or Blaxel. The newest release is 1.26.0 of 29 May 2026, a critical remote-executor RCE took about eight weeks to fix, and the local executor isn't a security boundary.\n\n## Before you call either\n\n### Docker Agent\n\n1. Set `TELEMETRY_ENABLED=false` before `run` or `exec` with a prompt on the command line. Telemetry is on by default and sends positional arguments\n2. For unattended runs pass `--safety restricted` with an allow-list, or `--sandbox`. Without a policy, `--exec` rejects every tool call that needs approval\n3. Set `max_iterations` and a `budget` block in the config. Both are unlimited by default\n4. 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\n5. Review `runtime.safety` in any config pulled from a registry or URL. An author default of `autonomous` runs every tool call unprompted\n6. 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\n\n### smolagents\n\n1. Run CodeAgent with `executor_type` set to e2b, docker, modal or blaxel whenever the model or its inputs aren't trusted\n2. Use smolagents 1.24.0 or later to get the remote-executor deserialisation fix\n3. Set max_steps and final_answer_checks so a run stops on its own\n4. Pass structured_output explicitly to MCPClient to avoid the default-change warning\n5. Pin the version, since minor releases have removed APIs\n\n## Questions\n\n### Which is better for AI agents, Docker Agent or smolagents?\n\nDocker Agent scores 73.6 (BB) on agent readiness against smolagents's 58.7 (C), and leads in 6 of 7 scored categories.\n\n### Are Docker Agent and smolagents open source?\n\nYes. Docker Agent is open source (Apache-2.0). smolagents is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/docker-agent-vs-smolagents.json, and with the fewest tokens: https://www.anchorterminal.com/compare/docker-agent-vs-smolagents.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"docker-agent\", \"b\": \"smolagents\"}`. From a terminal: `anchor compare docker-agent smolagents`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/docker-agent.json and https://www.anchorterminal.com/api/v1/tools/smolagents.json\n\n## Other comparisons with Docker Agent or smolagents\n\n- [AgentOS vs Docker Agent](https://www.anchorterminal.com/compare/agentos-vs-docker-agent.md)\n- [AgentOS vs smolagents](https://www.anchorterminal.com/compare/agentos-vs-smolagents.md)\n- [Agno vs Docker Agent](https://www.anchorterminal.com/compare/agno-vs-docker-agent.md)\n- [Agno vs smolagents](https://www.anchorterminal.com/compare/agno-vs-smolagents.md)\n- [BoxLang AI vs Docker Agent](https://www.anchorterminal.com/compare/boxlang-ai-vs-docker-agent.md)\n- [BoxLang AI vs smolagents](https://www.anchorterminal.com/compare/boxlang-ai-vs-smolagents.md)\n- [Claude Agent SDK vs Docker Agent](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-docker-agent.md)\n- [Claude Agent SDK vs smolagents](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-smolagents.md)\n- [CrewAI vs Docker Agent](https://www.anchorterminal.com/compare/crewai-vs-docker-agent.md)\n- [CrewAI vs smolagents](https://www.anchorterminal.com/compare/crewai-vs-smolagents.md)\n- [Cursor Agent SDK vs Docker Agent](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent.md)\n- [Cursor Agent SDK vs smolagents](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-smolagents.md)\n- [Docker Agent vs Agent Development Kit (ADK)](https://www.anchorterminal.com/compare/docker-agent-vs-google-adk.md)\n- [Docker Agent vs guilds.run](https://www.anchorterminal.com/compare/docker-agent-vs-guilds-run.md)\n- [Docker Agent vs LangGraph](https://www.anchorterminal.com/compare/docker-agent-vs-langgraph.md)\n- [Docker Agent vs LlamaIndex Framework](https://www.anchorterminal.com/compare/docker-agent-vs-llamaindex.md)\n- [Docker Agent vs Mastra](https://www.anchorterminal.com/compare/docker-agent-vs-mastra.md)\n- [Docker Agent vs Microsoft Agent Framework](https://www.anchorterminal.com/compare/docker-agent-vs-microsoft-agent-framework.md)\n- [Docker Agent vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/docker-agent-vs-openai-agents-sdk.md)\n- [Docker Agent vs Pydantic AI](https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.md)\n- [Docker Agent vs Strands Agents](https://www.anchorterminal.com/compare/docker-agent-vs-strands-agents.md)\n- [Docker Agent vs TradingAgents](https://www.anchorterminal.com/compare/docker-agent-vs-tradingagents.md)\n- [Docker Agent vs AI SDK](https://www.anchorterminal.com/compare/docker-agent-vs-vercel-ai-sdk.md)\n- [Agent Development Kit (ADK) vs smolagents](https://www.anchorterminal.com/compare/google-adk-vs-smolagents.md)\n- [guilds.run vs smolagents](https://www.anchorterminal.com/compare/guilds-run-vs-smolagents.md)\n- [LangGraph vs smolagents](https://www.anchorterminal.com/compare/langgraph-vs-smolagents.md)\n- [LlamaIndex Framework vs smolagents](https://www.anchorterminal.com/compare/llamaindex-vs-smolagents.md)\n- [Mastra vs smolagents](https://www.anchorterminal.com/compare/mastra-vs-smolagents.md)\n- [Microsoft Agent Framework vs smolagents](https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-smolagents.md)\n- [OpenAI Agents SDK vs smolagents](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-smolagents.md)\n- [Pydantic AI vs smolagents](https://www.anchorterminal.com/compare/pydantic-ai-vs-smolagents.md)\n- [smolagents vs Strands Agents](https://www.anchorterminal.com/compare/smolagents-vs-strands-agents.md)\n- [smolagents vs TradingAgents](https://www.anchorterminal.com/compare/smolagents-vs-tradingagents.md)\n- [smolagents vs AI SDK](https://www.anchorterminal.com/compare/smolagents-vs-vercel-ai-sdk.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Docker Agent vs smolagents",
        "url": ""
      }
    ],
    "description": "Docker Agent scores 73.6 (BB) to smolagents's 58.7 (C) for agent frameworks. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Docker Agent BB 73.6",
      "smolagents C 58.7",
      "scores"
    ],
    "h1": "Docker Agent vs smolagents",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/docker-agent-vs-smolagents",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Docker Agent vs smolagents for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/docker-agent-vs-smolagents"
  },
  "tokens": {
    "markdown": 4500,
    "slim": 2380
  },
  "version": 1
}
