freshcrate
Skin:/
Home > Frameworks > openai-agents

openai-agents

OpenAI Agents SDK

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

# OpenAI Agents SDK [![PyPI](https://img.shields.io/pypi/v/openai-agents?label=pypi%20package)](https://pypi.org/project/openai-agents/) 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. <img src="https://cdn.openai.com/API/docs/images/orchestration.png" alt="Image of the Agents Tracing UI" style="max-height: 803px;"> > [!NOTE] > Looking for the JavaScript/TypeScript version? Check out [Agents SDK JS/TS](https://github.com/openai/openai-agents-js). ### Core concepts: 1. [**Agents**](https://openai.github.io/openai-agents-python/agents): LLMs configured with instructions, tools, guardrails, and handoffs 1. [**Sandbox Agents**](https://openai.github.io/openai-agents-python/sandbox_agents): Agents preconfigured to work with a container to perform work over long time horizons. 1. **[Agents as tools](https://openai.github.io/openai-agents-python/tools/#agents-as-tools) / [Handoffs](https://openai.github.io/openai-agents-python/handoffs/)**: Delegating to other agents for specific tasks 1. [**Tools**](https://openai.github.io/openai-agents-python/tools/): Various Tools let agents take actions (functions, MCP, hosted tools) 1. [**Guardrails**](https://openai.github.io/openai-agents-python/guardrails/): Configurable safety checks for input and output validation 1. [**Human in the loop**](https://openai.github.io/openai-agents-python/human_in_the_loop/): Built-in mechanisms for involving humans across agent runs 1. [**Sessions**](https://openai.github.io/openai-agents-python/sessions/): Automatic conversation history management across agent runs 1. [**Tracing**](https://openai.github.io/openai-agents-python/tracing/): Built-in tracking of agent runs, allowing you to view, debug and optimize your workflows 1. [**Realtime Agents**](https://openai.github.io/openai-agents-python/realtime/quickstart/): Build powerful voice agents with `gpt-realtime-1.5` and full agent features Explore the [examples](https://github.com/openai/openai-agents-python/tree/main/examples) directory to see the SDK in action, and read our [documentation](https://openai.github.io/openai-agents-python/) 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 ```bash 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](https://docs.astral.sh/uv/), installing the package would be even easier: ```bash 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 Sandbox Agent [Sandbox Agents](https://openai.github.io/openai-agents-python/sandbox_agents) are new in version 0.14.0. A sandbox agent is an agent that uses a computer environment to perform real work with a filesystem, in an environment you configure and control. Sandbox agents are useful when the agent needs to inspect files, run commands, apply patches, or carry workspace state across longer tasks. ```python 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 this agent on the local filesystem run_config=RunConfig(sandbox=SandboxRunConfig(client=UnixLocalSandboxClient())), ) print(result.final_output) # This project provides a Python SDK for building multi-agent workflows. ``` (_If running this, ensure you set the `OPENAI_API_KEY` environment variable_) (_For Jupyter notebook users, see [hello_world_jupyter.ipynb](https://github.com/openai/openai-agents-python/blob/main/examples/basic/hello_world_jupyter.ipynb)_) Explore the [examples](https://github.com/openai/openai-agents-python/tree/main/examples) directory to see the SDK in action, and read our [documentation](https://openai.github.io/openai-agents-python/) for more details. ## Acknowledgements We'd like to acknowledge the excellent work of the open-source community, especially: - [Pydantic](https://docs.pydantic.

Release History

