{
  "data": {
    "a": {
      "slug": "openai-agents-sdk",
      "name": "OpenAI Agents SDK",
      "vendor": "OpenAI",
      "vendorUrl": "https://openai.com",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Multi-agent framework built on agents, hand-offs and guardrails, with sessions, tracing and human approval.",
      "url": "https://www.anchorterminal.com/tools/openai-agents-sdk",
      "markdownUrl": "https://www.anchorterminal.com/tools/openai-agents-sdk.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/openai-agents-sdk.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openai-agents-sdk.json",
      "dns": "openai-agents-sdk.grade.anchorterminal.com",
      "repo": "https://github.com/openai/openai-agents-python",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "openai-agents"
        },
        {
          "registry": "npm",
          "name": "@openai/agents",
          "main": true
        }
      ],
      "auth": "api-key",
      "authNotes": "OpenAI key by default. Other providers through LiteLLM or any-llm.",
      "pricing": "free",
      "pricingNotes": "Free and open source. You pay for the model calls it makes.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 29709,
        "npmWeekly": 1291899,
        "pypiWeekly": 3018052,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://openai.github.io/openai-agents-python/",
      "llmsTxt": "https://openai.github.io/openai-agents-python/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.multi-agent",
        "agent.durable",
        "agent.mcp-client"
      ],
      "tags": [
        "official",
        "framework",
        "python",
        "typescript",
        "open-source",
        "telemetry-default-on"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 86.2,
        "grade": "AA",
        "agentReady": true,
        "rank": 3,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 97,
          "maintenance": 100,
          "payments": 60,
          "reliability": 85,
          "schema": 95,
          "security": 80,
          "transparency": 89
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-11-01"
        },
        "negative": 0,
        "verdict": "MCP in about 11 lines, with static and dynamic tool filters and require_approval. Tracing on by default, with model and tool content, sent to OpenAI.",
        "bestFor": "Teams that want hand-offs, guardrails and approvals with little code, and are happy with OpenAI's tracing or will turn it off.",
        "strengths": [
          "MCP in about 11 lines, with static and dynamic tool filters and require_approval",
          "Input and output guardrails, built-in human approval and sandbox agents",
          "Typed exceptions plus error_handlers, and RunState to resume a paused run",
          "9 open issues and 2 open pull requests on 2026-10-04",
          "A written 0.Y.Z versioning policy with breaking changes listed per minor"
        ],
        "weaknesses": [
          "Tracing on by default, with model and tool content, sent to OpenAI",
          "Tracing isn't available to zero-data-retention organisations",
          "Pre-1.0, and minor releases can carry breaking changes, as 0.20.0, 0.21.0 and 0.22.0 did",
          "0.20.0 changed the default model",
          "Before 0.24.0, RunConfig(tracing_disabled=True) didn't stop spans inside a caller's own trace"
        ],
        "agentNotes": [
          "Set OPENAI_AGENTS_DISABLE_TRACING=1 or OPENAI_AGENTS_TRACE_INCLUDE_SENSITIVE_DATA=0. On versions before 0.24.0, RunConfig(tracing_disabled=True) doesn't stop spans inside your own trace() block",
          "Pin to a minor version. Each 0.Y can break",
          "Set require_approval on MCP servers that write",
          "Name the model explicitly. The default changed in 0.20.0",
          "Use an error handler for max_turns instead of catching MaxTurnsExceeded"
        ],
        "metrics": {
          "kind": "library",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.9,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "AA",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 86.2
          }
        ],
        "editorialScores": {
          "ergonomics": 97,
          "maintenance": 100,
          "payments": 60,
          "reliability": 85,
          "schema": 95,
          "security": 80,
          "transparency": 84
        },
        "provenanceScore": 94,
        "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-10-08",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install openai-agents   # or: npm i @openai/agents"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/openai-agents-sdk"
      },
      "sameCompany": [
        "openai-api",
        "openai-embeddings",
        "openai-guardrails",
        "openai-moderation",
        "openai-image-api",
        "openai-sora",
        "openai-speech-to-text",
        "gpt-live",
        "openai-realtime",
        "openai-decisions-api",
        "openai-agents-api",
        "openai-codex",
        "gpt-oss-120b",
        "gpt-oss-20b"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "OpenAI OpCo, LLC",
        "domain": "openai.com",
        "domainRegistered": "2007-01-19",
        "endpointOnVendorDomain": null,
        "terms": "https://openai.com/policies/services-agreement/",
        "privacy": "https://openai.com/policies/privacy-policy/",
        "statusPage": "https://status.openai.com",
        "changelog": "https://openai.github.io/openai-agents-python/release/",
        "securityTxt": "valid",
        "checked": "2026-09-26",
        "score": 94
      },
      "requirements": {
        "setupChecked": true,
        "complianceChecked": true,
        "card": "unknown",
        "freeTier": true,
        "minutes": 5,
        "credential": "api-key",
        "hosting": [
          "self-hosted"
        ],
        "euResidency": "unknown",
        "trainsOnData": "no",
        "zeroRetention": "unknown",
        "dpa": true,
        "selfHost": "yes"
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openai-agents-sdk.json",
      "live": {
        "slug": "openai-agents-sdk",
        "vendorStatus": {
          "page": "https://status.openai.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:22:48.855056154Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "openai/openai-agents-python",
            "version": "v0.24.0",
            "released": "2026-10-15",
            "seenAt": "2026-11-06T23:51:34.990215333Z"
          },
          {
            "registry": "npm",
            "name": "@openai/agents",
            "version": "0.21.0",
            "seenAt": "2026-11-06T23:51:34.164066161Z"
          },
          {
            "registry": "pypi",
            "name": "openai-agents",
            "version": "0.24.0",
            "released": "2026-10-15",
            "seenAt": "2026-11-06T23:51:32.387226297Z"
          }
        ],
        "githubStars": 30534,
        "npmWeekly": 2490720,
        "pypiWeekly": 4906329,
        "securityTxt": {
          "url": "https://openai.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:00:49.231731777Z"
        },
        "llmsTxt": {
          "url": "https://openai.github.io/openai-agents-python/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:22.742814931Z"
        },
        "domain": {
          "domain": "openai.com",
          "registered": "2007-01-19",
          "source": "https://rdap.verisign.com/com/v1/domain/openai.com",
          "checkedAt": "2026-11-01T14:19:18.345389832Z"
        },
        "pages": [
          {
            "url": "https://openai.github.io/openai-agents-python/release/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-07T14:15:24.32755013Z",
            "changedAt": "2026-10-28T04:39:34.685607508Z",
            "fingerprint": "251fd383498a"
          },
          {
            "url": "https://openai.com/policies/privacy-policy/",
            "kind": "privacy",
            "status": 403,
            "checkedAt": "2026-10-16T22:27:51.367579814Z",
            "changedAt": "2026-10-11T19:31:08.710809907Z",
            "fingerprint": "604e9f69c16a"
          },
          {
            "url": "https://openai.com/policies/services-agreement/",
            "kind": "terms",
            "status": 403,
            "checkedAt": "2026-10-16T22:27:53.401505958Z",
            "changedAt": "2026-10-04T15:46:24.458479472Z",
            "fingerprint": "46a4b30744ca"
          }
        ],
        "github": {
          "repo": "openai/openai-agents-python",
          "checkedAt": "2026-11-02T09:12:58.455555785Z",
          "stars": 30451,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-01T04:56:10Z",
          "openIssues": 28,
          "openPRs": 8,
          "issuesOpened90d": 261,
          "issuesClosed90d": 256,
          "prsMerged90d": 593,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-30T20:29:39Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 13,
            "medianDays": 4.4
          }
        },
        "updatedAt": "2026-11-07T19:22:48.855056154Z"
      }
    },
    "answer": "OpenAI Agents SDK scores 86.2 (AA) on agent readiness against Strands Agents's 80 (A), and leads in 3 of 7 scored categories. Strands Agents leads on security \u0026 auth.",
    "b": {
      "slug": "strands-agents",
      "name": "Strands Agents",
      "vendor": "Amazon Web Services",
      "vendorUrl": "https://strandsagents.com",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Strands Agents is AWS's open-source agent SDK for Python and TypeScript. A model-driven loop runs tools, MCP servers, multi-agent patterns, sessions, interrupts for human approval and OpenTelemetry tracing, with Amazon Bedrock as the default model provider.",
      "url": "https://www.anchorterminal.com/tools/strands-agents",
      "markdownUrl": "https://www.anchorterminal.com/tools/strands-agents.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/strands-agents.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/strands-agents.json",
      "dns": "strands-agents.grade.anchorterminal.com",
      "repo": "https://github.com/strands-agents/harness-sdk",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "strands-agents"
        },
        {
          "registry": "npm",
          "name": "@strands-agents/sdk"
        },
        {
          "registry": "pypi",
          "name": "strands-agents-tools"
        }
      ],
      "auth": "none",
      "authNotes": "A library with no credentials of its own. The default Bedrock provider uses the caller's AWS credentials; other providers take their own API keys.",
      "pricing": "free",
      "pricingNotes": "Free and open source under Apache-2.0. You pay for model calls, on Bedrock by default or with any supported provider.",
      "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": 9066,
        "npmWeekly": 697548,
        "pypiWeekly": 8902370,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://strandsagents.com/docs",
      "llmsTxt": "https://strandsagents.com/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.mcp-client",
        "agent.multi-agent",
        "agent.durable"
      ],
      "tags": [
        "framework",
        "python",
        "typescript",
        "open-source",
        "llms-txt",
        "mcp",
        "otel",
        "a2a",
        "aws"
      ],
      "lastRelease": "2026-11-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 80,
        "grade": "A",
        "agentReady": true,
        "rank": 15,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 87,
          "maintenance": 87,
          "payments": 60,
          "reliability": 87,
          "schema": 95,
          "security": 89,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-10-23 and 2026-10-27. Three GitHub advisories for strands-agents. GHSA-4v6f-7vjh-6x4m (high) says the A2A server shared conversation history across callers with different context IDs, fixed in Python 1.43.0 and TypeScript 1.5.0. GHSA-3w55-933p-8pv5 (high) and GHSA-763v-5pjm-fx36 (moderate) say the default FileSessionManager stored sessions in a world-readable /tmp path that followed symlinks, fixed in 1.48.0. All published with fixes and credited, so 4 points. https://github.com/strands-agents/harness-sdk/security/advisories/GHSA-3w55-933p-8pv5"
        ],
        "verdict": "An Apache-2.0 agent SDK for Python and TypeScript with a managed MCP client, multi-agent patterns, interrupts and Cedar policies for approval, opt-in OpenTelemetry and no usage analytics. Bedrock is the default model, the default sandbox is the local host, and three session-isolation advisories were fixed in October 2026.",
        "bestFor": "Python or TypeScript teams, especially on AWS, who want a model-driven loop with MCP, multi-agent patterns and approval gates.",
        "strengths": [
          "No usage analytics found, with OpenTelemetry tracing opt-in",
          "Interrupts and interventions pause tool calls for human approval or a Cedar policy",
          "MCP servers passed straight to the agent, with lifecycle handled",
          "Python and TypeScript SDKs released weekly, 1.0 since July 2025, under a written versioning policy",
          "llms.txt with a Markdown twin of every docs page"
        ],
        "weaknesses": [
          "Three advisories in October 2026 on A2A session sharing and world-readable default session files, fixed in 1.43.0 and 1.48.0",
          "The default sandbox for shell and file tools is the local host",
          "Bedrock is the default provider, so a bare agent needs AWS credentials and model access",
          "Experimental modules and fast-moving standards (MCP, A2A, OTel conventions) sit outside the semantic versioning guarantee"
        ],
        "agentNotes": [
          "Upgrade to strands-agents 1.48.0 or later, and set a private session directory rather than the /tmp default",
          "Pass a model explicitly when AWS credentials aren't configured, since Bedrock is the default",
          "Use interrupts or the harness's `interventions` for tools that write, send or pay",
          "Run shell and file tools in the Docker or SSH sandbox when the agent runs untrusted code",
          "Pin a minor version when using A2A, MCP or experimental modules"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "A",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 80
          }
        ],
        "editorialScores": {
          "ergonomics": 87,
          "maintenance": 87,
          "payments": 60,
          "reliability": 87,
          "schema": 95,
          "security": 89,
          "transparency": 86
        },
        "provenanceScore": 58,
        "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 strands-agents strands-agents-tools   # TypeScript: npm i @strands-agents/sdk"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/strands-agents"
      },
      "sameCompany": [
        "strands-decider"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Amazon Web Services, Inc.",
        "domain": "strandsagents.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/strands-agents/harness-sdk/releases",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The licence file and NOTICE attribute the project to Amazon.com, Inc. or its affiliates; SECURITY.md sends reports to the AWS Vulnerability Disclosure Program on HackerOne.",
          "strandsagents.com/robots.txt allows all crawlers with Content-Signal ai-train=no, search=yes, ai-input=yes.",
          "strandsagents.com/.well-known/security.txt returns 404."
        ],
        "score": 58
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/strands-agents.json",
      "live": {
        "slug": "strands-agents",
        "versions": [
          {
            "registry": "github",
            "name": "strands-agents/harness-sdk",
            "version": "typescript/v1.24.0",
            "released": "2026-11-04",
            "seenAt": "2026-11-07T00:08:42.12303393Z"
          },
          {
            "registry": "npm",
            "name": "@strands-agents/sdk",
            "version": "1.24.0",
            "seenAt": "2026-11-07T00:08:40.21989722Z"
          },
          {
            "registry": "pypi",
            "name": "strands-agents",
            "version": "1.64.0",
            "released": "2026-11-04",
            "seenAt": "2026-11-07T00:08:40.035164104Z"
          },
          {
            "registry": "pypi",
            "name": "strands-agents-tools",
            "version": "0.9.0",
            "released": "2026-11-04",
            "seenAt": "2026-11-07T00:08:41.063215915Z"
          }
        ],
        "githubStars": 9066,
        "npmWeekly": 697548,
        "pypiWeekly": 8902370,
        "securityTxt": {
          "url": "https://strandsagents.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:32.408705195Z"
        },
        "llmsTxt": {
          "url": "https://strandsagents.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:34:02.911668247Z"
        },
        "updatedAt": "2026-11-07T16:00:32.408705195Z"
      }
    },
    "edges": [
      {
        "by": 17,
        "category": "transparency",
        "leads": "openai-agents-sdk",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "MIT (30). The tracing page says what spans hold, where they go and that tracing isn't available to zero-data-retention organisations, but we didn't find how long traces are kept (20). Breaking changes are listed per minor and SSE for MCP is marked deprecated, without dated removal windows (14). Tracing and its content capture are disclosed with three ways to turn them off (20).",
          "b": "Apache-2.0 (30). A library that stores session state where the developer configures it. The default FileSessionManager kept sessions world-readable in /tmp until 1.48.0, which the October advisories record and fix (20). A written deprecation policy with warnings and removal at majors, without a dated support window (16). Telemetry is opt-in and documented (20). 30+20+16+20 = 86."
        },
        "scores": {
          "a": 89,
          "b": 72
        }
      },
      {
        "by": 13,
        "category": "maintenance",
        "leads": "openai-agents-sdk",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "0.24.0 on PyPI on 2026-10-15, 17 days before 1 November (30). 11 PyPI releases in the 90 days to 1 November, from 0.19.3 on 4 August to 0.24.0 (20). 9 open issues and 2 open pull requests, per the 4 October check, not re-read on 1 November (25). Python 0.24.0 and @openai/agents 0.21.0 (tagged 20 October) both current (15). Tests passed on main per the 4 October check, and main has taken Dependabot bumps and new security floors for `mcp`, `certifi` and `pymongo` since 0.24.0 (10).",
          "b": "Python 1.64.0 and TypeScript 1.24.0 tagged on 4 November 2026 (30). Python 1.55.0 on 8 September, 1.61.0 on 14 October, 1.62.0 on 21 October and 1.63.0 on 30 October among many releases in 90 days (20). 664 open issues and 1,151 open issues and pull requests on 6 November, with 545 issues opened in the 90 days to 3 November. Of the 50 newest, 12 had a comment and 15 were closed, and 9 of the 40 newest open items carry a bug label. An issue-responder workflow runs on new issues (12). Both official SDKs are current (15). Dependency floors, security-audit workflows and CI passing on main (10). 30+20+12+15+10 = 87."
        },
        "scores": {
          "a": 100,
          "b": 87
        }
      },
      {
        "by": 10,
        "category": "ergonomics",
        "leads": "openai-agents-sdk",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "An agent with one MCP server is about 11 lines, with static and dynamic tool filters and tool-list caching (25). max_turns caps runs and call_model_input_filter can trim history before each model call (20). Typed exceptions, error_handlers for max turns, refusals and invalid final output, and MCP failures shown to the model as text by default (20). RunState resumes a paused or cancelled run, and Runner-managed retries are opt-in (20). An agent needs a name and instructions, but 0.20.0 changed the default model (7). Python and JavaScript (5).",
          "b": "Framework reading. An MCPClient is passed straight to the agent in a few lines and its lifecycle is managed, with tool filtering per client (22). Conversation managers, turn limits, token budgets and cancellation bound each run (20). Stop reasons and typed events, and hooks that can retry a model or tool call (16). Retry strategies, session managers that persist and resume a conversation, and interrupts that resume where they paused (17). Two official languages, but the default provider is Bedrock, which needs AWS credentials and model access (12). 22+20+16+17+12 = 87."
        },
        "scores": {
          "a": 97,
          "b": 87
        }
      },
      {
        "by": 9,
        "category": "security",
        "leads": "strands-agents",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Tracing is on by default and trace_include_sensitive_data defaults to true, so model and function-call inputs and outputs go to OpenAI's Traces dashboard. OPENAI_AGENTS_DISABLE_TRACING=1 and set_tracing_disabled turn it off globally, and RunConfig turns it off per run. Through 0.23.1 the per-run opt-out didn't apply inside the caller's own trace. The fix shipped in 0.24.0 on 15 October (10). Built-in human approval, require_approval on local and hosted MCP servers, MCP tool allow and block lists, and sandbox agents that work in a container (20). Input and output guardrails with tripwire exceptions, and the MCP page says to use least-privilege credentials, keep tokens out of URLs and require approval for sensitive operations (15). Built-in tracing with third-party processors such as Weights \u0026 Biases and Datadog (15). SECURITY.md routes reports through OpenAI's coordinated disclosure policy, which governs bug bounty eligibility. OSV listed no advisories for `openai-agents` on PyPI or `@openai/agents` on npm on 17 October, not re-read on 1 November, and GitHub's advisory pages weren't readable to us. On main, unreleased on 1 November, pyproject.toml raises the `mcp` floor to 1.30.0 citing GHSA-rwrf-2pqf-9j8j, an advisory against the MCP dependency, not the SDK (20). Framework reading, so SOC 2 isn't scored.",
          "b": "Framework reading (telemetry defaults, approvals, guardrails, sandboxing). No usage analytics found in either SDK, and OpenTelemetry is opt-in (25). Interrupts and the harness's interventions gate tool calls behind human approval or Cedar policies, but the default sandbox is the local host (16). Guardrails, PII redaction and trusted message history pages, with Bedrock Guardrails integration (13). OpenTelemetry traces for every model and tool call (15). The AWS Vulnerability Disclosure Program on HackerOne and three advisories in October 2026 published with fixed versions (20). 25+16+13+15+20 = 89."
        },
        "scores": {
          "a": 80,
          "b": 89
        }
      }
    ],
    "facts": [
      {
        "a": "Agent framework",
        "b": "Agent framework",
        "name": "Kind"
      },
      {
        "a": "OpenAI",
        "b": "Amazon Web Services",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "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-15",
        "b": "2026-11-04",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "30k stars, 1.3M npm/wk, 3M PyPI/wk",
        "b": "9.1k stars, 698k npm/wk, 8.9M PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3.9/5 (8)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "OpenAI Agents SDK scores 86.2 (AA) on agent readiness against Strands Agents's 80 (A), and leads in 3 of 7 scored categories. Strands Agents leads on security \u0026 auth.",
        "question": "Which is better for AI agents, OpenAI Agents SDK or Strands Agents?"
      },
      {
        "answer": "Yes. OpenAI Agents SDK is open source (MIT). Strands Agents is open source (Apache-2.0).",
        "question": "Are OpenAI Agents SDK and Strands Agents open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 97 against 87",
          "Maintenance \u0026 community, 100 against 87",
          "Transparency \u0026 trust, 89 against 72"
        ],
        "also": [
          "No incidents deducted, where Strands Agents loses 4 points for them"
        ],
        "goodFor": "Teams that want hand-offs, guardrails and approvals with little code, and are happy with OpenAI's tracing or will turn it off.",
        "slug": "openai-agents-sdk",
        "watchFor": "Tracing on by default, with model and tool content, sent to OpenAI"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 89 against 80"
        ],
        "also": [
          "No key needed to call it"
        ],
        "goodFor": "Python or TypeScript teams, especially on AWS, who want a model-driven loop with MCP, multi-agent patterns and approval gates.",
        "slug": "strands-agents",
        "watchFor": "Three advisories in October 2026 on A2A session sharing and world-readable default session files, fixed in 1.43.0 and 1.48.0"
      }
    ],
    "history": {
      "openai-agents-sdk": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.3,
          "from": 86.5,
          "fromGrade": "AA",
          "to": 86.2,
          "toGrade": "AA"
        }
      ],
      "strands-agents": null
    },
    "job": {
      "capability": "agent.framework",
      "name": "Agent frameworks"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentos-vs-openai-agents-sdk.json",
        "title": "AgentOS vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentos-vs-strands-agents.json",
        "title": "AgentOS vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agno-vs-openai-agents-sdk.json",
        "title": "Agno vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/agno-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agno-vs-strands-agents.json",
        "title": "Agno vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/agno-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boxlang-ai-vs-openai-agents-sdk.json",
        "title": "BoxLang AI vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/boxlang-ai-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boxlang-ai-vs-strands-agents.json",
        "title": "BoxLang AI vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/boxlang-ai-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-openai-agents-sdk.json",
        "title": "Claude Agent SDK vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-strands-agents.json",
        "title": "Claude Agent SDK vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-openai-agents-sdk.json",
        "title": "CrewAI vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-strands-agents.json",
        "title": "CrewAI vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-openai-agents-sdk.json",
        "title": "Cursor Agent SDK vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-strands-agents.json",
        "title": "Cursor Agent SDK vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-strands-agents"
      },
      {
        "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-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/google-adk-vs-openai-agents-sdk.json",
        "title": "Agent Development Kit (ADK) vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/google-adk-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-adk-vs-strands-agents.json",
        "title": "Agent Development Kit (ADK) vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/google-adk-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guilds-run-vs-openai-agents-sdk.json",
        "title": "guilds.run vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/guilds-run-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guilds-run-vs-strands-agents.json",
        "title": "guilds.run vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/guilds-run-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langgraph-vs-openai-agents-sdk.json",
        "title": "LangGraph vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/langgraph-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langgraph-vs-strands-agents.json",
        "title": "LangGraph vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/langgraph-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-openai-agents-sdk.json",
        "title": "LlamaIndex Framework vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-strands-agents.json",
        "title": "LlamaIndex Framework vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mastra-vs-openai-agents-sdk.json",
        "title": "Mastra vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/mastra-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mastra-vs-strands-agents.json",
        "title": "Mastra vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/mastra-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-openai-agents-sdk.json",
        "title": "Microsoft Agent Framework vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-strands-agents.json",
        "title": "Microsoft Agent Framework vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-strands-agents"
      },
      {
        "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"
      },
      {
        "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/openai-agents-sdk-vs-tradingagents.json",
        "title": "OpenAI Agents SDK vs TradingAgents",
        "url": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-tradingagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-vercel-ai-sdk.json",
        "title": "OpenAI Agents SDK vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pydantic-ai-vs-strands-agents.json",
        "title": "Pydantic AI vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/pydantic-ai-vs-strands-agents"
      },
      {
        "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/strands-agents-vs-tradingagents.json",
        "title": "Strands Agents vs TradingAgents",
        "url": "https://www.anchorterminal.com/compare/strands-agents-vs-tradingagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/strands-agents-vs-vercel-ai-sdk.json",
        "title": "Strands Agents vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/strands-agents-vs-vercel-ai-sdk"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 2,
        "edge": "strands-agents",
        "key": "reliability",
        "name": "Reliability",
        "openai-agents-sdk": 85,
        "strands-agents": 87,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "edge": "",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "openai-agents-sdk": 95,
        "strands-agents": 95,
        "weight": 13
      },
      {
        "by": 10,
        "edge": "openai-agents-sdk",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "openai-agents-sdk": 97,
        "strands-agents": 87,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "strands-agents",
        "key": "security",
        "name": "Security \u0026 auth",
        "openai-agents-sdk": 80,
        "strands-agents": 89,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "openai-agents-sdk": 60,
        "strands-agents": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "openai-agents-sdk",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "openai-agents-sdk": 100,
        "strands-agents": 87,
        "weight": 7
      },
      {
        "by": 17,
        "edge": "openai-agents-sdk",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "openai-agents-sdk": 89,
        "strands-agents": 72,
        "weight": 7
      }
    ],
    "summary": "OpenAI Agents SDK scores 86.2 (AA) on agent readiness against Strands Agents's 80 (A), and leads in 3 of 7 scored categories. Strands Agents leads on security \u0026 auth. Both do agent frameworks.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "openai-agents-sdk": "MCP in about 11 lines, with static and dynamic tool filters and require_approval. Tracing on by default, with model and tool content, sent to OpenAI.",
      "strands-agents": "An Apache-2.0 agent SDK for Python and TypeScript with a managed MCP client, multi-agent patterns, interrupts and Cedar policies for approval, opt-in OpenTelemetry and no usage analytics. Bedrock is the default model, the default sandbox is the local host, and three session-isolation advisories were fixed in October 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-strands-agents",
    "json": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-strands-agents.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-strands-agents.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-strands-agents.min.md"
  },
  "markdown": "OpenAI Agents SDK scores 86.2 (AA) on agent readiness against Strands Agents's 80 (A), and leads in 3 of 7 scored categories. Strands Agents leads on security \u0026 auth. Both do agent frameworks.\n\n- OpenAI Agents SDK: grade AA, 86.2/100, rank #3 of 1510. Markdown https://www.anchorterminal.com/tools/openai-agents-sdk.md · JSON https://www.anchorterminal.com/api/v1/tools/openai-agents-sdk.json\n- Strands Agents: grade A, 80/100, rank #15 of 1510. Markdown https://www.anchorterminal.com/tools/strands-agents.md · JSON https://www.anchorterminal.com/api/v1/tools/strands-agents.json\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### OpenAI Agents SDK (AA)\n\nGood for: Teams that want hand-offs, guardrails and approvals with little code, and are happy with OpenAI's tracing or will turn it off.\n\nAhead on:\n- Agent ergonomics, 97 against 87\n- Maintenance \u0026 community, 100 against 87\n- Transparency \u0026 trust, 89 against 72\n\nAlso in its favour:\n- No incidents deducted, where Strands Agents loses 4 points for them\n\nWatch for: Tracing on by default, with model and tool content, sent to OpenAI\n\n### Strands Agents (A)\n\nGood for: Python or TypeScript teams, especially on AWS, who want a model-driven loop with MCP, multi-agent patterns and approval gates.\n\nAhead on:\n- Security \u0026 auth, 89 against 80\n\nAlso in its favour:\n- No key needed to call it\n\nWatch for: Three advisories in October 2026 on A2A session sharing and world-readable default session files, fixed in 1.43.0 and 1.48.0\n\n\n## Why the edge\n\n### Transparency \u0026 trust: OpenAI Agents SDK +17\n\n- OpenAI Agents SDK (89): MIT (30). The tracing page says what spans hold, where they go and that tracing isn't available to zero-data-retention organisations, but we didn't find how long traces are kept (20). Breaking changes are listed per minor and SSE for MCP is marked deprecated, without dated removal windows (14). Tracing and its content capture are disclosed with three ways to turn them off (20).\n- Strands Agents (72): Apache-2.0 (30). A library that stores session state where the developer configures it. The default FileSessionManager kept sessions world-readable in /tmp until 1.48.0, which the October advisories record and fix (20). A written deprecation policy with warnings and removal at majors, without a dated support window (16). Telemetry is opt-in and documented (20). 30+20+16+20 = 86.\n\n### Maintenance \u0026 community: OpenAI Agents SDK +13\n\n- OpenAI Agents SDK (100): 0.24.0 on PyPI on 2026-10-15, 17 days before 1 November (30). 11 PyPI releases in the 90 days to 1 November, from 0.19.3 on 4 August to 0.24.0 (20). 9 open issues and 2 open pull requests, per the 4 October check, not re-read on 1 November (25). Python 0.24.0 and @openai/agents 0.21.0 (tagged 20 October) both current (15). Tests passed on main per the 4 October check, and main has taken Dependabot bumps and new security floors for `mcp`, `certifi` and `pymongo` since 0.24.0 (10).\n- Strands Agents (87): Python 1.64.0 and TypeScript 1.24.0 tagged on 4 November 2026 (30). Python 1.55.0 on 8 September, 1.61.0 on 14 October, 1.62.0 on 21 October and 1.63.0 on 30 October among many releases in 90 days (20). 664 open issues and 1,151 open issues and pull requests on 6 November, with 545 issues opened in the 90 days to 3 November. Of the 50 newest, 12 had a comment and 15 were closed, and 9 of the 40 newest open items carry a bug label. An issue-responder workflow runs on new issues (12). Both official SDKs are current (15). Dependency floors, security-audit workflows and CI passing on main (10). 30+20+12+15+10 = 87.\n\n### Agent ergonomics: OpenAI Agents SDK +10\n\n- OpenAI Agents SDK (97): An agent with one MCP server is about 11 lines, with static and dynamic tool filters and tool-list caching (25). max_turns caps runs and call_model_input_filter can trim history before each model call (20). Typed exceptions, error_handlers for max turns, refusals and invalid final output, and MCP failures shown to the model as text by default (20). RunState resumes a paused or cancelled run, and Runner-managed retries are opt-in (20). An agent needs a name and instructions, but 0.20.0 changed the default model (7). Python and JavaScript (5).\n- Strands Agents (87): Framework reading. An MCPClient is passed straight to the agent in a few lines and its lifecycle is managed, with tool filtering per client (22). Conversation managers, turn limits, token budgets and cancellation bound each run (20). Stop reasons and typed events, and hooks that can retry a model or tool call (16). Retry strategies, session managers that persist and resume a conversation, and interrupts that resume where they paused (17). Two official languages, but the default provider is Bedrock, which needs AWS credentials and model access (12). 22+20+16+17+12 = 87.\n\n### Security \u0026 auth: Strands Agents +9\n\n- OpenAI Agents SDK (80): Tracing is on by default and trace_include_sensitive_data defaults to true, so model and function-call inputs and outputs go to OpenAI's Traces dashboard. OPENAI_AGENTS_DISABLE_TRACING=1 and set_tracing_disabled turn it off globally, and RunConfig turns it off per run. Through 0.23.1 the per-run opt-out didn't apply inside the caller's own trace. The fix shipped in 0.24.0 on 15 October (10). Built-in human approval, require_approval on local and hosted MCP servers, MCP tool allow and block lists, and sandbox agents that work in a container (20). Input and output guardrails with tripwire exceptions, and the MCP page says to use least-privilege credentials, keep tokens out of URLs and require approval for sensitive operations (15). Built-in tracing with third-party processors such as Weights \u0026 Biases and Datadog (15). SECURITY.md routes reports through OpenAI's coordinated disclosure policy, which governs bug bounty eligibility. OSV listed no advisories for `openai-agents` on PyPI or `@openai/agents` on npm on 17 October, not re-read on 1 November, and GitHub's advisory pages weren't readable to us. On main, unreleased on 1 November, pyproject.toml raises the `mcp` floor to 1.30.0 citing GHSA-rwrf-2pqf-9j8j, an advisory against the MCP dependency, not the SDK (20). Framework reading, so SOC 2 isn't scored.\n- Strands Agents (89): Framework reading (telemetry defaults, approvals, guardrails, sandboxing). No usage analytics found in either SDK, and OpenTelemetry is opt-in (25). Interrupts and the harness's interventions gate tool calls behind human approval or Cedar policies, but the default sandbox is the local host (16). Guardrails, PII redaction and trusted message history pages, with Bedrock Guardrails integration (13). OpenTelemetry traces for every model and tool call (15). The AWS Vulnerability Disclosure Program on HackerOne and three advisories in October 2026 published with fixed versions (20). 25+16+13+15+20 = 89.\n\n## Score by category\n\n| Category | Weight | OpenAI Agents SDK | Strands Agents | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 85 | 87 | Strands Agents +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 95 | 95 | even |\n| Agent ergonomics | 13% (16.2 this run) | 97 | 87 | OpenAI Agents SDK +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 80 | 89 | Strands Agents +9 |\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) | 100 | 87 | OpenAI Agents SDK +13 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 89 | 72 | OpenAI Agents SDK +17 |\n| Negative events | ≤15 | 0 | -4 | |\n| **Total** | | **86.2 · AA** | **80 · A** | |\n\n## Facts side by side\n\n| Fact | OpenAI Agents SDK | Strands Agents |\n| --- | --- | --- |\n| Kind | Agent framework | Agent framework |\n| Vendor | OpenAI | Amazon Web Services |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | API key | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-15 | 2026-11-04 |\n| Terms last updated | couldn't be read | no document linked |\n| Privacy policy last updated | couldn't be read | no document linked |\n| Customer content may train models | couldn't be read | not read yet |\n| Terms restrict automated access | couldn't be read | not read yet |\n| Terms restrict benchmarking | couldn't be read | not read yet |\n| Terms or service can change without notice | couldn't be read | not read yet |\n| Arbitration or class-action waiver | couldn't be read | not read yet |\n| Popularity | 30k stars, 1.3M npm/wk, 3M PyPI/wk | 9.1k stars, 698k npm/wk, 8.9M PyPI/wk |\n| Agent reviews | 3.9/5 (8) | none |\n\n## How the scores have moved\n\n### OpenAI Agents SDK\n\n- -0.3 on 8 October 2026: checklist\n\n### Strands Agents\n\nNo score change since it was listed.\n\n## Verdicts\n\n**OpenAI Agents SDK.** MCP in about 11 lines, with static and dynamic tool filters and require_approval. Tracing on by default, with model and tool content, sent to OpenAI.\n\n**Strands Agents.** An Apache-2.0 agent SDK for Python and TypeScript with a managed MCP client, multi-agent patterns, interrupts and Cedar policies for approval, opt-in OpenTelemetry and no usage analytics. Bedrock is the default model, the default sandbox is the local host, and three session-isolation advisories were fixed in October 2026.\n\n## Before you call either\n\n### OpenAI Agents SDK\n\n1. Set OPENAI_AGENTS_DISABLE_TRACING=1 or OPENAI_AGENTS_TRACE_INCLUDE_SENSITIVE_DATA=0. On versions before 0.24.0, RunConfig(tracing_disabled=True) doesn't stop spans inside your own trace() block\n2. Pin to a minor version. Each 0.Y can break\n3. Set require_approval on MCP servers that write\n4. Name the model explicitly. The default changed in 0.20.0\n5. Use an error handler for max_turns instead of catching MaxTurnsExceeded\n\n### Strands Agents\n\n1. Upgrade to strands-agents 1.48.0 or later, and set a private session directory rather than the /tmp default\n2. Pass a model explicitly when AWS credentials aren't configured, since Bedrock is the default\n3. Use interrupts or the harness's `interventions` for tools that write, send or pay\n4. Run shell and file tools in the Docker or SSH sandbox when the agent runs untrusted code\n5. Pin a minor version when using A2A, MCP or experimental modules\n\n## Questions\n\n### Which is better for AI agents, OpenAI Agents SDK or Strands Agents?\n\nOpenAI Agents SDK scores 86.2 (AA) on agent readiness against Strands Agents's 80 (A), and leads in 3 of 7 scored categories. Strands Agents leads on security \u0026 auth.\n\n### Are OpenAI Agents SDK and Strands Agents open source?\n\nYes. OpenAI Agents SDK is open source (MIT). Strands Agents is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/openai-agents-sdk-vs-strands-agents.json, and with the fewest tokens: https://www.anchorterminal.com/compare/openai-agents-sdk-vs-strands-agents.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"openai-agents-sdk\", \"b\": \"strands-agents\"}`. From a terminal: `anchor compare openai-agents-sdk strands-agents`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/openai-agents-sdk.json and https://www.anchorterminal.com/api/v1/tools/strands-agents.json\n\n## Other comparisons with OpenAI Agents SDK or Strands Agents\n\n- [AgentOS vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/agentos-vs-openai-agents-sdk.md)\n- [AgentOS vs Strands Agents](https://www.anchorterminal.com/compare/agentos-vs-strands-agents.md)\n- [Agno vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/agno-vs-openai-agents-sdk.md)\n- [Agno vs Strands Agents](https://www.anchorterminal.com/compare/agno-vs-strands-agents.md)\n- [BoxLang AI vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/boxlang-ai-vs-openai-agents-sdk.md)\n- [BoxLang AI vs Strands Agents](https://www.anchorterminal.com/compare/boxlang-ai-vs-strands-agents.md)\n- [Claude Agent SDK vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-openai-agents-sdk.md)\n- [Claude Agent SDK vs Strands Agents](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-strands-agents.md)\n- [CrewAI vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/crewai-vs-openai-agents-sdk.md)\n- [CrewAI vs Strands Agents](https://www.anchorterminal.com/compare/crewai-vs-strands-agents.md)\n- [Cursor Agent SDK vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-openai-agents-sdk.md)\n- [Cursor Agent SDK vs Strands Agents](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-strands-agents.md)\n- [Docker Agent vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/docker-agent-vs-openai-agents-sdk.md)\n- [Docker Agent vs Strands Agents](https://www.anchorterminal.com/compare/docker-agent-vs-strands-agents.md)\n- [Agent Development Kit (ADK) vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/google-adk-vs-openai-agents-sdk.md)\n- [Agent Development Kit (ADK) vs Strands Agents](https://www.anchorterminal.com/compare/google-adk-vs-strands-agents.md)\n- [guilds.run vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/guilds-run-vs-openai-agents-sdk.md)\n- [guilds.run vs Strands Agents](https://www.anchorterminal.com/compare/guilds-run-vs-strands-agents.md)\n- [LangGraph vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/langgraph-vs-openai-agents-sdk.md)\n- [LangGraph vs Strands Agents](https://www.anchorterminal.com/compare/langgraph-vs-strands-agents.md)\n- [LlamaIndex Framework vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/llamaindex-vs-openai-agents-sdk.md)\n- [LlamaIndex Framework vs Strands Agents](https://www.anchorterminal.com/compare/llamaindex-vs-strands-agents.md)\n- [Mastra vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/mastra-vs-openai-agents-sdk.md)\n- [Mastra vs Strands Agents](https://www.anchorterminal.com/compare/mastra-vs-strands-agents.md)\n- [Microsoft Agent Framework vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-openai-agents-sdk.md)\n- [Microsoft Agent Framework vs Strands Agents](https://www.anchorterminal.com/compare/microsoft-agent-framework-vs-strands-agents.md)\n- [OpenAI Agents SDK vs Pydantic AI](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-pydantic-ai.md)\n- [OpenAI Agents SDK vs smolagents](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-smolagents.md)\n- [OpenAI Agents SDK vs TradingAgents](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-tradingagents.md)\n- [OpenAI Agents SDK vs AI SDK](https://www.anchorterminal.com/compare/openai-agents-sdk-vs-vercel-ai-sdk.md)\n- [Pydantic AI vs Strands Agents](https://www.anchorterminal.com/compare/pydantic-ai-vs-strands-agents.md)\n- [smolagents vs Strands Agents](https://www.anchorterminal.com/compare/smolagents-vs-strands-agents.md)\n- [Strands Agents vs TradingAgents](https://www.anchorterminal.com/compare/strands-agents-vs-tradingagents.md)\n- [Strands Agents vs AI SDK](https://www.anchorterminal.com/compare/strands-agents-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": "OpenAI Agents SDK vs Strands Agents",
        "url": ""
      }
    ],
    "description": "OpenAI Agents SDK scores 86.2 (AA) to Strands Agents's 80 (A) for agent frameworks. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "OpenAI Agents SDK AA 86.2",
      "Strands Agents A 80",
      "scores"
    ],
    "h1": "OpenAI Agents SDK vs Strands Agents",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/openai-agents-sdk-vs-strands-agents",
    "published": "2026-10-01",
    "section": "tools",
    "title": "OpenAI Agents SDK vs Strands Agents for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/openai-agents-sdk-vs-strands-agents"
  },
  "tokens": {
    "markdown": 4000,
    "slim": 1980
  },
  "version": 1
}
