{
  "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",
      "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-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 76.5,
        "grade": "BB",
        "agentReady": true,
        "rank": 30,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 81,
          "maintenance": 96,
          "payments": 60,
          "reliability": 88,
          "schema": 90,
          "security": 70,
          "transparency": 80
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -4,
        "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"
        ],
        "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 two high-severity approval bypasses were fixed in August and September 2026.",
        "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.149.0 on 7 October 2026, with 45 tagged releases in 90 days 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 of them between July and September 2026",
          "`max_iterations` is unlimited and no budget is set unless the config declares one",
          "The `--listen` control plane has no built-in authentication, 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"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 76.5
          }
        ],
        "editorialScores": {
          "ergonomics": 81,
          "maintenance": 96,
          "payments": 60,
          "reliability": 88,
          "schema": 90,
          "security": 70,
          "transparency": 75
        },
        "provenanceScore": 84
      },
      "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-10-08",
        "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.",
          "Main-branch docs are on docker.github.io/docker-agent and the stable docs on docs.docker.com/ai/docker-agent. Both loaded on 8 October 2026.",
          "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": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/docker-agent.json",
      "live": {
        "slug": "docker-agent",
        "versions": [
          {
            "registry": "github",
            "name": "docker/docker-agent",
            "version": "v1.149.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-08T16:08:47.905263699Z"
          }
        ],
        "githubStars": 4162,
        "securityTxt": {
          "url": "https://docker.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-01-01T05:00:00.000Z",
          "checkedAt": "2026-10-08T15:38:30.592404975Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/docker/docker-agent/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:24:07.71659514Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1dc799acf63f"
          },
          {
            "url": "https://www.docker.com/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:28.948905077Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5c5df9f58922"
          },
          {
            "url": "https://www.docker.com/legal/docker-terms-use/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:26.958328358Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e68baa3d8d9c"
          }
        ],
        "updatedAt": "2026-10-08T18:27:28.948905077Z"
      }
    },
    "answer": "Pydantic AI scores 83.7 (A) on agent readiness against Docker Agent's 76.5 (BB), and leads in 4 of 7 scored categories. Docker Agent leads on reliability and maintenance \u0026 community.",
    "b": {
      "slug": "pydantic-ai",
      "name": "Pydantic AI",
      "vendor": "Pydantic",
      "vendorUrl": "https://pydantic.dev",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Typed Python agent framework for 25+ model providers, with MCP, A2A and durable execution.",
      "url": "https://www.anchorterminal.com/tools/pydantic-ai",
      "markdownUrl": "https://www.anchorterminal.com/tools/pydantic-ai.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pydantic-ai.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pydantic-ai.json",
      "repo": "https://github.com/pydantic/pydantic-ai",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "pydantic-ai"
        }
      ],
      "auth": "none",
      "authNotes": "A library. Credentials are for the models and tools you use.",
      "pricing": "free",
      "pricingNotes": "Free and open source. You pay for the model calls it makes. Logfire for tracing is free for personal use, $49 a month for teams.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 20192,
        "npmWeekly": null,
        "pypiWeekly": 1276452,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://pydantic.dev/docs/ai/overview/",
      "llmsTxt": "https://pydantic.dev/docs/ai/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.multi-agent",
        "agent.durable",
        "agent.mcp-client"
      ],
      "tags": [
        "framework",
        "python",
        "open-source",
        "typed",
        "no-telemetry"
      ],
      "lastRelease": "2026-10-03",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 83.7,
        "grade": "A",
        "agentReady": true,
        "rank": 3,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 95,
          "maintenance": 90,
          "payments": 60,
          "reliability": 83,
          "schema": 100,
          "security": 95,
          "transparency": 85
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-10-04"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-02-06. Two high-severity advisories, server-side request forgery in URL download handling (GHSA-2jrp-274c-jhv3, CVE-2026-25580) and stored XSS through path traversal in the web UI's CDN URL (GHSA-wjp5-868j-wqv7). Both fixed and published, and almost eight months old, so 1 point each. Six moderate and one low advisory from May to August 2026, two of them bypasses of its cloud-metadata blocklist, weren't deducted. https://github.com/pydantic/pydantic-ai/security",
          "2026-08-12. High-severity advisory GHSA-h4xc-3qfq-jf93 (CVSS 7.6). A website the developer visited could trigger agent runs and server-side tool execution through the local web chat UI (`Agent.to_web()`, `clai web`). Fixed in 2.28.0 and 1.107.4 and published, under two months old, so 2 points. It wasn't in the 1 October dossier. https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-h4xc-3qfq-jf93"
        ],
        "verdict": "Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model. Python only.",
        "bestFor": "Python teams that want typed, validated outputs and tools, many model providers and durable runs on an engine they already use.",
        "strengths": [
          "Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model",
          "No telemetry until you configure OpenTelemetry or Logfire, and the docs say nothing is sent otherwise",
          "Durable execution on Temporal, DBOS, Prefect, Restate, AWS Lambda, Kitaru and Airflow",
          "Read-only workspaces in core, and Harness sandboxes for commands and model-written code",
          "A written version policy, with deprecations kept until the next major and V1 security releases still shipping"
        ],
        "weaknesses": [
          "Python only",
          "560 open issues and 219 open pull requests (1 October count)",
          "Ten advisories in 2026, three high, including SSRF, two cloud-metadata blocklist bypasses and a cross-site flaw in the web chat UI",
          "Sandboxes, guardrails and the injection defender live in the Harness, a separate 0.x package classed Alpha",
          "The Prompt Injection Defender passes results through unchanged unless `block_high_risk=True` is set"
        ],
        "agentNotes": [
          "Define the output type first. Validation retries fix most malformed answers without a prompt change, and the test model checks the wiring with no key",
          "Use streamable HTTP for MCP, since SSE is deprecated. Call `.defer_loading()` on large MCP servers so their tools stay out of context until searched",
          "Set usage limits on every run that calls paid models",
          "Give model-run commands `LocalWorkspace(read_only=True)` or a Harness sandbox. A plain `LocalWorkspace` runs them on your machine as you",
          "Stay on a current release. 2026 advisories hit URL downloads, the cloud-metadata blocklist and the local web chat UI (`Agent.to_web()`, `clai web`)"
        ],
        "metrics": {
          "kind": "library",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "A",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 83.7
          }
        ],
        "editorialScores": {
          "ergonomics": 95,
          "maintenance": 90,
          "payments": 60,
          "reliability": 83,
          "schema": 100,
          "security": 95,
          "transparency": 95
        },
        "provenanceScore": 75
      },
      "connect": {
        "install": "pip install pydantic-ai"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/pydantic-ai"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Logfire Team",
          "unit": "month",
          "usd": 49,
          "note": "tracing, personal use free"
        }
      ],
      "provenance": {
        "legalEntity": "Pydantic Services Inc.",
        "domain": "pydantic.dev",
        "domainRegistered": "2022-04-24",
        "endpointOnVendorDomain": null,
        "terms": "https://pydantic.dev/legal/terms-of-service",
        "privacy": "https://pydantic.dev/legal/privacy-policy",
        "statusPage": "",
        "changelog": "https://pydantic.dev/docs/ai/project/changelog/",
        "securityTxt": "valid",
        "checked": "2026-10-04",
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pydantic-ai.json",
      "live": {
        "slug": "pydantic-ai",
        "versions": [
          {
            "registry": "github",
            "name": "pydantic/pydantic-ai",
            "version": "v2.54.0",
            "released": "2026-10-03",
            "seenAt": "2026-10-08T16:26:40.312540589Z"
          },
          {
            "registry": "pypi",
            "name": "pydantic-ai",
            "version": "2.54.0",
            "released": "2026-10-03",
            "seenAt": "2026-10-08T16:26:40.196659271Z"
          }
        ],
        "githubStars": 20490,
        "pypiWeekly": 1367949,
        "securityTxt": {
          "url": "https://pydantic.dev/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-09-17T00:00:00.000Z",
          "checkedAt": "2026-10-08T15:38:37.859720074Z"
        },
        "llmsTxt": {
          "url": "https://pydantic.dev/docs/ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:47.326747728Z"
        },
        "domain": {
          "domain": "pydantic.dev",
          "registered": "2022-04-24",
          "source": "https://pubapi.registry.google/rdap/domain/pydantic.dev",
          "checkedAt": "2026-10-04T13:05:46.866197353Z"
        },
        "pages": [
          {
            "url": "https://pydantic.dev/docs/ai/project/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:23:32.527570278Z",
            "changedAt": "2026-10-03T15:35:11.705364904Z",
            "fingerprint": "020b53329d62"
          },
          {
            "url": "https://pydantic.dev/articles/pydantic-ai-v2",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-08T18:23:30.452951442Z",
            "changedAt": "2026-10-08T18:23:30.452951442Z",
            "fingerprint": "ce08f06e1b0a"
          },
          {
            "url": "https://pydantic.dev/legal/privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-08T18:23:34.578401901Z",
            "changedAt": "2026-10-07T18:08:45.478164751Z",
            "fingerprint": "ffa3b6106e3d"
          },
          {
            "url": "https://pydantic.dev/legal/terms-of-service",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-08T18:23:36.500848778Z",
            "changedAt": "2026-10-07T18:08:47.356836571Z",
            "fingerprint": "39f75457a65a"
          }
        ],
        "updatedAt": "2026-10-08T18:23:36.500848778Z"
      }
    },
    "facts": [
      {
        "a": "Agent framework",
        "b": "Agent framework",
        "name": "Kind"
      },
      {
        "a": "Docker",
        "b": "Pydantic",
        "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": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-07",
        "b": "2026-10-03",
        "name": "Last release"
      },
      {
        "a": "2026-08-26",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-26",
        "b": "2024-02-21",
        "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": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "4k stars",
        "b": "20k stars, 1.3M PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "4/5 (8)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Pydantic AI scores 83.7 (A) on agent readiness against Docker Agent's 76.5 (BB), and leads in 4 of 7 scored categories. Docker Agent leads on reliability and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Docker Agent or Pydantic AI?"
      },
      {
        "answer": "Yes. Docker Agent is open source (Apache-2.0). Pydantic AI is open source (MIT).",
        "question": "Are Docker Agent and Pydantic AI open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 88 against 83",
          "Maintenance \u0026 community, 96 against 90"
        ],
        "also": [
          "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": [
          "Schema \u0026 documentation, 100 against 90",
          "Agent ergonomics, 95 against 81",
          "Security \u0026 auth, 95 against 70",
          "Transparency \u0026 trust, 85 against 80"
        ],
        "also": null,
        "goodFor": "Python teams that want typed, validated outputs and tools, many model providers and durable runs on an engine they already use.",
        "slug": "pydantic-ai",
        "watchFor": "Python only"
      }
    ],
    "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-pydantic-ai.json",
        "title": "AgentOS vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-pydantic-ai"
      },
      {
        "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-pydantic-ai.json",
        "title": "Agno vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/agno-vs-pydantic-ai"
      },
      {
        "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-pydantic-ai.json",
        "title": "Claude Agent SDK vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-pydantic-ai"
      },
      {
        "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-pydantic-ai.json",
        "title": "CrewAI vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai"
      },
      {
        "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-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-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/google-adk-vs-pydantic-ai.json",
        "title": "Agent Development Kit (ADK) vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/google-adk-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai.json",
        "title": "LangGraph vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-pydantic-ai.json",
        "title": "Microsoft Agent Framework vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-pydantic-ai.json",
        "title": "OpenAI Agents SDK vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-pydantic-ai"
      }
    ],
    "scores": [
      {
        "by": 5,
        "docker-agent": 88,
        "edge": "docker-agent",
        "key": "reliability",
        "name": "Reliability",
        "pydantic-ai": 83,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "docker-agent": 90,
        "edge": "pydantic-ai",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pydantic-ai": 100,
        "weight": 13
      },
      {
        "by": 14,
        "docker-agent": 81,
        "edge": "pydantic-ai",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pydantic-ai": 95,
        "weight": 13
      },
      {
        "by": 25,
        "docker-agent": 70,
        "edge": "pydantic-ai",
        "key": "security",
        "name": "Security \u0026 auth",
        "pydantic-ai": 95,
        "weight": 14
      },
      {
        "by": 0,
        "docker-agent": 60,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pydantic-ai": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "docker-agent": 96,
        "edge": "docker-agent",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pydantic-ai": 90,
        "weight": 7
      },
      {
        "by": 5,
        "docker-agent": 80,
        "edge": "pydantic-ai",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pydantic-ai": 85,
        "weight": 7
      }
    ],
    "summary": "Pydantic AI scores 83.7 (A) on agent readiness against Docker Agent's 76.5 (BB), and leads in 4 of 7 scored categories. Docker Agent leads on reliability and maintenance \u0026 community. Both do agent frameworks.",
    "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 two high-severity approval bypasses were fixed in August and September 2026.",
      "pydantic-ai": "Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model. Python only."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai",
    "json": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.md",
    "slim": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.min.md"
  },
  "markdown": "Pydantic AI scores 83.7 (A) on agent readiness against Docker Agent's 76.5 (BB), and leads in 4 of 7 scored categories. Docker Agent leads on reliability and maintenance \u0026 community. Both do agent frameworks.\n\n- Docker Agent: grade BB, 76.5/100, rank #30 of 629. Markdown https://www.anchorterminal.com/tools/docker-agent.md · JSON https://www.anchorterminal.com/api/v1/tools/docker-agent.json\n- Pydantic AI: grade A, 83.7/100, rank #3 of 629. Markdown https://www.anchorterminal.com/tools/pydantic-ai.md · JSON https://www.anchorterminal.com/api/v1/tools/pydantic-ai.json\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 83\n- Maintenance \u0026 community, 96 against 90\n\nAlso in its favour:\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### Pydantic AI (A)\n\nGood for: Python teams that want typed, validated outputs and tools, many model providers and durable runs on an engine they already use.\n\nAhead on:\n- Schema \u0026 documentation, 100 against 90\n- Agent ergonomics, 95 against 81\n- Security \u0026 auth, 95 against 70\n- Transparency \u0026 trust, 85 against 80\n\nWatch for: Python only\n\n\n## Score by category\n\n| Category | Weight | Docker Agent | Pydantic AI | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 88 | 83 | Docker Agent +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 90 | 100 | Pydantic AI +10 |\n| Agent ergonomics | 13% (16.2 this run) | 81 | 95 | Pydantic AI +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 70 | 95 | Pydantic AI +25 |\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 | 90 | Docker Agent +6 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 85 | Pydantic AI +5 |\n| Negative events | ≤15 | -4 | -4 | |\n| **Total** | | **76.5 · BB** | **83.7 · A** | |\n\n## Facts side by side\n\n| Fact | Docker Agent | Pydantic AI |\n| --- | --- | --- |\n| Kind | Agent framework | Agent framework |\n| Vendor | Docker | Pydantic |\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 | MIT |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-10-07 | 2026-10-03 |\n| Terms last updated | 2026-08-26 | no date given |\n| Privacy policy last updated | 2026-08-26 | 2024-02-21 |\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 | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 4k stars | 20k stars, 1.3M PyPI/wk |\n| Agent reviews | none | 4/5 (8) |\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 two high-severity approval bypasses were fixed in August and September 2026.\n\n**Pydantic AI.** Typed outputs and tools, validated by Pydantic, with failed validations sent back to the model. Python only.\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\n\n### Pydantic AI\n\n1. Define the output type first. Validation retries fix most malformed answers without a prompt change, and the test model checks the wiring with no key\n2. Use streamable HTTP for MCP, since SSE is deprecated. Call `.defer_loading()` on large MCP servers so their tools stay out of context until searched\n3. Set usage limits on every run that calls paid models\n4. Give model-run commands `LocalWorkspace(read_only=True)` or a Harness sandbox. A plain `LocalWorkspace` runs them on your machine as you\n5. Stay on a current release. 2026 advisories hit URL downloads, the cloud-metadata blocklist and the local web chat UI (`Agent.to_web()`, `clai web`)\n\n## Questions\n\n### Which is better for AI agents, Docker Agent or Pydantic AI?\n\nPydantic AI scores 83.7 (A) on agent readiness against Docker Agent's 76.5 (BB), and leads in 4 of 7 scored categories. Docker Agent leads on reliability and maintenance \u0026 community.\n\n### Are Docker Agent and Pydantic AI open source?\n\nYes. Docker Agent is open source (Apache-2.0). Pydantic AI is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.json, and with the fewest tokens: https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"docker-agent\", \"b\": \"pydantic-ai\"}`. From a terminal: `anchor compare docker-agent pydantic-ai`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/docker-agent.json and https://www.anchorterminal.com/api/v1/tools/pydantic-ai.json\n\n## Other comparisons with Docker Agent or Pydantic AI\n\n- [AgentOS vs Docker Agent](https://www.anchorterminal.com/compare/agentos-vs-docker-agent.md)\n- [AgentOS vs Pydantic AI](https://www.anchorterminal.com/compare/agentos-vs-pydantic-ai.md)\n- [Agno vs Docker Agent](https://www.anchorterminal.com/compare/agno-vs-docker-agent.md)\n- [Agno vs Pydantic AI](https://www.anchorterminal.com/compare/agno-vs-pydantic-ai.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 Pydantic AI](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-pydantic-ai.md)\n- [CrewAI vs Docker Agent](https://www.anchorterminal.com/compare/crewai-vs-docker-agent.md)\n- [CrewAI vs Pydantic AI](https://www.anchorterminal.com/compare/crewai-vs-pydantic-ai.md)\n- [Docker Agent vs Agent Development Kit (ADK)](https://www.anchorterminal.com/compare/docker-agent-vs-google-adk.md)\n- [Docker Agent vs LangGraph](https://www.anchorterminal.com/compare/docker-agent-vs-langgraph.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- [Agent Development Kit (ADK) vs Pydantic AI](https://www.anchorterminal.com/compare/google-adk-vs-pydantic-ai.md)\n- [LangGraph vs Pydantic AI](https://www.anchorterminal.com/compare/langgraph-vs-pydantic-ai.md)\n- [Microsoft Agent Framework vs Pydantic AI](https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-pydantic-ai.md)\n- [OpenAI Agents SDK vs Pydantic AI](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-pydantic-ai.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Docker Agent vs Pydantic AI",
        "url": ""
      }
    ],
    "description": "Pydantic AI scores 83.7 (A) on agent readiness against Docker Agent's 76.5 (BB), and leads in 4 of 7 scored categories. Docker Agent leads on reliability and maintenance \u0026 community. Both do agent frameworks. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Docker Agent BB 76.5",
      "Pydantic AI A 83.7",
      "scores"
    ],
    "h1": "Docker Agent vs Pydantic AI",
    "image": "https://www.anchorterminal.com/assets/og/compare-docker-agent-vs-pydantic-ai.png",
    "path": "/compare/docker-agent-vs-pydantic-ai",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Docker Agent vs Pydantic AI for AI agents, BB 76.5 vs A 83.7",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai"
  },
  "tokens": {
    "markdown": 2100,
    "slim": 580
  },
  "version": 1
}
