OpenAI Agents SDK (Python) vs Strands Agents SDK
In short
OpenAI Agents SDK (Python) vs Strands Agents SDK: both are coding tools on Scriptiii AI Tools. OpenAI Agents SDK (Python) pricing: Free. Free to use. (reported by the maker) Strands Agents SDK pricing: Free. Free to use. (reported by the maker) Both have 0 upvotes.
- OpenAI Agents SDK (Python)
- Free. Free to use. (reported by the maker)
- Strands Agents SDK
- Free. Free to use. (reported by the maker)
- Upvotes
- 0 vs 0
| Field | OpenAI Agents SDK (Python) | Strands Agents SDK |
|---|---|---|
| Page | OpenAI Agents SDK (Python) | Strands Agents SDK |
| Pricing (maker-reported) | Free. Free to use. | Free. Free to use. |
| Upvotes | 0 | 0 |
| Best for | ai-agents, framework, agent-sdk | ai-agents, framework, agent-sdk |
| Tagline | Lightweight OpenAI framework for multi-agent workflows with handoffs, guardrails and tracing. | Open-source SDK from AWS for model-driven AI agents in Python and TypeScript. |
| Website | Visit OpenAI Agents SDK (Python) | Visit Strands Agents SDK |
Pricing and pricing details come from the maker's submission. They are not independently verified.
OpenAI Agents SDK (Python)
OpenAI Agents SDK 
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows. It is provider-agnostic, supporting the OpenAI Responses and Chat Completions APIs, as well as 100+ other LLMs.
[!NOTE]
Looking for the JavaScript/TypeScript version? Check out Agents SDK JS/TS.
Core concepts:
- Agents: LLMs configured with instructions, tools, guardrails, and handoffs
- Sandbox agents: Agents preconfigured to work with a container to perform work over long time horizons.
- Realtime agents: Build powerful voice agents with
gpt-realtime-2.1and full agent features - Voice agents: Build voice pipelines that combine speech-to-text, an agent workflow, and text-to-speech
- Agents as tools / Handoffs: Delegating to other agents for specific tasks
- Tools: Various Tools let agents take actions (functions, MCP, hosted tools)
- Guardrails: Configurable safety checks for input and output validation
- Human in the loop: Built-in mechanisms for involving humans across agent runs
- Sessions: Automatic conversation history management across agent runs
- Tracing: Built-in tracking of agent runs, allowing you to view, debug and optimize your workflows
Explore the examples directory to see the SDK in action, and read our documentation for more details.
Get started
To get started, set up your Python environment (Python 3.10 or newer required), and then install OpenAI Agents SDK package.
venv
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install openai-agents
For voice support, install with the optional voice group: pip install 'openai-agents[voice]'. For Redis session support, install with the optional redis group: pip install 'openai-agents[redis]'.
uv
If you're familiar with uv, installing the package would be even easier:
uv init
uv add openai-agents
For voice support, install with the optional voice group: uv add 'openai-agents[voice]'. For Redis session support, install with the optional redis group: uv add 'openai-agents[redis]'.
Run your first agents
The SDK supports four primary ways to run agents. Set the OPENAI_API_KEY environment variable before running any of these examples.
Run a text agent
Use a text Agent for workflows that do not need a persistent realtime connection or a sandbox workspace.
from agents import Agent, Runner
agent = Agent(name="Assistant", instructions="You are a helpful assistant")
result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
print(result.final_output)
## Code within the code,
## Functions calling themselves,
## Infinite loop's dance.
(For Jupyter notebook users, see hello_world_jupyter.ipynb)
Run a sandbox agent
Use a SandboxAgent when the agent needs to inspect files, run commands, apply patches, or preserve workspace state across longer tasks.
This example uses UnixLocalSandboxClient, which is supported on macOS and Linux. On Windows, use DockerSandboxClient with the openai-agents[docker] extra or a hosted sandbox client instead; see Sandbox clients for setup details.
from agents import Runner
from agents.run import RunConfig
from agents.sandbox import Manifest, SandboxAgent, SandboxRunConfig
from agents.sandbox.entries import GitRepo
from agents.sandbox.sandboxes import UnixLocalSandboxClient
agent = SandboxAgent(
name="Workspace Assistant",
instructions="Inspect the sandbox workspace before answering.",
default_manifest=Manifest(
entries={"repo": GitRepo(repo="openai/openai-agents-python", ref="main")}
),
)
result = Runner.run_sync(
agent,
"Inspect the repo README and summarize what this project does.",
run_config=RunConfig(sandbox=SandboxRunConfig(client=UnixLocalSandboxClient())),
)
print(result.final_output)
Run a realtime agent
Use a RealtimeAgent for low-latency, server-side voice and multimodal experiences over WebSocket.
import asyncio
from agents.realtime import RealtimeAgent, RealtimeRunner
async def main() -> None:
agent = RealtimeAgent(
name="Assistant", instructions="You are a helpful voice assistant. Keep responses short."
)
runner = RealtimeRunner(starting_agent=agent)
session = await runner.run()
async with session:
await session.send_message("Say hello in one short sentence.")
async for event in session:
if event.type == "audio":
# Forward or play event.audio.data.
pass
elif event.type == "history_added":
print(event.item)
elif event.type == "agent_end":
break
if __name__ == "__main__":
asyncio.run(main())
Run a voice agent
Use a VoicePipeline to turn audio into text, run an agent workflow, and stream generated speech.
import asyncio
import numpy as np
from agents import Agent
from agents.voice import AudioInput, SingleAgentVoiceWorkflow, VoicePipeline
async def main() -> None:
agent = Agent(name="Assistant", instructions="You are a helpful voice assistant.")
pipeline = VoicePipeline(workflow=SingleAgentVoiceWorkflow(agent))
audio_input = AudioInput(buffer=np.zeros(24000 * 3, dtype=np.int16))
result = await pipeline.run(audio_input)
async for event in result.stream():
if event.type == "voice_stream_event_audio":
# Forward or play event.data.
pass
if __name__ == "__main__":
asyncio.run(main())
Explore the examples directory to see the SDK in action, and read our documentation for more details.
Contributing
Please share bug reports and feature requests through GitHub issues.
Pull requests are limited to repository collaborators; we do not accept pull requests from non-collaborators.
See CONTRIBUTING.md for the contribution policy and development guide.
For security vulnerabilities, follow SECURITY.md.
Acknowledgements
We'd like to acknowledge the excellent work of the open-source community, especially:
This library has these optional dependencies:
We also rely on the following tools to manage the project:
We're committed to continuing to build the Agents SDK as an open source framework so others in the community can expand on our approach.
Strands Agents SDK
Strands Agents
A model-driven approach to building AI agents in just a few lines of code.
Documentation
◆ Samples
◆ CLI
◆ MCP Server
◆ Discord
Harness (Python, TypeScript)
◆ SDK (Python, TypeScript)
◆ Box
◆ Shell
◆ Evals
◆ Labs
Strands Agents is an open-source SDK for building and running AI agents in Python and TypeScript. Choose Strands when you would otherwise write your own agent loop: it runs in your process with no hosted control plane, and it covers the jobs a hand-rolled loop grows into. In one SDK you get lifecycle controls (turn limits, token budgets, cancellation, stop reasons), tools and structured output, MCP, multi-agent patterns, memory and sessions, model portability, streaming, guardrails, tracing, and evals.
Using a coding agent? Install the Strands plugin for Claude Code, Codex, or Cursor.
It adds framework selection, scaffolding, tool authoring, MCP server connections, web
framework guides, and LangGraph migration guidance. See
Use Strands with AI coding agents
for install and verification steps.
This monorepo contains Strands harness, the Python and TypeScript SDKs, the documentation site, and supporting packages:
| Directory | Description |
|---|---|
harness-py/ | Python Strands harness: fully assembled agent via create_harness() (PyPI · docs) |
harness-ts/ | TypeScript Strands harness: fully assembled agent via createHarness() (npm · docs) |
strands-cli/ | strands CLI: prototype and chat with a harness agent from the terminal (npm) |
strands-py/ | Python SDK: agent loop, model providers, tools (PyPI · releases) |
strands-ts/ | TypeScript SDK: agent loop, model providers, tools (npm · releases) |
strands-mcp/ | MCP server that gives coding agents knowledge about building with Strands Agents (PyPI) |
site/ | Source for the strandsagents.com documentation site (Astro/Starlight) |
team/ | Governance and cross-SDK process docs (tenets, decisions, PR & compatibility guidelines, and designs/ proposals) |
test-infra/ | CDK stack provisioning the AWS resources a subset of integration tests run against (knowledge bases, SSH sandboxes) |
Why Strands
Build an agent harness. Control it end-to-end.
- Build your way. Any model, any cloud. Context management, execution limits, and observability built in before you write a line of config. Swap backends when you scale; your code stays the same.
- Model agnostic. First-class support for Amazon Bedrock, Anthropic, OpenAI, and Gemini, plus many more providers and custom ones.
- Stay in control. The agent loop traces every decision by default. Hooks let you intercept any step to log it, validate it, or redirect it.
- Deliver outcomes that work. Guardrails catch mistakes before they run. Steering handlers let agents correct themselves instead of failing silently.
MCP, streaming, multi-agent patterns, and structured output are all built in.
Quick Start
The easiest way to get started is with Strands harness, a fully assembled, state-of-the-art agent. A single create_harness() (Python) or createHarness() (TypeScript) call gives you an optimized agent with benchmarked defaults for the model, tools, memory, sessions, and context management — ready to take from idea to production. Follow the harness quickstart, or see the Python Strands harness and TypeScript Strands harness packages to get started.
Python
pip install strands-harness
from strands_harness import create_harness
agent = create_harness()
agent("Find the slowest test in this repo and explain why it's slow")
TypeScript
npm install @strands-agents/harness
import { createHarness } from '@strands-agents/harness'
const agent = await createHarness()
await agent.invoke("Find the slowest test in this repo and explain why it's slow")
Start here to get a batteries-included agent, then drop down to the SDKs below when you want to own the agent loop and wire up tools, model providers, and memory yourself. The harness configuration reference documents every default you can override.
The Quickstart Guide covers configuring providers (Amazon Bedrock, Anthropic, OpenAI, Gemini, Ollama, and more).
Working with the SDK
The Strands Harness SDK lets you go deeper and control every part of the agent: the loop, tools, model providers, memory, sessions, and hooks. You can dive into the SDK after working with Strands harness or if you prefer building your own harness from the ground up when the assembled defaults aren't enough.
Python
Requires Python 3.10+:
pip install strands-agents
from strands import Agent
from strands.vended_tools import http_request
agent = Agent(tools=[http_request])
agent("Tell me about the Strands harness features: https://strandsagents.com/docs/user-guide/harness/index.md")
The Python SDK README covers tools, model providers, MCP, and bidirectional streaming.
TypeScript
To build a Strands agent in TypeScript, install the SDK in a Node.js 22+ ESM project ("type": "module"):
npm install @strands-agents/sdk
import { Agent } from '@strands-agents/sdk'
import { httpRequest } from '@strands-agents/sdk/vended-tools/http-request'
const agent = new Agent({ tools: [httpRequest] })
await agent.invoke('Tell me about the Strands harness features: https://strandsagents.com/docs/user-guide/harness/index.md')
The agent uses Amazon Bedrock by default, so configure AWS credentials or pass another model.
Start with the TypeScript quickstart
to configure a model provider, run your first agent, and add tools. Use the
TypeScript API reference for the full
SDK surface, or explore more examples in the TypeScript SDK README.
Documentation
For detailed guidance & examples, explore our documentation:
- User Guide
- Strands Harness Guide (quickstart · configuration reference)
- Quick Start Guide
- Agent Loop
- Bidirectional Streaming (Python)
- Examples
- API Reference: Python · TypeScript
- Production & Deployment Guide
The docs themselves live in this monorepo under site/, and doc PRs are welcome alongside code changes.
Development
Git operations (commits, branches, PRs) are done from the repo root. Each package has its own toolchain:
Python SDK (strands-py/):
cd strands-py
pip install hatch
hatch test # run unit tests
hatch fmt # format & lint
TypeScript SDK (strands-ts/):
npm ci # install from repo root
npm run build # build
npm test # run unit tests
Documentation site (site/):
cd site
npm install
npm run dev # local dev server at http://localhost:4321/
Contributing ❤️
We welcome contributions! See our Contributing Guide for details on:
- Reporting bugs & features
- Development setup
- Contributing via Pull Requests
- Code of Conduct
- Reporting of security issues
Stay in touch with the team
Come meet the Strands team and other users on Discord
License
This project is licensed under the Apache License 2.0 - see the LICENSE.APACHE file for details.
Security
See CONTRIBUTING for more information.
Questions
- Do OpenAI Agents SDK (Python) and Strands Agents SDK list the same price?
- Both listings report Free. Free to use. Pricing is reported by the maker and is not independently verified.
- Which has more upvotes, OpenAI Agents SDK (Python) or Strands Agents SDK?
- Both have 0 upvotes.
- What does each maker say OpenAI Agents SDK (Python) and Strands Agents SDK are for?
- OpenAI Agents SDK (Python): Lightweight OpenAI framework for multi-agent workflows with handoffs, guardrails and tracing. Strands Agents SDK: Open-source SDK from AWS for model-driven AI agents in Python and TypeScript.
OpenAI Agents SDK (Python) alternatives·Strands Agents SDK alternatives·All coding tools