VersionChangesUrgencyDate
v0.17.4## What's Changed * feat: support Realtime custom voice objects by @lionel-oai in https://github.com/openai/openai-agents-python/pull/3473 * fix: #3459 add opt-in recovery for missing function tools by @seratch in https://github.com/openai/openai-agents-python/pull/3461 * fix: apply hardened http client default to MCP SSE transport by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3466 * fix: use non-None value for output in FunctionSpanData by @rmotgi1227 in https://gitHigh5/26/2026
v0.17.3a## What's Changed * fix: keep mountpoint credentials out of sandbox commands by @seratch in https://github.com/openai/openai-agents-python/pull/3429 * fix: unify memory optional dependency import errors by @seratch in https://github.com/openai/openai-agents-python/pull/3389 * fix: guard None text in text_message_output and add output guardrail count to RunErrorDetails by @zhoufengen in https://github.com/openai/openai-agents-python/pull/3375 * fix: avoid mutating FunctionTool params_json_High5/19/2026
v0.17.2## What's Changed * fix: #3268 fix OpenAI Conversations reasoning persistence by @seratch in https://github.com/openai/openai-agents-python/pull/3352 * fix: avoid auto response for unknown realtime tools (ref: #3287) by @seratch in https://github.com/openai/openai-agents-python/pull/3366 * fix: #3354 interrupt tracing retry backoff on shutdown by @Aphroq in https://github.com/openai/openai-agents-python/pull/3355 * fix: #3359 preserve local approval rejection reasons by @Aphroq in https://High5/12/2026
v0.16.1## What's Changed * fix: #3109 stabilize chat completions stream output indexes by @seratch in https://github.com/openai/openai-agents-python/pull/3176 * fix: #3168 validate MCP require_approval policies by @seratch in https://github.com/openai/openai-agents-python/pull/3179 * fix: #3116 restore session history after compaction replacement failures by @Aphroq in https://github.com/openai/openai-agents-python/pull/3117 * fix: #3171 reject corrupt Dapr session state updates by @Aphroq in httHigh5/7/2026
v0.15.1## What's Changed * feat: expose Responses WebSocket keepalive options by @seratch in https://github.com/openai/openai-agents-python/pull/3080 * fix: restore UnixLocal PTY terminal signal defaults by @seratch in https://github.com/openai/openai-agents-python/pull/3082 * fix: #3074 restore SIGINT defaults for UnixLocal PTY children by @Aphroq in https://github.com/openai/openai-agents-python/pull/3075 ### Documentation & Other Changes * docs: add 0.15 changelog by @seratch in https://gHigh5/2/2026
v0.14.8## What's Changed * fix: #3046 preserve MCP re-export import errors by @seratch in https://github.com/openai/openai-agents-python/pull/3048 * fix: #3043 delimit sandbox prompt instruction sections by @seratch in https://github.com/openai/openai-agents-python/pull/3047 ### Documentation & Other Changes * docs: fix typo in comment for WS event handler by @ateamofantsintheirprime in https://github.com/openai/openai-agents-python/pull/3050 * Release 0.14.8 by @github-actions[bot] in httpsHigh4/29/2026
v0.14.5## What's Changed * feat: #3001 add Modal sandbox idle timeout option by @seratch in https://github.com/openai/openai-agents-python/pull/3005 * fix: #3004 serve HITL resume tool outputs by @seratch in https://github.com/openai/openai-agents-python/pull/3006 * fix: backfill streamed terminal output by @ankitphogat in https://github.com/openai/openai-agents-python/pull/3000 ### Documentation & Other Changes * docs: clarify lazy skill source host paths by @alfozan in https://github.com/oHigh4/23/2026
0.14.4Imported from PyPI (0.14.4)Low4/21/2026
v0.14.4## What's Changed * docs: remove duplicate word in voice interruptions section by @abhicris in https://github.com/openai/openai-agents-python/pull/2981 * docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2982 * test: add sandbox compatibility guards by @seratch in https://github.com/openai/openai-agents-python/pull/2984 * fix: ignore relative snapshot base overrides by @matthewflint in https://github.com/openai/openai-agentsHigh4/21/2026
v0.14.3## What's Changed * fix: #2962 normalize sandbox paths and add Windows CI by @seratch in https://github.com/openai/openai-agents-python/pull/2963 * fix: #2938 make sandboxes importable on Windows by @seratch in https://github.com/openai/openai-agents-python/pull/2948 * fix: prepare Daytona workspace root before start by @seratch in https://github.com/openai/openai-agents-python/pull/2956 * fix: windows errors with #2956 by @seratch in https://github.com/openai/openai-agents-python/pull/297High4/20/2026
v0.14.2## What's Changed * feat: support sandbox extra path grants by @qiyaoq-oai in https://github.com/openai/openai-agents-python/pull/2920 * feat: #2228 persist tool origin metadata in run items by @seratch in https://github.com/openai/openai-agents-python/pull/2654 * feat(extensions): add MongoDB session backend by @alexbevi in https://github.com/openai/openai-agents-python/pull/2902 * fix: loosen sandbox compaction model parsing by @sdcoffey in https://github.com/openai/openai-agents-python/High4/18/2026
v0.14.1## What's Changed * fix: sanitize OpenAI tracing export payloads by @alfozan in https://github.com/openai/openai-agents-python/pull/2896 * fix: #2873 preserve computer driver compatibility for modifier keys by @seratch in https://github.com/openai/openai-agents-python/pull/2877 * fix #2151 shield server-managed handoffs from unsupported history rewrites by @seratch in https://github.com/openai/openai-agents-python/pull/2747 * fix: stop streamed tool execution after known input guardrail trHigh4/15/2026
v0.14.0## What's Changed ### Sandbox Agents This release adds **Sandbox Agents**, a beta SDK surface for running agents with a persistent, isolated workspace. Sandbox agents keep the normal `Agent` and `Runner` flow, but add workspace manifests, sandbox-native capabilities, sandbox clients, snapshots, and resume support so agents can work over real files, run commands, edit repositories, generate artifacts, and continue work across runs. Key pieces: - `SandboxAgent`: an `Agent` with sandboxHigh4/15/2026
v0.13.6## What's Changed * fix: #2863 lazy-load SQLiteSession exports by @seratch in https://github.com/openai/openai-agents-python/pull/2864 * fix: #2856 stop recursive trace preview truncation by @seratch in https://github.com/openai/openai-agents-python/pull/2860 * fix: harden SQLAlchemySession against transient SQLite locks by @seratch in https://github.com/openai/openai-agents-python/pull/2854 ### Documentation & Other Changes * docs: updates for #2844 changes by @seratch in https://gitMedium4/9/2026
v0.13.5## What's Changed * feat: #2807 support callable approval policies for local MCP servers by @seratch in https://github.com/openai/openai-agents-python/pull/2818 * feat: #2135 add public flush_traces API by @seratch in https://github.com/openai/openai-agents-python/pull/2844 * fix: #2823 AnyLLM reasoning extraction for iterable vLLM/any-llm Reasoning objects by @ziqi-cn in https://github.com/openai/openai-agents-python/pull/2822 * fix: serialize SQLite session writes with shared file locks Medium4/6/2026
v0.13.4## What's Changed * fix: #2806 sanitize AnyLLM responses replay input before validation by @seratch in https://github.com/openai/openai-agents-python/pull/2813 ### Documentation & Other Changes * fix: map extensions changes to the feature:extensions label by @seratch in https://github.com/openai/openai-agents-python/pull/2814 * Release 0.13.4 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2815 **Full Changelog**: https://github.com/openai/openai-agents-Medium4/1/2026
v0.13.3## What's Changed * fix: #2798 avoid stale hydrated input ids in server conversation tracker by @seratch in https://github.com/openai/openai-agents-python/pull/2800 * fix: #2797 accept raw image_url content parts on chat completions input by @seratch in https://github.com/openai/openai-agents-python/pull/2799 ### Documentation & Other Changes * docs: add non-OpenAI provider code example by @Muttaqi110 in https://github.com/openai/openai-agents-python/pull/2792 * docs: update translateMedium3/31/2026
v0.13.2## What's Changed * fix: #2783 depend on griffelib directly for docstring parsing by @seratch in https://github.com/openai/openai-agents-python/pull/2791 * fix: #2776 keep private tool metadata out of persisted session items by @seratch in https://github.com/openai/openai-agents-python/pull/2781 * fix: #2778 keep LiteLLM reasoning_effort portable across providers by @seratch in https://github.com/openai/openai-agents-python/pull/2782 * fix: update default reasoning effort for newer models Medium3/26/2026
v0.13.1## Key Changes ### Any-LLM extension Since this version, the extension module includes a new [any-llm](https://github.com/mozilla-ai/any-llm) adapter as well. Please refer to the updated documentation and examples at https://github.com/openai/openai-agents-python/tree/main/examples/model_providers ## What's Changed * feat: add any-llm model support with responses-compatible routing by @seratch in https://github.com/openai/openai-agents-python/pull/2706 * fix: preserve static MCP metMedium3/25/2026
v0.13.0## Key Changes This minor release does **not** introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes. Highlights are: - The default websocket Realtime model is now `gpt-realtime-1.5`, so new Realtime agent setups use the newer model without extra configuration. - `MCPServer` now exposes `list_resources()`, `list_resource_templates()`, and `read_resource()`, and `MCPServerStreamableHttp` now exposes `sessionMedium3/23/2026
v0.12.5## What's Changed * feat(mcp): expose auth and httpx_client_factory in SSE/StreamableHttp params by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/2713 * fix: recover streamed nested agent output before cancellation fallback by @elainegan-openai in https://github.com/openai/openai-agents-python/pull/2714 * fix(mcp): retry ClosedResourceError on isolated session by @elainegan-openai in https://github.com/openai/openai-agents-python/pull/2711 * fix(mcp): retry MCP 40Low3/19/2026
v0.12.4## What's Changed * fix: normalize cancelled MCP invocations into tool errors by @elainegan-openai in https://github.com/openai/openai-agents-python/pull/2704 * fix: retry transient streamable-http MCP tool failures on isolated session by @elainegan-openai in https://github.com/openai/openai-agents-python/pull/2703 * fix(memory): honor custom table names in AdvancedSQLiteSession by @seratch in https://github.com/openai/openai-agents-python/pull/2694 * fix(retry): cap jittered delay to max_Low3/18/2026
v0.12.3## What's Changed * fix: handle inner MCP tool cancellations as tool errors by @elainegan-openai in https://github.com/openai/openai-agents-python/pull/2681 * fix: serialize streamable-http MCP requests per session by @elainegan-openai in https://github.com/openai/openai-agents-python/pull/2682 ### Documentation & Other Changes * docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2668 * docs: fix minor typos in provideLow3/16/2026
v0.12.2## What's Changed * fix: #2664 drop orphan hosted shell calls before multi-turn replay by @seratch in https://github.com/openai/openai-agents-python/pull/2665 * fix: #2258 add normalized to_input_list mode for filtered handoff follow-ups by @seratch in https://github.com/openai/openai-agents-python/pull/2667 ### Documentation & Other Changes * docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2663 * Release 0.12.2 by Low3/14/2026
v0.12.1## What's Changed * feat: #2658 preserve explicit approval rejection messages across resume flows by @seratch in https://github.com/openai/openai-agents-python/pull/2660 ### Documentation & Other Changes * docs: add retry settings by @seratch in https://github.com/openai/openai-agents-python/pull/2655 * docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2656 * Release 0.12.1 by @github-actions[bot] in https://github.coLow3/13/2026
v0.12.0## Key Changes ### Opt-in retry settings New opt-in settings for retries of model API calls is available in this version. The new configuration is available as part of `ModelSettings` and it can be passed either as run config or model settings per an agent. Refer to the following code examples for details: - https://github.com/openai/openai-agents-python/blob/main/examples/basic/retry.py - https://github.com/openai/openai-agents-python/blob/main/examples/basic/retry_litellm.py #Low3/12/2026
v0.11.1## What's Changed * fix: show the GA computer alias in tracing by @seratch in https://github.com/openai/openai-agents-python/pull/2641 ### Documentation & Other Changes * docs: add tool search coverage across Python guides by @seratch in https://github.com/openai/openai-agents-python/pull/2622 * docs: cover GA computer tool migration across Python guides by @seratch in https://github.com/openai/openai-agents-python/pull/2629 * docs: update translated document pages by @github-actions[Low3/9/2026
v0.11.0## Key Changes ### Tool search support As of this version, the Agents SDK supports the tool search tool, including namespaces: https://developers.openai.com/api/docs/guides/tools-tool-search/ Please refer to [this concrete example](https://github.com/openai/openai-agents-python/blob/main/examples/tools/tool_search.py), as well as the updated documentation. ### Computer use tool GA As of this version, you can use the gpt-5.4 model for the computer use tool, in addition to the existLow3/9/2026
v0.10.5## What's Changed * feat: #2492 add explicit MultiProvider prefix modes by @seratch in https://github.com/openai/openai-agents-python/pull/2593 * fix: #879 return McpError as a structured error result instead of crashing the agent run by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/2598 ### Documents & Other Changes * docs: improve doc coverage for Dapr sessions and advanced model settings by @seratch in https://github.com/openai/openai-agents-python/pull/258Low3/5/2026
v0.10.4## What's Changed * fix: isolate parallel function tool failures by @seratch in https://github.com/openai/openai-agents-python/pull/2584 ### Documents & Other Changes * docs: improve documentation entry points and navigation by @seratch in https://github.com/openai/openai-agents-python/pull/2578 * docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2579 * docs: update translated document pages by @github-actions[bot] inLow3/3/2026
v0.10.3## What's Changed * feat: expose immutable agent tool invocation metadata on run results (ref #2575) by @seratch in https://github.com/openai/openai-agents-python/pull/2576 * feat: #2247 add RunResult tool_context accessor for agent tools by @seratch in https://github.com/openai/openai-agents-python/pull/2575 * perf: use deque for BFS queue and voice task ordering by @giulio-leone in https://github.com/openai/openai-agents-python/pull/2559 ### Documents & Other Changes * docs: update Low3/2/2026
v0.10.2## What's Changed * fix: #2540 reattach resumed traces without duplicate trace starts by @seratch in https://github.com/openai/openai-agents-python/pull/2547 * fix: #260 sanitize oversized tracing span payloads by @seratch in https://github.com/openai/openai-agents-python/pull/2549 * fix: Require approval for callable MCP policies when agent is omitted by @tiffanycitra in https://github.com/openai/openai-agents-python/pull/2553 * fix: #1121 expose model request IDs on raw responses by @serLow2/26/2026
v0.10.1## What's Changed * fix: sync realtime model literals in realtime config by @seratch in https://github.com/openai/openai-agents-python/pull/2535 ### Documents & Other Changes * docs: add responses websocket support by @seratch in https://github.com/openai/openai-agents-python/pull/2533 * docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2534 * Release 0.10.1 by @github-actions[bot] in https://github.com/openai/openai-Low2/24/2026
v0.10.0## Key Changes ### WebSocket Mode for OpenAI Responses API This version adds WebSocket mode support for OpenAI's Responses API. This is a new opt-in feature, so the default behavior is unchanged. If you want to switch all Responses API calls to WebSocket mode, call `set_default_openai_responses_transport("websocket")` to enable it for all OpenAI Responses model agents. You can also use either `OpenAIProvider` along with `use_responses_websocket=True` or `responses_websocket_session()` uLow2/23/2026
v0.9.3## What's Changed * fix: strip #2518 total_tokens from OpenAI tracing usage payloads by @seratch in https://github.com/openai/openai-agents-python/pull/2521 * Release 0.9.3 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2522 **Full Changelog**: https://github.com/openai/openai-agents-python/compare/v0.9.2...v0.9.3Low2/20/2026
v0.9.2## Key Changes ### reasoning_item_id_policy: omit for reasoning models To mitigate 400 errors caused by an inconsistent set of items when using reasoning models, this release introduces the `reasoning_item_id_policy: 'omit'` option to `RunConfig`. This is a new, opt-in option, so the default behavior is unchanged. ```python run_config = RunConfig(reasoning_item_id_policy="omit") result = await Runner.run( agent, "Tell me about recursion in programming.", run_config=run_Low2/19/2026
v0.9.1## What's Changed * fix: materialize iterable input history in ItemHelpers.input_to_new_input_list by @seratch in https://github.com/openai/openai-agents-python/pull/2496 * fix: emit tracing function spans for shell/apply_patch/computer runtime tools by @seratch in https://github.com/openai/openai-agents-python/pull/2498 * fix: #2489 lazily initialize tracing globals to avoid import-time fork hazards by @seratch in https://github.com/openai/openai-agents-python/pull/2499 * fix: #2487 persiLow2/17/2026
v0.9.0## Key Changes ### Python 3.9 is no longer supported Since Python 3.9 is EOLed three months ago, this SDK no longer support the version. Please upgrade to Python 3.10 or newer. ### Timeouts for function tools Now you can pass the following options to customize function tool behavior: - timeout_seconds: float | None - timeout_behavior: ToolTimeoutBehavior = "error_as_result" # or "raise_exception" - timeout_error_function: ToolErrorFunction | None #### `Agent#as_tool()` now retuLow2/13/2026
v0.8.4## Key Changes ### Hosted container tool + Skills This release includes the hosted shell runtime tool along with its native skills support. Developers now can pass a container-based shell runtime with skills this way: ```python from agents import Agent, ShellTool agent = Agent( name="Shell Agent", model="gpt-5.2", instructions="Use the available shell tool to answer user requests.", tools=[ ShellTool( environment={ "type": "coLow2/11/2026
v0.8.3## What's Changed * Support model_version param for turn detection in realtime agents sdk by @jhills20 in https://github.com/openai/openai-agents-python/pull/2450 ### Documents & Other Changes * docs: describe Pydantic Field annotations for tool args by @haasonsaas in https://github.com/openai/openai-agents-python/pull/2436 * Release 0.8.3 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2451 **Full Changelog**: https://github.com/openai/openai-agents-pLow2/10/2026
v0.8.2## What's Changed * feat: support Annotated[T, Field(...)] in function schema by @haasonsaas in https://github.com/openai/openai-agents-python/pull/2435 * feat: include agent in ToolContext tool calls by @rm-openai in https://github.com/openai/openai-agents-python/pull/2446 * fix(tracing): #2444 drop unsupported usage fields for OpenAI trace ingest by @seratch in https://github.com/openai/openai-agents-python/pull/2448 * fix(core): avoid noisy pydantic serialization warnings for model_dumpLow2/9/2026
v0.8.1## What's Changed * feat: add run-context thread reuse for codex_tool by @seratch in https://github.com/openai/openai-agents-python/pull/2425 * feat: add max turns in REPL by @xju2 in https://github.com/openai/openai-agents-python/pull/2431 * fix: #2426 persist streamed run-again tool items to session by @seratch in https://github.com/openai/openai-agents-python/pull/2433 * fix: preserve handoff target resolution compatibility in run-state agent maps by @seratch in https://github.com/openaLow2/6/2026
v0.8.0## Key Changes ### Human-in-the-Loop (HITL) The human-in-the-loop (HITL) flow enables your agents to pause execution until a person approves or rejects sensitive tool calls. Tools declare when they need approval, run results surface pending approvals as interruptions, and `RunState` lets you serialize and resume runs after decisions are made. ```python import asyncio from agents import Agent, Runner, RunState, function_tool @function_tool async def get_weather(city: str) -> str: Low2/5/2026
v0.7.0## Key Changes ### Nested handoff behavior is now opt-in The nested handoffs behavior were enabled by default in v0.6.0. Now, it is now disabled by default. To enable it again, you need to set the `nest_handoff_history` option to `True`. ```python from agents import Agent, MCPServerManager, RunConfig, Runner agent = Agent(name="My agent", instructions="Be creative") result = await Runner.run( agent, input="Hey, can you tell me something interesting about Japan?", runLow1/23/2026
v0.6.9## What's Changed * feat: #2333 support input-based responses compaction with store-aware auto mode by @seratch in https://github.com/openai/openai-agents-python/pull/2334 * fix: #2061 handle invalid tool arguments JSON without crashing by @seratch in https://github.com/openai/openai-agents-python/pull/2337 * Release 0.6.9 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2336 **Full Changelog**: https://github.com/openai/openai-agents-python/compare/v0.6.8..Low1/20/2026
v0.6.8## What's Changed * Enhance exception handling in MCP server initialization and cleanup by @habema in https://github.com/openai/openai-agents-python/pull/2268 * Bump LiteLLM to fix Vertex AI function calling with no-param tools by @habema in https://github.com/openai/openai-agents-python/pull/2329 * Fix: Tool message ordering for Gemini models by @habema in https://github.com/openai/openai-agents-python/pull/2331 * fix: #2155 DeepSeek reasoning_content missing in tool call messages by @wahLow1/19/2026
v0.6.7## What's Changed * feat: add experimental Codex extension and tool by @seratch in https://github.com/openai/openai-agents-python/pull/2320 * Enforce max_output_length for shell tool outputs by @gustavz in https://github.com/openai/openai-agents-python/pull/2299 * fix: #2171 dedupe nested handoff inputs by @seratch in https://github.com/openai/openai-agents-python/pull/2323 * fix: #2317 defer compaction when local tool outputs are present by @seratch in https://github.com/openai/openai-ageLow1/16/2026
v0.6.6## What's Changed * feat: #2206 Add responses.compact: auto-compact long conversations by @ruskaruma in https://github.com/openai/openai-agents-python/pull/2224 #2287 * Add AsyncSQLiteSession (aiosqlite-backed async session store) by @gustavz in https://github.com/openai/openai-agents-python/pull/2284 * fix: #2009 #2010 Improve PCM duration calculation and handle VAD truncation by @ruskaruma in https://github.com/openai/openai-agents-python/pull/2059 * Fix thinking tokens not attached withLow1/15/2026
v0.6.5## What's Changed * Add per-run tracing API key support by @rm-openai in https://github.com/openai/openai-agents-python/pull/2260 * Add AgentHookContext with turn_input for agent hooks by @ihower in https://github.com/openai/openai-agents-python/pull/2213 * feat: Add tool guardrails to function_tool decorator args (ref #2218) by @seratch in https://github.com/openai/openai-agents-python/pull/2227 * Add realtime audio mapping support and SIP session payload tests by @seratch in https://githLow1/6/2026
v0.6.4## What's Changed * feat: Add on_stream to agents as tools by @seratch in https://github.com/openai/openai-agents-python/pull/2169 * fix: Enable creating/disposing Computer per agent run by @seratch in https://github.com/openai/openai-agents-python/pull/2191 * Expose failure_error_function in Agent.as_tool by @Nekowaii in https://github.com/openai/openai-agents-python/pull/2179 * fix #2181 FunctionTool.strict_json_schema is missing when using Chat Completions API by @seratch in https://gitLow12/19/2025
v0.6.3## What's Changed * feat: preserve logprobs from chat completions API in ModelResponse by @JRMeyer in https://github.com/openai/openai-agents-python/pull/2134 * Attach context to apply patch operations by @gustavz in https://github.com/openai/openai-agents-python/pull/2162 * [fix] Realtime CLI demo energy threshold by @lionel-oai in https://github.com/openai/openai-agents-python/pull/2166 * upgrade openai dep to v2.9.0 by @rm-openai in https://github.com/openai/openai-agents-python/pull/2177Low12/11/2025
v0.6.2## What's Changed * fix: allow static tool filtering without agent and run_context in MCPServer by @sevakva in https://github.com/openai/openai-agents-python/pull/2108 * Fix as_tool returning blank string on early tool termination by @ihower in https://github.com/openai/openai-agents-python/pull/2112 * docs: clarify handoff() docs, callable not supported by @ihower in https://github.com/openai/openai-agents-python/pull/2116 * Fix: usage from earlier stream chunks when later chunks have none Low12/4/2025
v0.6.1## What's Changed * fix: invalid model setting when passing prompt to Agent by @seratch in https://github.com/openai/openai-agents-python/pull/1852 * docs: document input guardrail execution modes by @RVV-karma in https://github.com/openai/openai-agents-python/pull/2084 * Update all translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2104 * fix: #2097 fix the default settings for SIP realtime runner by @seratch in https://github.com/openaiLow11/20/2025
v0.6.0## Key changes **Handoff behavior has a breaking change in this version**. Specifically, the message history is now collapsed into a single message when handing off to a new agent. We have verified and evaluated this behavior and think it works better, but recommend testing with your agents before upgrading to v0.6.0 in production. ## What's Changed * fix(twilio): add configurable startup delay to avoid initial audio jitter (fixes #1906) by @Shraman123 in https://github.com/openai/openai-agLow11/18/2025
v0.5.1Key update is support for new tools from the GPT-5.1 launch: shell and apply_patch. ## What's Changed * Docs: Add per-request usage to docs and example script by @habema in https://github.com/openai/openai-agents-python/pull/2026 * docs: Update document pages for v0.5.0 release by @seratch in https://github.com/openai/openai-agents-python/pull/2019 * Update all translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/2044 * Fix Anthropic modLow11/13/2025
v0.5.0## Key Changes This version doesnโ€™t introduce any visible breaking changes, but it includes new features and a few significant updates under the hood: - Added support for `RealtimeRunner` to handle [SIP protocol connections](https://platform.openai.com/docs/guides/realtime-sip) - Significantly revised the internal logic of `Runner#run_sync` for Python 3.14 compatibility ## What's Changed * docs: #1999 adjust the realtime module code comment by @seratch in https://github.com/openai/opeLow11/5/2025
v0.4.2## What's Changed * fix: #1764 enable developers to pass custom reasoning effort for LiteLLM providers by @seratch in https://github.com/openai/openai-agents-python/pull/1972 * ci: make format required (devs should run `make format` before committing) by @filintod in https://github.com/openai/openai-agents-python/pull/1979 * Fix: Add empty checks for reasoning content arrays in stream handler by @gn00295120 in https://github.com/openai/openai-agents-python/pull/1982 * fix: #1942 Enable asyncLow10/24/2025
v0.4.1## What's Changed * Add breaking change notes in docs by @seratch in https://github.com/openai/openai-agents-python/pull/1894 * Update all translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/1922 * docs: add missing items in side navi bar (ja, zh) by @seratch in https://github.com/openai/openai-agents-python/pull/1932 * Update all translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/1933 Low10/22/2025

Dependencies & License Audit

Loading dependencies...

Similar Packages

schemathesisProperty-based testing framework for Open API and GraphQL based appsv4.21.1
ctranslate2Fast inference engine for Transformer modelsv4.8.0
cadwynProduction-ready community-driven modern Stripe-like API versioning in FastAPI7.0.0
tqdmFast, Extensible Progress Meterv4.68.1
inspect-aiFramework for large language model evaluationsmain@2026-06-05

More from pypi

markitdownUtility tool for converting various files to Markdown
fastapiFastAPI framework, high performance, easy to learn, fast to code, ready for production
djangoA high-level Python web framework that encourages rapid development and clean, pragmatic design.
flaskA simple framework for building complex web applications.

More in Frameworks

spec_driven_developSpec-Driven Develop is a platform-agnostic AI agent skill that automates the pre-development workflow for large-scale complex tasks. It is not a framework, not a runtime, not a package manager โ€” it is
deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of ta
tqdmFast, Extensible Progress Meter
simBuild, deploy, and orchestrate AI agents. Sim is the central intelligence layer for your AI workforce.