Zum Hauptinhalt springen

OpenAI Agents SDK

Changelog

OpenAIs Agent SDK, hier mit Python-Releases

Diese Seite zeigt höchstens die 60 neuesten Releases aus offiziellen Quellen. Sie beansprucht keine vollständige Versionshistorie.

Die Versionshinweise werden im englischen Original angezeigt.

Neueste Version:v0.22.3
Angezeigte Releases:60
Quelle:GitHub Releases

Neueste Releases (60)

v0.22.3Neu

v0.22.3

18. September 2026

## What's Changed fix(core): align conditional approvals with validated tool arguments by @seratch in https://github.com/openai/openai-agents-python/pull/5066 fix(core): deliver tool-not-found output on server-managed resume by @hyeonsang010716 in https://github.com/openai/openai-agents-python/pull/4947 fix(sandbox): keep command paths POSIX on a Windows host by @hyeonsang010716 in https://github.com/openai/openai-agents-python/pull/4958 fix(sessions): handle concurrent async SQLite startup by @00200200 in https://github.com/openai/openai-agents-python/pull/4987 fix(sessions): do not forward session limit as Conversations page size by @tiagovilasboas in https://github.com/openai/openai-agents-python/pull/4961 fix(tracing): do not cache a missing OPENAI_API_KEY by @hyeonsang010716 in https://github.com/openai/openai-agents-python/pull/5017 fix(extensions): include shell and apply_patch calls in AdvancedSQLiteSession's tool usage by @rioyu123 in https://github.com/openai/openai-agents-python/pull/4982 fix(extensions): reap subprocesses on early stream close by @Hughhhhcoder in https://github.com/openai/openai-agents-python/pull/4804 fix(extensions): preserve exact IDs in AdvancedSQLiteSession.delete_branch by @JiangLLM in https://github.com/openai/openai-agents-python/pull/4980 ### Documentation & Other Changes docs: align repository security and contributor guidance by @jbeckwith-oai in https://github.com/openai/openai-agents-python/pull/4962 docs: clarify Unix-local execution boundaries by @seratch in https://github.com/openai/openai-agents-python/pull/5064 docs: update translated pages by @seratch in https://github.com/openai/openai-agents-python/pull/5065 docs(examples): drop the duplicated word in the Temporal trace name by @simpleqt in https://github.com/openai/openai-agents-python/pull/5079 chore: enable Python Dependabot coverage with release-age cooldowns by @jbeckwith-oai in https://github.com/openai/openai-agents-python/pull/4964 chore: add code ownership and required release review guidance by @jbeckwith-oai in https://github.com/openai/openai-agents-python/pull/4965 fix(deps): update vulnerable dependencies without changing SDK APIs by @jbeckwith-oai in https://github.com/openai/openai-agents-python/pull/4963 chore(deps): update fastapi requirement from >=0.120.0 to >=0.141.1 in /examples/realtime/twilio_sip by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4966 chore(deps): update uvicorn requirement from >=0.38.0 to >=0.52.4 in /examples/realtime/twilio_sip by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4968 chore(deps): update openai requirement from <4,>=3.0.0 to >=3.8.0,<4 in /examples/realtime/twilio_sip by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4969 chore(deps): bump typing-extensions from 4.14.1 to 4.16.0 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4970 chore(deps-dev): bump grpcio from 1.76.0 to 1.83.1 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4971 chore(deps): bump sqlalchemy from 2.0.43 to 2.0.52 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4973 chore(deps-dev): bump cryptography from 45.0.7 to 50.0.0 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4975 ci: add Python and Actions CodeQL security scanning by @jbeckwith-oai in https://github.com/openai/openai-agents-python/pull/4974 fix(ci): deploy docs after dependency and workflow updates by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4976 fix(deps): update python-multipart requirement from >=0.0.31 to >=0.0.32 in /examples/realtime/twilio by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/5030 fix(deps): update python-dotenv requirement from >=1.2.2 to >=1.2.3 in /examples/realtime/twilio by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/5031 fix(deps): update starlette requirement from >=1.3.1 to >=1.6.0 in /examples/realtime/twilio_sip by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/5033 fix(deps): update python-dotenv requirement from >=1.2.2 to >=1.2.3 in /examples/realtime/twilio_sip by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/5034 fix(deps-dev): bump pymdown-extensions from 11.0.1 to 11.0.2 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/5036 fix(deps): bump runloop-api-client from 1.16.0 to 1.31.0 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/5037 fix(deps): bump starlette from 1.3.1 to 1.6.0 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/5038 fix(deps): update starlette requirement from >=1.3.1 to >=1.6.0 in /examples/realtime/twilio by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/5032 Add SDKs team as repository code owner by @jbeckwith-oai in https://github.com/openai/openai-agents-python/pull/5058 release: 0.22.3 by @seratch in https://github.com/openai/openai-agents-python/pull/5077 ## New Contributors @hyeonsang010716 made their first contribution in https://github.com/openai/openai-agents-python/pull/4947 @jbeckwith-oai made their first contribution in https://github.com/openai/openai-agents-python/pull/4962 @00200200 made their first contribution in https://github.com/openai/openai-agents-python/pull/4987 @JiangLLM made their first contribution in https://github.com/openai/openai-agents-python/pull/4980 @tiagovilasboas made their first contribution in https://github.com/openai/openai-agents-python/pull/4961 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.22.2...v0.22.3

v0.22.2

OpenAI Agents SDK 0.22.2

9. September 2026

## What's Changed feat: support current image generation tool options by @seratch in https://github.com/openai/openai-agents-python/pull/4932 fix(sandbox): prevent UnixLocal file API symlink races by @seratch in https://github.com/openai/openai-agents-python/pull/4931 fix(sessions): reset compaction response chain after pop by @rksharma-owg in https://github.com/openai/openai-agents-python/pull/4934 ### Documentation & Other Changes docs: document v0.22.1 behavior updates by @seratch in https://github.com/openai/openai-agents-python/pull/4577 * release: 0.22.2 by @seratch in https://github.com/openai/openai-agents-python/pull/4935 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.22.1...v0.22.2

v0.22.1

v0.22.1

8. September 2026

## What's Changed feat(core): support image results in web search tools by @seratch in https://github.com/openai/openai-agents-python/pull/4898 feat(core): customize output guardrail blocked messages by @seratch in https://github.com/openai/openai-agents-python/pull/4594 feat(mcp): add server-wide guardrails to MCP tools by @seratch in https://github.com/openai/openai-agents-python/pull/4632 feat(sandbox): add configurable Unix-local environment isolation by @seratch in https://github.com/openai/openai-agents-python/pull/4640 feat(sandbox): allow labels on Docker sandbox containers by @seanxuu in https://github.com/openai/openai-agents-python/pull/4564 feat(voice): expose streamed transcription options by @seratch in https://github.com/openai/openai-agents-python/pull/4645 fix(core): detach aggregated request usage entries by @green3sf in https://github.com/openai/openai-agents-python/pull/4519 fix(core): fail closed on empty tool arguments by @hsusul in https://github.com/openai/openai-agents-python/pull/4545 fix(core): strip created_by when replaying RunItems as input by @hsusul in https://github.com/openai/openai-agents-python/pull/4568 fix(core): strict_schema error message, REPL whitespace input, debug docstrings by @simpleqt in https://github.com/openai/openai-agents-python/pull/4600 fix(core): max_turns no longer clobbers a tripped input guardrail exception in streaming by @shoemoney in https://github.com/openai/openai-agents-python/pull/4606 fix(core): preserve serialized approval resume ownership by @seratch in https://github.com/openai/openai-agents-python/pull/4613 fix(core): read tool args without Pydantic property shadowing by @hsusul in https://github.com/openai/openai-agents-python/pull/4627 fix(core): accept JSON Schema type arrays of object for tool outputs by @hsusul in https://github.com/openai/openai-agents-python/pull/4647 fix(core): honor End of File hunks when the file ends in a newline by @lllakshit in https://github.com/openai/openai-agents-python/pull/4661 fix(core): preserve tuple annotations for variadic tool arguments by @Excelius-Wang in https://github.com/openai/openai-agents-python/pull/4655 fix(core): fix streamed response span losing response/input when consumer stops at completed event by @XuQuanxin04 in https://github.com/openai/openai-agents-python/pull/4692 fix(core): apply **kwargs value annotation to each keyword value by @abhay-codes07 in https://github.com/openai/openai-agents-python/pull/4714 * fix(core): reject **kwargs keys that collide with named tool parameters by @rajarshidattapy in https://github.com/openai/openai-agents-python/pull/4674 fix(core): reject fixed-length tuple annotations for variadic tool arguments by @subhashpolisetti in https://github.com/openai/openai-agents-python/pull/4735 fix(core): preserve Field constraints on variadic tool parameters by @rioyu123 in https://github.com/openai/openai-agents-python/pull/4739 fix(core): close model providers created by Runner by @Excelius-Wang in https://github.com/openai/openai-agents-python/pull/4785 fix(core/voice): honor OpenAI provider options over default clients by @green3sf in https://github.com/openai/openai-agents-python/pull/4530 fix(chat-completions): merge a streamed turn's message into its pending tool-call message by @mmjerge in https://github.com/openai/openai-agents-python/pull/4728 fix(chat-completions): raise ModelBehaviorError on truncated empty completions by @weike-zhang in https://github.com/openai/openai-agents-python/pull/4513 fix(chat-completions) reject unpaired function outputs in Chat Completions by @apcha-oai in https://github.com/openai/openai-agents-python/pull/4699 fix(extensions): skip AdvancedSQLiteSession usage store when the branch has no turn by @rioyu123 in https://github.com/openai/openai-agents-python/pull/4822 fix(extensions): nest extra_body on the any-llm chat path by @hsusul in https://github.com/openai/openai-agents-python/pull/4544 fix(mcp): deep-copy cached tools before returning them by @hsusul in https://github.com/openai/openai-agents-python/pull/4525 fix(mcp): clear active MCP servers after cleanup by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4586 fix(mcp): deduplicate managed servers by @hsusul in https://github.com/openai/openai-agents-python/pull/4591 fix(realtime): advance crossed guardrail thresholds by @hsusul in https://github.com/openai/openai-agents-python/pull/4590 fix(realtime): preserve item status on retrieved conversation items by @shoutoutuoadi325 in https://github.com/openai/openai-agents-python/pull/4598 fix(sandbox): finish dependency cleanup on cancellation by @hsusul in https://github.com/openai/openai-agents-python/pull/4607 fix(sandbox): keep unbounded UnixLocal workspace I/O off the event loop by @ayaangazali in https://github.com/openai/openai-agents-python/pull/4700 fix(sandbox): preserve UTF-8 boundaries in Cloudflare SSE by @Hughhhhcoder in https://github.com/openai/openai-agents-python/pull/4707 fix(sandbox): clean up PTY startup cancellation by @Hughhhhcoder in https://github.com/openai/openai-agents-python/pull/4750 fix(sandbox): settle PTY output before cleanup by @seratch in https://github.com/openai/openai-agents-python/pull/4738 fix(sandbox): preserve workdir for shell command lists by @hsusul in https://github.com/openai/openai-agents-python/pull/4915 fix(sessions): recover failed resumed Session writes before model calls by @seratch in https://github.com/openai/openai-agents-python/pull/4630 fix(sessions): recover failed resumed Session writes on a renewed interruption by @ayaangazali in https://github.com/openai/openai-agents-python/pull/4650 fix(sessions): persist resumed tool guardrail results by @FU-max-boop in https://github.com/openai/openai-agents-python/pull/4654 fix(sessions): recover resumed handoffs after session append failures by @seratch in https://github.com/openai/openai-agents-python/pull/4725 fix(sessions): settle conversation deletion before propagating cancellation by @Excelius-Wang in https://github.com/openai/openai-agents-python/pull/4790 fix(sessions): preserve concurrent writes during compaction by @seratch in https://github.com/openai/openai-agents-python/pull/4736 fix(sessions): reject resuming a run whose accepted terminal output was not persisted by @Ayushraj06-bit in https://github.com/openai/openai-agents-python/pull/4698 fix(sessions): preserve Session transformations during generation tracking by @seratch in https://github.com/openai/openai-agents-python/pull/4917 fix(tracing): flush buffered data after tracing is disabled by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4528 fix(tracing): preserve response IDs in redacted traces by @seratch in https://github.com/openai/openai-agents-python/pull/4641 fix(tracing): record the tool output on approval-gated function spans by @dfedoryshchev in https://github.com/openai/openai-agents-python/pull/4866 fix(voice): support custom OpenAI TTS voice IDs by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4541 fix(voice): forward streamed STT language and prompt by @seratch in https://github.com/openai/openai-agents-python/pull/4574 fix(voice): honor client config for streamed STT by @seratch in https://github.com/openai/openai-agents-python/pull/4575 fix(voice) reject ignored explicit-client options by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4527 fix(voice): include current OpenAI TTS voices by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4535 fix(voice): use monotonic STT event deadlines by @seratch in https://github.com/openai/openai-agents-python/pull/4593 fix(voice): support context in single-agent workflow by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4636 fix(voice): enforce public Voice class state coverage by @seratch in https://github.com/openai/openai-agents-python/pull/4644 fix(voice): redact STT prompts from traces by @hsusul in https://github.com/openai/openai-agents-python/pull/4663 fix(voice): redact TTS instructions from speech spans by @ayaangazali in https://github.com/openai/openai-agents-python/pull/4676 fix(voice): accept every NumPy spelling of a supported TTS dtype by @Nikhils-G in https://github.com/openai/openai-agents-python/pull/4778 fix(voice): wake stream when producer is cancelled by @Hughhhhcoder in https://github.com/openai/openai-agents-python/pull/4825 fix(visualization): preserve nodes with duplicate names by @tandede in https://github.com/openai/openai-agents-python/pull/4512 refactor: extract RunState agent graph identity by @seratch in https://github.com/openai/openai-agents-python/pull/4876 refactor: share provider generation-span population by @seratch in https://github.com/openai/openai-agents-python/pull/4877 ### Documentation & Other Changes docs: document v0.22.0 behavior changes by @seratch in https://github.com/openai/openai-agents-python/pull/4522 docs: fix wording in handoff example prompts by @Chair403 in https://github.com/openai/openai-agents-python/pull/4520 docs: preserve English heading anchors in translated pages by @saime428 in https://github.com/openai/openai-agents-python/pull/4580 docs: refresh tracing integration links by @seratch in https://github.com/openai/openai-agents-python/pull/4634 docs: clarify capability visibility and authorization by @seratch in https://github.com/openai/openai-agents-python/pull/4642 docs: clarify database driver installation for SQLAlchemy sessions by @rioyu123 in https://github.com/openai/openai-agents-python/pull/4743 docs: skip reference pages on Windows by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4761 docs: clarify requested state consistency guarantees by @rksharma-owg in https://github.com/openai/openai-agents-python/pull/4903 docs: make the encrypted session quick start self-contained by @rioyu123 in https://github.com/openai/openai-agents-python/pull/4909 fix: freeze the public voice API contract by @seratch in https://github.com/openai/openai-agents-python/pull/4578 fix: enforce public type alias contract coverage by @seratch in https://github.com/openai/openai-agents-python/pull/4595 fix: route verification changes and require confirmed docs-only pushes by @seratch in https://github.com/openai/openai-agents-python/pull/4880 fix: propagate the serial test runner's exit code on Windows by @MohammedAlkindi in https://github.com/openai/openai-agents-python/pull/4771 fix: harden PyPI publishing and require manual release tags by @seratch in https://github.com/openai/openai-agents-python/pull/4726 fix: require complete policy for new public TypedDicts by @seratch in https://github.com/openai/openai-agents-python/pull/4900 fix: simplify verification and stabilize sandbox tests by @seratch in https://github.com/openai/openai-agents-python/pull/4916 fix: consolidate Docker-backed integration tests by @seratch in https://github.com/openai/openai-agents-python/pull/4667 chore(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4802 chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4803 chore: run repository skill tests in dedicated CI by @seratch in https://github.com/openai/openai-agents-python/pull/4881 refactor: separate release contract verification responsibilities by @seratch in https://github.com/openai/openai-agents-python/pull/4878 perf: reduce async stability command startup overhead by @seratch in https://github.com/openai/openai-agents-python/pull/4874 test: make async progress and trace-worker tests deterministic by @seratch in https://github.com/openai/openai-agents-python/pull/4875 test: organize Realtime session tests by responsibility by @seratch in https://github.com/openai/openai-agents-python/pull/4879 test(sandbox): skip unavailable Windows symlinks by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4853 release: 0.22.1 by @seratch in https://github.com/openai/openai-agents-python/pull/4576 ## New Contributors @Chair403 made their first contribution in https://github.com/openai/openai-agents-python/pull/4520 @green3sf made their first contribution in https://github.com/openai/openai-agents-python/pull/4519 @tandede made their first contribution in https://github.com/openai/openai-agents-python/pull/4512 @seanxuu made their first contribution in https://github.com/openai/openai-agents-python/pull/4564 @simpleqt made their first contribution in https://github.com/openai/openai-agents-python/pull/4600 @shoemoney made their first contribution in https://github.com/openai/openai-agents-python/pull/4606 @shoutoutuoadi325 made their first contribution in https://github.com/openai/openai-agents-python/pull/4598 @ayaangazali made their first contribution in https://github.com/openai/openai-agents-python/pull/4650 @lllakshit made their first contribution in https://github.com/openai/openai-agents-python/pull/4661 @Excelius-Wang made their first contribution in https://github.com/openai/openai-agents-python/pull/4655 @XuQuanxin04 made their first contribution in https://github.com/openai/openai-agents-python/pull/4692 @Hughhhhcoder made their first contribution in https://github.com/openai/openai-agents-python/pull/4707 @rajarshidattapy made their first contribution in https://github.com/openai/openai-agents-python/pull/4674 @mmjerge made their first contribution in https://github.com/openai/openai-agents-python/pull/4728 @subhashpolisetti made their first contribution in https://github.com/openai/openai-agents-python/pull/4735 @rioyu123 made their first contribution in https://github.com/openai/openai-agents-python/pull/4822 @Nikhils-G made their first contribution in https://github.com/openai/openai-agents-python/pull/4778 @MohammedAlkindi made their first contribution in https://github.com/openai/openai-agents-python/pull/4771 @Ayushraj06-bit made their first contribution in https://github.com/openai/openai-agents-python/pull/4698 @rksharma-owg made their first contribution in https://github.com/openai/openai-agents-python/pull/4903 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.22.0...v0.22.1

v0.22.0

v0.22.0

19. August 2026

## Key Changes Version 0.22.0 is a minor release because it adds substantial runtime hardening and tightens an existing provider configuration contract. Applications that combine an explicit openai_client with organization or project must move those values to the AsyncOpenAI client. ### Highlights: - Redacts terminal function-tool output rejected by agent output guardrails from replayable and persisted SDK state. - Raises ModelBehaviorError for non-streaming Responses with terminal status failed or incomplete. - Rejects conflicting provider options when OpenAIProvider receives an explicit client. - Isolates usage accounting between independent RunState checkpoints while preserving nested-agent aggregation. - Expands agents registered through handoff(agent) in generated graphs. - Clarifies the existing shallow-copy behavior of Agent.clone() and RealtimeAgent.clone(). ## What's Changed fix(core): redact blocked tool outputs from replay state by @seratch in https://github.com/openai/openai-agents-python/pull/4507 fix(core): reject ignored explicit-client options for OpenAIProvider by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4497 fix(core): preserve Griffe logger inheritance by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4494 fix(core): reject terminal failed/incomplete responses in non-streaming get_response by @weike-zhang in https://github. fix(core): isolate usage between RunState checkpoints by @chiruu12 in https://github.com/openai/openai-agents-python/pull/4479 fix(sandbox): require apply_patch update hunks by @li2631026381-alt in https://github.com/openai/openai-agents-python/pull/4470 fix(sandbox): enforce Windows mypy compatibility by @seratch in https://github.com/openai/openai-agents-python/pull/4499 fix(tracing): respect model-data logging redaction for record_model_error_on_span by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4496 fix(tracing): clean up processors after tracing is disabled by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4502 fix(visualization): expand handoff() targets in agent graphs by @hsusul in https://github.com/openai/openai-agents-python/pull/4517 ### Documentation & Other Changes docs: document v0.21.1 runtime behavior by @seratch in https://github.com/openai/openai-agents-python/pull/4460 docs: correct Agent.clone list attribute semantics by @thegoodengineer in https://github.com/openai/openai-agents-python/pull/4474 docs: add testing resources to llms indexes by @teachershuang in https://github.com/openai/openai-agents-python/pull/4509 ci: align Python version coverage by @seratch in https://github.com/openai/openai-agents-python/pull/4475 test: use sys.executable instead of tee for the stdio placeholder command by @ErenAta16 in https://github.com/openai/openai-agents-python/pull/4478 fix: keep Codex verification for development sandboxed by @seratch in https://github.com/openai/openai-agents-python/pull/4508 com/openai/openai-agents-python/pull/4516 release: 0.22.0 by @seratch in https://github.com/openai/openai-agents-python/pull/4523 ## New Contributors @li2631026381-alt made their first contribution in https://github.com/openai/openai-agents-python/pull/4470 @thegoodengineer made their first contribution in https://github.com/openai/openai-agents-python/pull/4474 @teachershuang made their first contribution in https://github.com/openai/openai-agents-python/pull/4509 @weike-zhang made their first contribution in https://github.com/openai/openai-agents-python/pull/4516 @chiruu12 made their first contribution in https://github.com/openai/openai-agents-python/pull/4479 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.21.1...v0.22.0

v0.21.1

v0.21.1

17. August 2026

## What's Changed feat(core): add model call timeouts by @seratch in https://github.com/openai/openai-agents-python/pull/4428 feat(sandbox): add run-scoped sandbox working directories by @seratch in https://github.com/openai/openai-agents-python/pull/4427 feat(sandbox): allow Docker sandboxes to disable networking by @koadegno in https://github.com/openai/openai-agents-python/pull/4452 feat(sandbox): add Modal sandbox resource options by @Filimoa in https://github.com/openai/openai-agents-python/pull/4455 fix(core): honor exact call approval decisions by @seratch in https://github.com/openai/openai-agents-python/pull/4447 fix(core): count Responses requests without usage by @seratch in https://github.com/openai/openai-agents-python/pull/4453 fix(core): close all MultiProvider children after failures by @fszcd in https://github.com/openai/openai-agents-python/pull/4438 fix(core): reject partially matched stacked anchors by @Coiggahou2002 in https://github.com/openai/openai-agents-python/pull/4431 fix(chat-completions): Chat Completions reasoning replay by @seratch in https://github.com/openai/openai-agents-python/pull/4432 fix(realtime): truncate audio at zero elapsed time by @Chirag6722 in https://github.com/openai/openai-agents-python/pull/4457 fix(realtime): end iteration after clean server close by @seratch in https://github.com/openai/openai-agents-python/pull/4461 fix(sessions): prevent advanced SQLite structure table conflicts by @seratch in https://github.com/openai/openai-agents-python/pull/4454 fix(sessions): include compaction usage in run totals by @seratch in https://github.com/openai/openai-agents-python/pull/4446 fix(sandbox): validate view_image raster content by @seratch in https://github.com/openai/openai-agents-python/pull/4462 fix(sandbox): keep model paths POSIX-normalized by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4416 fix(sandbox): normalize apply_patch paths as POSIX by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4437 ### Documentation & Other Changes docs: updates for v0.21.0 release by @seratch in https://github.com/openai/openai-agents-python/pull/4381 docs: list Tuning Engines tracing integration by @cerebrixos in https://github.com/openai/openai-agents-python/pull/4440 fix: update cffi lock for Python 3.14 by @seratch in https://github.com/openai/openai-agents-python/pull/4448 release: 0.21.1 by @seratch in https://github.com/openai/openai-agents-python/pull/4467 ## New Contributors @Coiggahou2002 made their first contribution in https://github.com/openai/openai-agents-python/pull/4431 @fszcd made their first contribution in https://github.com/openai/openai-agents-python/pull/4438 @cerebrixos made their first contribution in https://github.com/openai/openai-agents-python/pull/4440 @Filimoa made their first contribution in https://github.com/openai/openai-agents-python/pull/4455 @koadegno made their first contribution in https://github.com/openai/openai-agents-python/pull/4452 @Chirag6722 made their first contribution in https://github.com/openai/openai-agents-python/pull/4457 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.21.0...v0.21.1

v0.21.0

v0.21.0

15. August 2026

## Key Changes This minor release does not introduce a known breaking SDK behavior change. The minor version bump is for the new provider-neutral testing APIs and the OpenAI Python v3 compatibility update. ### Highlights: - Added agents.testing, agents.realtime.testing, and agents.voice.testing utilities for deterministic Agent, Sandbox, Realtime, and Voice workflow tests without provider requests. - Updated OpenAI provider compatibility to openai>=3.0.0,<4, including HTTPX2-aware request, response, transport, and exception handling. - Hardened RunState interruption snapshots, recursive agent-tool approvals, max-turn finalization, streaming cleanup, and sensitive-error redaction. - Improved MCP lifecycle snapshot isolation and added configurable retry backoff ceilings. - Added Sandbox Runloop existing-secret support and tightened view-image path grants. - Added stricter Voice validation for invalid channels, frame rates, incomplete multichannel frames, and non-finite audio rates. ## What's Changed feat: support OpenAI Python 3 and HTTPX2 by @seratch in https://github.com/openai/openai-agents-python/pull/4380 feat: add scripted model test utilities by @seratch in https://github.com/openai/openai-agents-python/pull/4362 fix: freeze public testing module contracts by @seratch in https://github.com/openai/openai-agents-python/pull/4386 fix: freeze public testing API state contracts by @seratch in https://github.com/openai/openai-agents-python/pull/4404 fix(core): preserve scripted annotation streaming across Python SDK releases by @apcha-oai in https://github.com/openai/openai-agents-python/pull/4422 fix(core): isolate interruption results by @hsusul in https://github.com/openai/openai-agents-python/pull/4384 fix(core): close the model stream when a streamed turn ends in a terminal failure by @Luccacvb in https://github.com/openai/openai-agents-python/pull/4366 fix(core): redact tool output value from output-type validation errors by @hsusul in https://github.com/openai/openai-agents-python/pull/4396 fix(core): align Responses parallel tool calls with converted tools by @seratch in https://github.com/openai/openai-agents-python/pull/4405 fix(core): max-turn handler session semantics by @seratch in https://github.com/openai/openai-agents-python/pull/4412 fix(core): detach RunState interruption snapshots by @seratch in https://github.com/openai/openai-agents-python/pull/4409 fix(core): isolate RunState checkpoint tool decisions by @seratch in https://github.com/openai/openai-agents-python/pull/4413 fix(core): resume recursive agent tool approvals by @seratch in https://github.com/openai/openai-agents-python/pull/4414 fix(mcp): stop handing the tools cache to callers by @chinmayv095 in https://github.com/openai/openai-agents-python/pull/4424 fix(mcp): protect manager lifecycle state snapshots by @seratch in https://github.com/openai/openai-agents-python/pull/4407 fix(mcp): isolate manager lifecycle results by @hsusul in https://github.com/openai/openai-agents-python/pull/4368 fix(mcp): add configurable retry backoff ceiling by @seratch in https://github.com/openai/openai-agents-python/pull/4379 fix(realtime): handle non-finite audio rates by @hsusul in https://github.com/openai/openai-agents-python/pull/4419 fix(sandbox): expose the scripted sandbox session type by @seratch in https://github.com/openai/openai-agents-python/pull/4406 fix(sandbox): apply stacked anchors sequentially by @seratch in https://github.com/openai/openai-agents-python/pull/4369 fix(sandbox): snapshot HTTP proxy headers by @hsusul in https://github.com/openai/openai-agents-python/pull/4397 fix(sandbox): snapshot per-op audit policies by @hsusul in https://github.com/openai/openai-agents-python/pull/4398 fix(sandbox): honor view_image extra path grants by @sylvesterkaczmarek in https://github.com/openai/openai-agents-python/pull/4417 fix(sessions): handle zero conversation history limits by @hsusul in https://github.com/openai/openai-agents-python/pull/4365 fix(voice): honor WAV sample width by @FU-max-boop in https://github.com/openai/openai-agents-python/pull/4361 fix(voice): reject incomplete multichannel audio frames by @seratch in https://github.com/openai/openai-agents-python/pull/4370 fix(voice): reject non-positive audio channels by @hansu650 in https://github.com/openai/openai-agents-python/pull/4372 fix(voice): reject non-positive audio frame rates by @hsusul in https://github.com/openai/openai-agents-python/pull/4382 fix(voice): stop buffering audio when audio tracing is disabled by @rxits in https://github.com/openai/openai-agents-python/pull/4411 fix(extensions): gate AnyLLM parallel tool calls on converted tools by @weivwang in https://github.com/openai/openai-agents-python/pull/4363 fix(extensions): preserve resume argument ordering by @viyatb-oai in https://github.com/openai/openai-agents-python/pull/4400 fix(extensions): let managed_secrets reference existing Runloop secrets by @xumaple in https://github.com/openai/openai-agents-python/pull/4378 ### Documentation & Other Changes docs: synchronize v0.20.0 features by @seratch in https://github.com/openai/openai-agents-python/pull/4280 docs: clarify PGP key location by @jaideeppyne in https://github.com/openai/openai-agents-python/pull/4371 test: order test spans by start sequence, not by started_at alone by @ErenAta16 in https://github.com/openai/openai-agents-python/pull/4392 release: 0.21.0 by @seratch in https://github.com/openai/openai-agents-python/pull/4387 ## New Contributors @FU-max-boop made their first contribution in https://github.com/openai/openai-agents-python/pull/4361 @weivwang made their first contribution in https://github.com/openai/openai-agents-python/pull/4363 @jaideeppyne made their first contribution in https://github.com/openai/openai-agents-python/pull/4371 @hansu650 made their first contribution in https://github.com/openai/openai-agents-python/pull/4372 @xumaple made their first contribution in https://github.com/openai/openai-agents-python/pull/4378 @viyatb-oai made their first contribution in https://github.com/openai/openai-agents-python/pull/4400 @ErenAta16 made their first contribution in https://github.com/openai/openai-agents-python/pull/4392 @apcha-oai made their first contribution in https://github.com/openai/openai-agents-python/pull/4422 * @sylvesterkaczmarek made their first contribution in https://github.com/openai/openai-agents-python/pull/4417 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.20.0...v0.21.0

v0.20.0

v0.20.0

11. August 2026

## Key Changes Version 0.20.0 is a minor release because it changes the implicit default model and includes a potentially breaking MCP dependency migration for applications with customized local HTTP transports. MCP v1 remains supported, and affected applications can migrate to httpx2 or pin mcp<2. ### Highlights: - The default model is now gpt-5.6-luna; explicit models, run-level overrides, and OPENAI_DEFAULT_MODEL continue to take precedence. - Local MCP connections support MCP Python SDK v1 and v2 across stdio, SSE, and Streamable HTTP transports. - Applications using custom MCP HTTP authentication or client factories must use the HTTP types owned by the installed MCP major version, or pin mcp<2. - RunState.add_input() can stage durable user input before a resumed model call, with guardrail, persistence, and serialization support. - Sandbox mount validation adds explicit credential-exposure acknowledgements and preserves redacted error contracts without serializing credential authority. - Realtime input transcription supports the GA transcription settings for gpt-live-transcribe, gpt-transcribe, and gpt-realtime-whisper. ## What's Changed feat: use GPT-5.6 Luna as the default model by @seratch in https://github.com/openai/openai-agents-python/pull/4282 feat: add durable pending input to RunState by @seratch in https://github.com/openai/openai-agents-python/pull/4325 feat(mcp): support MCP Python SDK v1 and v2 by @seratch in https://github.com/openai/openai-agents-python/pull/4106 feat(sessions): pass run context to custom sessions by @seratch in https://github.com/openai/openai-agents-python/pull/4209 feat(realtime): support GA transcription options by @seratch in https://github.com/openai/openai-agents-python/pull/4351 feat: preserve raw usage payloads by @seratch in https://github.com/openai/openai-agents-python/pull/4279 feat: allow applications to approve unsafe replays by @seratch in https://github.com/openai/openai-agents-python/pull/4319 fix: falsy optional reference handling by @seratch in https://github.com/openai/openai-agents-python/pull/4305 fix: prevent queue consumer deadlocks by @seratch in https://github.com/openai/openai-agents-python/pull/4201 fix: publish completed streamed guardrail results on failure paths by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4223 fix: annotate the bare tool guardrail decorator overloads by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4238 fix: tool approval is not honored on resume when Runner.run is given a context by @ojassharma7 in https://github.com/openai/openai-agents-python/pull/4245 fix: redact JSON validation errors by @seratch in https://github.com/openai/openai-agents-python/pull/4211 fix: copy raw_responses when building a RunState by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4237 fix: keep empty turns in the nested conversation history by @abhay-codes07 in https://github.com/openai/openai-agents-python/pull/4230 fix: keep tool guardrail results when a resumed run interrupts again by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4239 fix: work on copies of the lists a resumed run adopts from RunState by @hsusul in https://github.com/openai/openai-agents-python/pull/4251 fix: strip placeholder item IDs without provider_data on the Responses path by @LeSingh1 in https://github.com/openai/openai-agents-python/pull/4266 fix: bind tool approvals to concrete invocations by @seratch in https://github.com/openai/openai-agents-python/pull/4257 fix: normalize optional fields in tool invocation identity by @seratch in https://github.com/openai/openai-agents-python/pull/4289 fix: count requests when providers omit usage by @seratch in https://github.com/openai/openai-agents-python/pull/4290 fix: suppress pydantic serializer warnings by @seratch in https://github.com/openai/openai-agents-python/pull/4291 fix: keep FunctionTool subclasses copyable by @seratch in https://github.com/openai/openai-agents-python/pull/4311 fix: preserve streamed guardrail session state by @seratch in https://github.com/openai/openai-agents-python/pull/4312 fix: keep acknowledged safety checks serializable after restore by @ribhavjain in https://github.com/openai/openai-agents-python/pull/4316 fix: preserve default-valued fields in serialized tool output by @hsusul in https://github.com/openai/openai-agents-python/pull/4307 fix: strip output-only created_by when replaying model output as input by @hsusul in https://github.com/openai/openai-agents-python/pull/4308 fix: preserve local shell outputs across RunState resume by @seratch in https://github.com/openai/openai-agents-python/pull/4320 fix: serialize containers of models and dataclasses as structured data by @ribhavjain in https://github.com/openai/openai-agents-python/pull/4339 fix: reject schemas that exceed safe recursion depth by @seratch in https://github.com/openai/openai-agents-python/pull/4358 fix: reject unsafe strict-schema ref siblings by @seratch in https://github.com/openai/openai-agents-python/pull/4356 fix(sandbox): reject unsafe mount credential configurations by @seratch in https://github.com/openai/openai-agents-python/pull/4255 fix(extensions): settle snapshot directory mount transitions for Modal by @seratch in https://github.com/openai/openai-agents-python/pull/4315 fix(sandbox): preserve sandbox error contracts during mount redaction by @seratch in https://github.com/openai/openai-agents-python/pull/4344 feat(sandbox): add explicit mount credential exposure acknowledgements by @seratch in https://github.com/openai/openai-agents-python/pull/4321 fix(sandbox): cancel sibling env resolvers when one fails by @PranavMishra28 in https://github.com/openai/openai-agents-python/pull/4195 fix(sandbox): encode Blaxel terminal WebSocket URL query values by @abhay-codes07 in https://github.com/openai/openai-agents-python/pull/4217 fix(sandbox): stop splitting Cloudflare SSE events at chunk boundaries by @abhay-codes07 in https://github.com/openai/openai-agents-python/pull/4215 fix(sandbox): keep move_to when coercing apply_patch operation mappings by @hsusul in https://github.com/openai/openai-agents-python/pull/4242 fix(sandbox): retain program items in memory rollouts by @seratch in https://github.com/openai/openai-agents-python/pull/4276 fix(sandbox): restore archived file modes when extracting a workspace tar by @hsusul in https://github.com/openai/openai-agents-python/pull/4287 fix(sandbox): keep source entry metadata when lazily loading a skill by @hsusul in https://github.com/openai/openai-agents-python/pull/4294 fix(mcp): hosted MCP approval identity by @seratch in https://github.com/openai/openai-agents-python/pull/4256 fix(mcp): keep MCP error content when structured output is enabled by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4224 fix(mcp): build the active server list without re-consuming the iterable by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4235 fix(mcp): preserve free-form MCP object schemas by @seratch in https://github.com/openai/openai-agents-python/pull/4310 fix(mcp): serialize non-text content blocks as JSON instead of Python repr by @ribhavjain in https://github.com/openai/openai-agents-python/pull/4338 fix(mcp): serialize manager lifecycle operations by @seratch in https://github.com/openai/openai-agents-python/pull/4340 fix(mcp): bound lifecycle and CI waits by @seratch in https://github.com/openai/openai-agents-python/pull/4342 fix(chat-completions): keep url citations when converting chat completions output by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4222 fix(chat-completions): assemble chat completions content parts in content index order by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4236 fix(chat-completions): propagate the OpenAI request ID on the Chat Completions path by @hsusul in https://github.com/openai/openai-agents-python/pull/4243 fix(chat-completions): keep url citations on the streamed chat completions path by @Luccacvb in https://github.com/openai/openai-agents-python/pull/4252 fix(chat-completions): announce the chat completions assistant message once by @hsusul in https://github.com/openai/openai-agents-python/pull/4275 fix(chat-completions): convert input_file items that reference a file_id on the Chat Completions path by @hsusul in https://github.com/openai/openai-agents-python/pull/4295 fix(chat-completions): raise on audio output in the streamed chat completions path by @Luccacvb in https://github.com/openai/openai-agents-python/pull/4309 fix(chat-completions): omit parallel_tool_calls without tools on the Chat Completions path by @Luccacvb in https://github.com/openai/openai-agents-python/pull/4359 fix(sessions): release SQLite engine config entries when engines are collected by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4210 fix(sessions): enforce closed state on SQLite session empty add_items by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4231 fix(sessions): make session mutations atomic by @seratch in https://github.com/openai/openai-agents-python/pull/4212 fix(sessions): preserve required program item ids for OpenAI conversations by @hsusul in https://github.com/openai/openai-agents-python/pull/4253 fix(sessions): apply the reasoning item id policy to stored session history by @LeSingh1 in https://github.com/openai/openai-agents-python/pull/4278 fix(sessions): preserve DaprSession created_at across writes by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4213 fix(sessions): strip placeholder item IDs before Conversations persistence by @hsusul in https://github.com/openai/openai-agents-python/pull/4288 fix(sessions): preserve falsey compaction decision hooks by @hsusul in https://github.com/openai/openai-agents-python/pull/4299 fix(sessions): restore session history when compaction replacement is cancelled by @nothariharan in https://github.com/openai/openai-agents-python/pull/4298 fix(sessions): prune orphaned tool outputs from limited sessions by @seratch in https://github.com/openai/openai-agents-python/pull/4324 fix(realtime): apply tool call item updates to session history by @hsusul in https://github.com/openai/openai-agents-python/pull/4284 fix(realtime): preserve falsey custom models by @hsusul in https://github.com/openai/openai-agents-python/pull/4286 fix(realtime): compute G.711 audio length for typed and mapping format spellings by @abhay-codes07 in https://github.com/openai/openai-agents-python/pull/4292 fix(voice): forward TTSModelSettings.speed to the OpenAI speech API by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4220 fix(voice): keep the word separator when flushing streamed sentences by @abhay-codes07 in https://github.com/openai/openai-agents-python/pull/4227 fix(voice): start the dispatcher when a session ends with no turns by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4259 fix(voice): report transcription session close failures to the consumer by @Luccacvb in https://github.com/openai/openai-agents-python/pull/4343 fix(tracing): release the trace scope when a generator is closed by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4221 fix(tracing): release the span scope when a generator is closed by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4233 fix(tracing): catch only the context reset on generator close by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4232 fix(extensions): harden tool output trimming contracts by @seratch in https://github.com/openai/openai-agents-python/pull/4204 fix(extensions): forward prompt_cache_retention on the any-llm Responses path by @hsusul in https://github.com/openai/openai-agents-python/pull/4248 fix(extensions): resolve the any-llm default model at call time by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4219 fix(extensions): surface content filter refusals on the any_llm chat path by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/4234 fix(extensions): omit litellm's parallel_tool_calls without tools by @seratch in https://github.com/openai/openai-agents-python/pull/4330 ### Documentation & Other Changes docs: correct nonexistent guardrail type names by @dfedoryshchev in https://github.com/openai/openai-agents-python/pull/4218 docs(tracing): fix custom span output example by @XSAM in https://github.com/openai/openai-agents-python/pull/4196 docs: voice quickstart also needs sounddevice by @ColebyPearson in https://github.com/openai/openai-agents-python/pull/4250 docs: improve translation source clarity by @seratch in https://github.com/openai/openai-agents-python/pull/4306 perf: run serial tests alongside xdist by @seratch in https://github.com/openai/openai-agents-python/pull/4197 perf: add source-only typecheck target by @seratch in https://github.com/openai/openai-agents-python/pull/4200 perf: accelerate developer checks by @seratch in https://github.com/openai/openai-agents-python/pull/4258 test: harden release compatibility contracts by @seratch in https://github.com/openai/openai-agents-python/pull/4297 ci: check prospective release contracts before merge by @seratch in https://github.com/openai/openai-agents-python/pull/4347 fix: make release API contract promotion policy-driven by @seratch in https://github.com/openai/openai-agents-python/pull/4349 fix: freeze Runloop platform properties by @seratch in https://github.com/openai/openai-agents-python/pull/4355 test: isolate released API source validation by @seratch in https://github.com/openai/openai-agents-python/pull/4350 release: 0.20.0 by @seratch in https://github.com/openai/openai-agents-python/pull/4348 ## New Contributors @XSAM made their first contribution in https://github.com/openai/openai-agents-python/pull/4196 @abhay-codes07 made their first contribution in https://github.com/openai/openai-agents-python/pull/4217 @ColebyPearson made their first contribution in https://github.com/openai/openai-agents-python/pull/4250 @Luccacvb made their first contribution in https://github.com/openai/openai-agents-python/pull/4252 @ojassharma7 made their first contribution in https://github.com/openai/openai-agents-python/pull/4245 @nothariharan made their first contribution in https://github.com/openai/openai-agents-python/pull/4298 @ribhavjain made their first contribution in https://github.com/openai/openai-agents-python/pull/4316 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.19.4...v0.20.0

v0.19.4

v0.19.4

5. August 2026

## What's Changed fix: preserve completed tool guardrail results by @seratch in https://github.com/openai/openai-agents-python/pull/4180 fix: redact invalid tool argument errors by @seratch in https://github.com/openai/openai-agents-python/pull/4182 fix: defer non-stream session saves until output guardrails by @seratch in https://github.com/openai/openai-agents-python/pull/4184 fix: honor resolved status before policy checks by @seratch in https://github.com/openai/openai-agents-python/pull/4183 fix: cancel sibling work after concurrent failures by @seratch in https://github.com/openai/openai-agents-python/pull/4185 fix: surface non-streaming content-filter refusals by @seratch in https://github.com/openai/openai-agents-python/pull/4188 fix(mcp): derive streamable HTTP retry backoff from backoffs taken by @rxits in https://github.com/openai/openai-agents-python/pull/4174 fix(realtime): clean up failed connection attempts by @seratch in https://github.com/openai/openai-agents-python/pull/4189 fix(tracing): mark non-streaming agent span failures by @seratch in https://github.com/openai/openai-agents-python/pull/4191 fix(sandbox): enforce token output budgets by @cosin2077 in https://github.com/openai/openai-agents-python/pull/3934 fix(sandbox): single-flight cached dependency factories by @seratch in https://github.com/openai/openai-agents-python/pull/4178 fix(sessions): enforce closed state in MongoDBSession by @seratch in https://github.com/openai/openai-agents-python/pull/4176 fix(sessions): preserve repeated history provenance by @seratch in https://github.com/openai/openai-agents-python/pull/4181 fix(sessions): skip conversation creation on empty add_items by @seratch in https://github.com/openai/openai-agents-python/pull/4190 fix(sessions): reject reused branch IDs when creating a branch by @seratch in https://github.com/openai/openai-agents-python/pull/4186 fix(extensions): preserve streamed provider thinking blocks by @seratch in https://github.com/openai/openai-agents-python/pull/4177 ### Documentation & Other Changes perf: speed up the test suite by @seratch in https://github.com/openai/openai-agents-python/pull/4171 test: make parallel guardrail overlap deterministic by @seratch in https://github.com/openai/openai-agents-python/pull/4187 test: make async tool and guardrail tests deterministic by @seratch in https://github.com/openai/openai-agents-python/pull/4192 test: make parent cancellation tests deterministic by @seratch in https://github.com/openai/openai-agents-python/pull/4193 Release 0.19.4 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/4194 ## New Contributors @rxits made their first contribution in https://github.com/openai/openai-agents-python/pull/4174 * @cosin2077 made their first contribution in https://github.com/openai/openai-agents-python/pull/3934 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.19.3...v0.19.4

v0.19.3

v0.19.3

4. August 2026

## What's Changed fix: resolve agent tool name collisions consistently by @seratch in https://github.com/openai/openai-agents-python/pull/4137 fix: reconcile resumed tool name collisions by @seratch in https://github.com/openai/openai-agents-python/pull/4145 fix: persist the max-turns handler output to the session by @LeSingh1 in https://github.com/openai/openai-agents-python/pull/4160 fix: report output guardrail results when a tripwire aborts the run by @Kaif10 in https://github.com/openai/openai-agents-python/pull/4090 fix: replace closed default loop in run_sync by @hsusul in https://github.com/openai/openai-agents-python/pull/4102 fix: honor falsey custom output extractors for agents as tools by @n33levo in https://github.com/openai/openai-agents-python/pull/4088 fix: report tool guardrail results for streamed runs by @hsusul in https://github.com/openai/openai-agents-python/pull/4097 fix: preserve approved tool output on streamed resume by @seratch in https://github.com/openai/openai-agents-python/pull/4126 fix: normalize typeless strict object schemas by @seratch in https://github.com/openai/openai-agents-python/pull/4139 fix: synchronize after-turn cancellation with event consumption by @seratch in https://github.com/openai/openai-agents-python/pull/4130 fix: keep input item order when collapsing duplicates by @hsusul in https://github.com/openai/openai-agents-python/pull/4140 fix: stop emitting handoff calls as streamed tool_called events by @hsusul in https://github.com/openai/openai-agents-python/pull/4146 fix: preserve tool call and output order when deduplicating inputs by @seratch in https://github.com/openai/openai-agents-python/pull/4147 fix: honor falsey handoff input filters by @omidsaffari in https://github.com/openai/openai-agents-python/pull/4153 fix: define explicit zero-value contracts by @seratch in https://github.com/openai/openai-agents-python/pull/4101 fix: keep committed tool session records when a streamed output guardrail trips by @LHMQ878 in https://github.com/openai/openai-agents-python/pull/4148 fix(mcp): auto-paginate tool and prompt listings by @seratch in https://github.com/openai/openai-agents-python/pull/4094 fix(chatcmpl): clear pending thinking blocks when flushing an assistant message by @Kaif10 in https://github.com/openai/openai-agents-python/pull/4089 fix(sandbox): remove apply_patch move source as the bound user by @hsusul in https://github.com/openai/openai-agents-python/pull/4100 fix(sandbox): harden default snapshot path resolution by @seratch in https://github.com/openai/openai-agents-python/pull/4141 fix(sessions): enforce closed state in AsyncSQLiteSession by @chinmayv095 in https://github.com/openai/openai-agents-python/pull/4109 fix(sessions): avoid creating remote conversation on uninitialized clear_session by @hsusul in https://github.com/openai/openai-agents-python/pull/4111 fix(sessions): roll back a failed SQLiteSession insert by @LeSingh1 in https://github.com/openai/openai-agents-python/pull/4163 fix(realtime): apply output guardrails to text deltas by @seratch in https://github.com/openai/openai-agents-python/pull/4124 fix(realtime): clamp interrupt truncation to received audio by @hsusul in https://github.com/openai/openai-agents-python/pull/4122 fix(realtime): scope delayed audio guardrail interruption by @seratch in https://github.com/openai/openai-agents-python/pull/4135 fix(voice): clean up tasks when streams close early by @seratch in https://github.com/openai/openai-agents-python/pull/4131 fix(voice): finish STT event handling after listener errors by @seratch in https://github.com/openai/openai-agents-python/pull/4170 fix(tracing): name streamed task spans after the run's own workflow by @LeSingh1 in https://github.com/openai/openai-agents-python/pull/4167 fix(extensions): keep trimmer's definition names and instance data in trimmed schemas by @LHMQ878 in https://github.com/openai/openai-agents-python/pull/4110 fix(extensions): release AnyLLM provider streams and preserve completed runs by @hsusul in https://github.com/openai/openai-agents-python/pull/4133 fix(extensions): send AnyLLM Responses reasoning as a mapping by @hsusul in https://github.com/openai/openai-agents-python/pull/4138 fix(extensions): record model-call failures on the provider's own span by @PranavMishra28 in https://github.com/openai/openai-agents-python/pull/4143 fix(extensions): let an in-flight provider stream close finish after cancellation by @LHMQ878 in https://github.com/openai/openai-agents-python/pull/4156 fix(extensions): preserve thinking blocks for replay by @seratch in https://github.com/openai/openai-agents-python/pull/4157 ### Documentation & Other Changes docs: fix spelling in GPT-5 example by @wesleyzhangwq in https://github.com/openai/openai-agents-python/pull/4168 chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4080 chore(deps): bump pypa/gh-action-pypi-publish from 1.14.0 to 1.14.2 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4081 chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4083 chore(deps): bump actions/stale from 10.3.0 to 11.0.0 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/4084 chore(ci): preserve cache pruning with setup-uv v9 by @seratch in https://github.com/openai/openai-agents-python/pull/4103 test: stabilize tracing atexit timeout coverage by @seratch in https://github.com/openai/openai-agents-python/pull/4104 Release 0.19.3 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/4169 ## New Contributors @n33levo made their first contribution in https://github.com/openai/openai-agents-python/pull/4088 @omidsaffari made their first contribution in https://github.com/openai/openai-agents-python/pull/4153 @PranavMishra28 made their first contribution in https://github.com/openai/openai-agents-python/pull/4143 * @wesleyzhangwq made their first contribution in https://github.com/openai/openai-agents-python/pull/4168 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.19.2...v0.19.3

v0.19.2

v0.19.2

1. August 2026

## What's Changed feat: expose original callable through wrapped by @seratch in https://github.com/openai/openai-agents-python/pull/4038 fix: report input guardrail results when a tripwire aborts the run by @hsusul in https://github.com/openai/openai-agents-python/pull/4071 fix: consolidate same-exception re-raises into bare raise across all modules by @AAliKKhan in https://github.com/openai/openai-agents-python/pull/4023 fix(sandbox): preserve tagged EnvValue subclasses by @seratch in https://github.com/openai/openai-agents-python/pull/4039 fix(modal): reject ephemeral paths during tar hydration by @LHMQ878 in https://github.com/openai/openai-agents-python/pull/4045 fix(mcp): redact MCP prompt and resource transport errors by @seratch in https://github.com/openai/openai-agents-python/pull/4067 fix(mcp): redact URL credentials from SDK errors by @seratch in https://github.com/openai/openai-agents-python/pull/4015 fix(mcp): redact URL credentials from tracing and tool metadata by @seratch in https://github.com/openai/openai-agents-python/pull/4020 fix(mcp): redact direct MCP cleanup transport errors by @seratch in https://github.com/openai/openai-agents-python/pull/4078 fix(mcp): clean failed servers before reconnecting by @jstar0 in https://github.com/openai/openai-agents-python/pull/3939 fix(mcp): nested MCP cleanup error redaction by @seratch in https://github.com/openai/openai-agents-python/pull/4049 fix(realtime): preserve raw server event payloads by @GautamSharma99 in https://github.com/openai/openai-agents-python/pull/4062 fix(memory): count valid SQLAlchemy and MongoDB session items for positive limits by @chinmayv095 in https://github.com/openai/openai-agents-python/pull/4032 fix(memory): count valid AdvancedSQLiteSession items for positive limits by @chinmayv095 in https://github.com/openai/openai-agents-python/pull/4031 fix(memory): count valid Redis and Dapr session items for positive limits by @chinmayv095 in https://github.com/openai/openai-agents-python/pull/4033 fix(memory): enforce closed state in Redis and Dapr sessions by @SawhneySatvik in https://github.com/openai/openai-agents-python/pull/4035 fix(extensions): keep tool parameters named like schema keywords by @Kaif10 in https://github.com/openai/openai-agents-python/pull/4036 fix(extensions): close the LiteLLM provider stream on exit by @SawhneySatvik in https://github.com/openai/openai-agents-python/pull/4066 fix(extensions): preserve completed LiteLLM streams on cleanup failure by @seratch in https://github.com/openai/openai-agents-python/pull/4077 fix(voice): propagate iterator cancellation by @hsusul in https://github.com/openai/openai-agents-python/pull/4040 fix(voice): break out of audio dispatch loop when a stream task signals session_ended by @AAliKKhan in https://github.com/openai/openai-agents-python/pull/4044 fix(voice): block audio dispatcher while idle by @GautamSharma99 in https://github.com/openai/openai-agents-python/pull/4061 fix(tracing): use monotonic export deadlines by @GautamSharma99 in https://github.com/openai/openai-agents-python/pull/4063 ### Documentation & Other Changes docs: correct the documented Chat Completions store default by @dfedoryshchev in https://github.com/openai/openai-agents-python/pull/4074 Release 0.19.2 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/4046 ## New Contributors @chinmayv095 made their first contribution in https://github.com/openai/openai-agents-python/pull/4032 @jstar0 made their first contribution in https://github.com/openai/openai-agents-python/pull/3939 @Kaif10 made their first contribution in https://github.com/openai/openai-agents-python/pull/4036 @SawhneySatvik made their first contribution in https://github.com/openai/openai-agents-python/pull/4035 @GautamSharma99 made their first contribution in https://github.com/openai/openai-agents-python/pull/4061 @LHMQ878 made their first contribution in https://github.com/openai/openai-agents-python/pull/4045 @dfedoryshchev made their first contribution in https://github.com/openai/openai-agents-python/pull/4074 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.19.1...v0.19.2

v0.19.1

v0.19.1

29. Juli 2026

## What's Changed feat(sandbox): support native host paths in path grants by @seratch in https://github.com/openai/openai-agents-python/pull/4009 fix: redact Realtime audio format diagnostics by @seratch in https://github.com/openai/openai-agents-python/pull/3992 fix: redact Blaxel unmount paths in logging by @seratch in https://github.com/openai/openai-agents-python/pull/3993 fix: retry pre-response WebSocket server errors by @dk3yyyy in https://github.com/openai/openai-agents-python/pull/3991 fix(run): cancel the parallel input-guardrail task when the model turn fails by @gunjanjaswal in https://github.com/openai/openai-agents-python/pull/3982 fix(run): allow empty streamed model input by @hsusul in https://github.com/openai/openai-agents-python/pull/3995 fix(models): route falsey mapped providers by @hsusul in https://github.com/openai/openai-agents-python/pull/3996 fix(memory): count valid SQLite session items for positive limits by @hsusul in https://github.com/openai/openai-agents-python/pull/4001 fix(run): count streamed retries when terminal usage is missing by @hsusul in https://github.com/openai/openai-agents-python/pull/4002 fix(run): cancel streamed models when input guardrails fail by @hsusul in https://github.com/openai/openai-agents-python/pull/4004 fix: preserve zero Blobfuse attribute cache timeout by @hsusul in https://github.com/openai/openai-agents-python/pull/4006 fix(tracing): enforce max_batch_size during force_flush and shutdown in BatchTraceProcessor by @hsusul in https://github.com/openai/openai-agents-python/pull/3985 fix(agent-tools): honor falsey input builders by @hsusul in https://github.com/openai/openai-agents-python/pull/4007 fix: cancel sibling enablement checks on failure by @hsusul in https://github.com/openai/openai-agents-python/pull/4005 ### Documentation & Other Changes docs: updates for 0.19.0 by @seratch in https://github.com/openai/openai-agents-python/pull/3872 docs: fix a URL in sandbox example code by @ShawnSiao in https://github.com/openai/openai-agents-python/pull/3987 docs: repair tracing integration links by @ShawnSiao in https://github.com/openai/openai-agents-python/pull/3986 docs: use decorators module throughout examples by @seratch in https://github.com/openai/openai-agents-python/pull/3946 Release 0.19.1 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/4010 ## New Contributors @dk3yyyy made their first contribution in https://github.com/openai/openai-agents-python/pull/3991 * @ShawnSiao made their first contribution in https://github.com/openai/openai-agents-python/pull/3987 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.19.0...v0.19.1

v0.19.0Breaking Change

v0.19.0

27. Juli 2026

## Key Changes This minor release does not introduce a breaking change. The minor version bump reflects a significant new OpenAI Responses feature area: Programmatic Tool Calling. ### Highlights: - Added agents.tool.ProgrammaticToolCallingTool, which lets supported OpenAI Responses models generate JavaScript to coordinate eligible tools. It supports per-tool allowed_callers, structured function-tool outputs, and integration with Runner streaming, guardrails, approvals, sessions, and RunState. See Programmatic Tool Calling for setup and constraints. - Added the public agents.decorators module and the shorter @tool alias alongside the existing function and guardrail decorators. Function tools now also support async callable objects. - SDK configuration now consistently accepts either typed settings objects or dictionaries across agents, runs, models, sessions, sandboxes, and voice pipelines, with validation for unknown settings. - Hardened error and diagnostic logging across models, tools, MCP, Realtime, sessions, sandboxes, and tracing to avoid exposing raw sensitive payloads while preserving useful debugging context. - Improved AnyLLM, LiteLLM, and Chat Completions compatibility, preserved session history across model retries, and added retries for WebSocket overloads that occur before a response starts. - Added VercelCloudBucketMountStrategy. Mounted sessions exclude bucket contents from workspace persistence and intentionally do not support dynamic mount changes or session resume. ## What's Changed feat: add Programmatic Tool Calling support by @seratch in https://github.com/openai/openai-agents-python/pull/3833 fix: remove programmatic transcripts from handoff tool filtering by @seratch in https://github.com/openai/openai-agents-python/pull/3879 fix: encode structured programmatic tool errors as JSON by @seratch in https://github.com/openai/openai-agents-python/pull/3932 feat: consistently accept typed objects and dictionaries for SDK configuration by @seratch in https://github.com/openai/openai-agents-python/pull/3917 feat: add tool decorator alias by @seratch in https://github.com/openai/openai-agents-python/pull/3920 feat(sandbox): add Vercel cloud mount strategy by @seratch in https://github.com/openai/openai-agents-python/pull/3899 fix: retry pre-response WebSocket overload errors by @seratch in https://github.com/openai/openai-agents-python/pull/3978 fix: harden sensitive runtime logging by @seratch in https://github.com/openai/openai-agents-python/pull/3938 fix: redact Realtime and RunState diagnostics by @seratch in https://github.com/openai/openai-agents-python/pull/3948 fix: stop leaking raw exceptions in model + tool error logs by @dimaosipa in https://github.com/openai/openai-agents-python/pull/3910 fix: preserve callable function tool compatibility by @seratch in https://github.com/openai/openai-agents-python/pull/3959 fix: support async callable objects as function tools by @seratch in https://github.com/openai/openai-agents-python/pull/3949 fix: partition nested handoffs history ownership by @seratch in https://github.com/openai/openai-agents-python/pull/3823 fix: summarize programmatic transcripts during nested handoffs by @seratch in https://github.com/openai/openai-agents-python/pull/3878 fix: improve AnyLLM and LiteLLM provider compatibility by @seratch in https://github.com/openai/openai-agents-python/pull/3930 fix: improve provider compatibility and preserve session history on retries by @seratch in https://github.com/openai/openai-agents-python/pull/3931 fix: fail closed on invalid callable approval arguments by @seratch in https://github.com/openai/openai-agents-python/pull/3867 fix: classify lazy skill read probes correctly by @seratch in https://github.com/openai/openai-agents-python/pull/3893 fix: reuse the verbose stdout logging handler by @seratch in https://github.com/openai/openai-agents-python/pull/3957 fix: recognize typed easy input messages in Chat Completions by @seratch in https://github.com/openai/openai-agents-python/pull/3877 fix: include device nodes when parsing ls output by @TheSaiEaranti in https://github.com/openai/openai-agents-python/pull/3951 fix: preserve *args/**kwargs docstring descriptions in tool schemas by @TheSaiEaranti in https://github.com/openai/openai-agents-python/pull/3956 fix: compare inspect sentinels by identity in function_schema by @TheSaiEaranti in https://github.com/openai/openai-agents-python/pull/3961 fix: parse ls output with SELinux security-context marker by @SHAI-Cheravgoyal in https://github.com/openai/openai-agents-python/pull/3904 fix: preserve dot-prefixed skip paths in Modal tar workspace excludes by @SHAI-Cheravgoyal in https://github.com/openai/openai-agents-python/pull/3905 fix: cleanup cancelled servers during MCP connect failure by @hsusul in https://github.com/openai/openai-agents-python/pull/3919 fix: await async callable-object dynamic instructions by @hsusul in https://github.com/openai/openai-agents-python/pull/3942 fix: await async callable-object callbacks by @seratch in https://github.com/openai/openai-agents-python/pull/3944 fix: Blaxel's shell-quote interpolated FUSE mount options by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3873 fix: escape multiline DOT names in visualization by @hsusul in https://github.com/openai/openai-agents-python/pull/3898 fix: redact raw message payload from realtime agents' conversion-failure log by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3907 fix: encode streamed float32 audio as PCM16 in voice handling by @FayezBast in https://github.com/openai/openai-agents-python/pull/3916 fix: redact MCP tool-call and formatter errors from logs by @dimaosipa in https://github.com/openai/openai-agents-python/pull/3918 fix: parse Google docstrings whose Args: follows a section body by @oldrobotdev in https://github.com/openai/openai-agents-python/pull/3862 fix: pin and verify rclone sandbox installs by @seratch in https://github.com/openai/openai-agents-python/pull/3911 fix: reject empty additionalProperties mappings in strict_schema by @hsusul in https://github.com/openai/openai-agents-python/pull/3927 fix: send logprobs=True when top_logprobs is set when using LiteLLM by @dimaosipa in https://github.com/openai/openai-agents-python/pull/3929 fix: surface content-filter refusals when buffering streamed tool calls in chat completions by @gunjanjaswal in https://github.com/openai/openai-agents-python/pull/3897 fix: reject unsupported streamed STT audio dtypes by @seratch in https://github.com/openai/openai-agents-python/pull/3950 fix: use last_agent property in pretty_print_run_result_streaming to avoid None crash by @AAliKKhan in https://github.com/openai/openai-agents-python/pull/3965 fix: use last_agent property in RunResultStreaming._create_error_details by @AAliKKhan in https://github.com/openai/openai-agents-python/pull/3967 ### Documentation & Other Changes docs: document compact tracing hierarchy by @william-xue in https://github.com/openai/openai-agents-python/pull/3839 docs: clarify sandbox support on Windows by @seratch in https://github.com/openai/openai-agents-python/pull/3866 docs: remove unnecessary RunContextWrapper wrapping in tool enabling example by @AAliKKhan in https://github.com/openai/openai-agents-python/pull/3869 docs: remove unused Runner import in tracing docs by @AAliKKhan in https://github.com/openai/openai-agents-python/pull/3881 docs: fix runnable Python examples by @seratch in https://github.com/openai/openai-agents-python/pull/3885 docs: fix missing imports in dynamic instructions example by @Syed-Umer-Ali in https://github.com/openai/openai-agents-python/pull/3895 docs: fix conversation example imports by @william-xue in https://github.com/openai/openai-agents-python/pull/3903 docs: fix API cross-reference targets by @william-xue in https://github.com/openai/openai-agents-python/pull/3913 docs: improve sandbox example runtime validation by @seratch in https://github.com/openai/openai-agents-python/pull/3880 docs: fix streamed audio API rendering by @william-xue in https://github.com/openai/openai-agents-python/pull/3940 chore: add packaged live integration and provider regression coverage by @seratch in https://github.com/openai/openai-agents-python/pull/3936 chore: update e2b versions by @matthewlouisbrockman in https://github.com/openai/openai-agents-python/pull/3871 chore: update FastAPI test dependency by @seratch in https://github.com/openai/openai-agents-python/pull/3974 chore: isolate unit tests from ambient proxy settings by @seratch in https://github.com/openai/openai-agents-python/pull/3945 Release 0.19.0 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3874 ## New Contributors @oldrobotdev made their first contribution in https://github.com/openai/openai-agents-python/pull/3862 @AAliKKhan made their first contribution in https://github.com/openai/openai-agents-python/pull/3869 @matthewlouisbrockman made their first contribution in https://github.com/openai/openai-agents-python/pull/3871 @Syed-Umer-Ali made their first contribution in https://github.com/openai/openai-agents-python/pull/3895 @hsusul made their first contribution in https://github.com/openai/openai-agents-python/pull/3898 @SHAI-Cheravgoyal made their first contribution in https://github.com/openai/openai-agents-python/pull/3904 @dimaosipa made their first contribution in https://github.com/openai/openai-agents-python/pull/3910 @FayezBast made their first contribution in https://github.com/openai/openai-agents-python/pull/3916 @gunjanjaswal made their first contribution in https://github.com/openai/openai-agents-python/pull/3897 @TheSaiEaranti made their first contribution in https://github.com/openai/openai-agents-python/pull/3951 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.18.3...v0.19.0

v0.18.3

v0.18.3

17. Juli 2026

## What's Changed feat: make task and turn tracing spans configurable by @seratch in https://github.com/openai/openai-agents-python/pull/3834 feat(realtime): track response usage in session context by @seratch in https://github.com/openai/openai-agents-python/pull/3812 fix(memory): serialize OpenAI conversation session initialization by @russeell in https://github.com/openai/openai-agents-python/pull/3821 fix(models): raise UserError for conflicting provider args instead of assert by @Dhruva-Das in https://github.com/openai/openai-agents-python/pull/3809 fix(handoffs): preserve user messages containing history wrappers by @russeell in https://github.com/openai/openai-agents-python/pull/3815 fix(computer): isolate provider instances across concurrent runs by @russeell in https://github.com/openai/openai-agents-python/pull/3843 fix(sandbox): avoid redundant E2B workspace root creation by @seratch in https://github.com/openai/openai-agents-python/pull/3845 fix: preserve streamed session input across model retries by @seratch in https://github.com/openai/openai-agents-python/pull/3857 fix: prevent stale prepared-item identity reuse by @seratch in https://github.com/openai/openai-agents-python/pull/3858 fix: AdvancedSQLiteSession clear_session and pop_item metadata leaks by @okaditya84 in https://github.com/openai/openai-agents-python/pull/3755 fix: parse Google docstrings missing the blank line before a section by @sohumt123 in https://github.com/openai/openai-agents-python/pull/3832 fix: bound $ref expansion in strict JSON schema conversion by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3838 fix: redact non-tool trace error details by @seratch in https://github.com/openai/openai-agents-python/pull/3848 ### Documentation & Other Changes docs: updates for hosted multi-agent support by @seratch in https://github.com/openai/openai-agents-python/pull/3789 docs: make UserContext example runnable in Agents documentation by @MuhammadHamidRaza in https://github.com/openai/openai-agents-python/pull/3851 chore: enable flake8-async for runtime source by @seratch in https://github.com/openai/openai-agents-python/pull/3813 Release 0.18.3 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3859 ## New Contributors @Dhruva-Das made their first contribution in https://github.com/openai/openai-agents-python/pull/3809 @russeell made their first contribution in https://github.com/openai/openai-agents-python/pull/3815 @okaditya84 made their first contribution in https://github.com/openai/openai-agents-python/pull/3755 * @sohumt123 made their first contribution in https://github.com/openai/openai-agents-python/pull/3832 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.18.2...v0.18.3

v0.18.2

v0.18.2

11. Juli 2026

## What's Changed feat: support GPT-5.6 request controls by @seratch in https://github.com/openai/openai-agents-python/pull/3794 feat: add hosted multi-agent beta support by @seratch in https://github.com/openai/openai-agents-python/pull/3788 fix(sandbox): own Daytona PTY worker tasks by @seratch in https://github.com/openai/openai-agents-python/pull/3778 fix(realtime): enqueue callback errors synchronously by @seratch in https://github.com/openai/openai-agents-python/pull/3777 fix(realtime): use monotonic playback timing by @seratch in https://github.com/openai/openai-agents-python/pull/3776 fix(sandbox): own Docker deferred cleanup tasks by @seratch in https://github.com/openai/openai-agents-python/pull/3779 fix(sandbox): own Unix PTY fd close tasks by @seratch in https://github.com/openai/openai-agents-python/pull/3780 fix(litellm): surface content-filter refusals instead of an empty turn by @seanturner83 in https://github.com/openai/openai-agents-python/pull/3769 refactor(sandbox): share core PTY output collection by @seratch in https://github.com/openai/openai-agents-python/pull/3796 refactor(sandbox): share extension PTY output collection by @seratch in https://github.com/openai/openai-agents-python/pull/3797 refactor(sandbox): share E2B rclone setup by @seratch in https://github.com/openai/openai-agents-python/pull/3798 refactor(sandbox): share Runloop rclone setup by @seratch in https://github.com/openai/openai-agents-python/pull/3799 refactor: share retry error metadata extraction by @seratch in https://github.com/openai/openai-agents-python/pull/3800 refactor: share retry-after parsing by @seratch in https://github.com/openai/openai-agents-python/pull/3801 ### Documentation & Other Changes fix: serialize model-backed rollout interruptions as dicts by @Otis0408 in https://github.com/openai/openai-agents-python/pull/3790 chore: enable G004 logging lint rule by @seratch in https://github.com/openai/openai-agents-python/pull/3802 chore: enable RUF012 for runtime source by @seratch in https://github.com/openai/openai-agents-python/pull/3803 chore: remove unused noqa directives by @seratch in https://github.com/openai/openai-agents-python/pull/3804 chore: exempt OpenAI package from dependency cooldown by @seratch in https://github.com/openai/openai-agents-python/pull/3792 Release 0.18.2 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3805 ## New Contributors @Otis0408 made their first contribution in https://github.com/openai/openai-agents-python/pull/3790 @seanturner83 made their first contribution in https://github.com/openai/openai-agents-python/pull/3769 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.18.1...v0.18.2

v0.18.1

v0.18.1

10. Juli 2026

## What's Changed feat: add GPT-5.6 model defaults and migrate examples by @seratch in https://github.com/openai/openai-agents-python/pull/3774 fix: support cache-write usage across OpenAI Python versions by @seratch in https://github.com/openai/openai-agents-python/pull/3773 fix(realtime): make session cleanup deterministic by @seratch in https://github.com/openai/openai-agents-python/pull/3767 fix: preserve nested tool state during restoration by @seratch in https://github.com/openai/openai-agents-python/pull/3753 fix: close Chat Completions streams on early exit by @fallintoplace in https://github.com/openai/openai-agents-python/pull/3689 fix(sessions): handle list content in AdvancedSQLiteSession browsing helpers by @anxkhn in https://github.com/openai/openai-agents-python/pull/3761 fix(models): accumulate streamed logprobs in place to avoid O(n^2) copies by @anxkhn in https://github.com/openai/openai-agents-python/pull/3762 fix: send logprobs=True when top_logprobs is set on Chat Completions by @winklemad in https://github.com/openai/openai-agents-python/pull/3763 ### Documentation & Other Changes docs: updates for v0.18.0 by @seratch in https://github.com/openai/openai-agents-python/pull/3741 docs(realtime): fix RealtimeRunner context docstring by @anxkhn in https://github.com/openai/openai-agents-python/pull/3748 docs: clarify agent tool state options by @william-xue in https://github.com/openai/openai-agents-python/pull/3754 test(items): document refusal None invariant by @seratch in https://github.com/openai/openai-agents-python/pull/3751 Release 0.18.1 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3775 ## New Contributors @william-xue made their first contribution in https://github.com/openai/openai-agents-python/pull/3754 * @winklemad made their first contribution in https://github.com/openai/openai-agents-python/pull/3763 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.18.0...v0.18.1

v0.18.0

v0.18.0

7. Juli 2026

## Key Changes ### RealtimeAgent's default is now gpt-realtime-2.1 Since this version, the default model for RealtimeAgents is gpt-realtime-2.1: https://developers.openai.com/api/docs/models/gpt-realtime-2.1 ## What's Changed feat: update default realtime model to gpt-realtime-2.1 by @seratch in https://github.com/openai/openai-agents-python/pull/3740 feat: add Unicode storage option to SQLAlchemySession by @seratch in https://github.com/openai/openai-agents-python/pull/3746 fix(visualization): keep fillcolor on handoff nodes by merging style attributes by @comp in https://github.com/openai/openai-agents-python/pull/3744 ### Documentation & Other Changes docs: updates for v0.17.8 release by @seratch in https://github.com/openai/openai-agents-python/pull/3737 Release 0.18.0 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3742 ## New Contributors @comp made their first contribution in https://github.com/openai/openai-agents-python/pull/3744 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.17.8...v0.18.0

v0.17.8

v0.17.8

7. Juli 2026

## What's Changed feat: add invalid final output recovery handler by @seratch in https://github.com/openai/openai-agents-python/pull/3736 fix: propagate realtime session iterator cancellation by @fallintoplace in https://github.com/openai/openai-agents-python/pull/3686 fix: redact realtime validation failure logs by @fallintoplace in https://github.com/openai/openai-agents-python/pull/3687 fix: preserve non-dict Mapping values in _to_dump_compatible by @anxkhn in https://github.com/openai/openai-agents-python/pull/3700 fix: escape quotes and backslashes in DOT names for visualization by @anxkhn in https://github.com/openai/openai-agents-python/pull/3712 fix: enforce strict Pydantic validation when strict_json_schema=True + handoffs by @Om-Borse26 in https://github.com/openai/openai-agents-python/pull/3724 fix: fix an issue with length-frame exec-stdin writes within a sandbox by @imran31415 in https://github.com/openai/openai-agents-python/pull/3719 ### Documentation & Other Changes docs: add DProvenanceKit to external tracing processors list by @Therealdk8890 in https://github.com/openai/openai-agents-python/pull/3726 docs: add sandbox examples to examples index by @saime428 in https://github.com/openai/openai-agents-python/pull/3731 test: improve coverage for stream and sandbox edge cases by @seratch in https://github.com/openai/openai-agents-python/pull/3730 chore(deps): bump astral-sh/setup-uv from 8.1.0 to 8.2.0 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/3714 chore(deps): bump actions/setup-python from 6.2.0 to 6.3.0 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/3715 chore(deps): bump actions/stale from 10.2.0 to 10.3.0 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/3716 chore(deps): bump actions/checkout from 6.0.2 to 7.0.0 by @dependabot[bot] in https://github.com/openai/openai-agents-python/pull/3717 Release 0.17.8 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3739 ## New Contributors @fallintoplace made their first contribution in https://github.com/openai/openai-agents-python/pull/3686 @anxkhn made their first contribution in https://github.com/openai/openai-agents-python/pull/3700 @Om-Borse26 made their first contribution in https://github.com/openai/openai-agents-python/pull/3724 @imran31415 made their first contribution in https://github.com/openai/openai-agents-python/pull/3719 @Therealdk8890 made their first contribution in https://github.com/openai/openai-agents-python/pull/3726 * @saime428 made their first contribution in https://github.com/openai/openai-agents-python/pull/3731 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.17.7...v0.17.8

v0.17.7

v0.17.7

24. Juni 2026

## What's Changed feat: expose configurable websocket max_size limit by @anneheartrecord in https://github.com/openai/openai-agents-python/pull/3645 feat: add buffered Chat Completions tool-call streaming by @incoffeemonster in https://github.com/openai/openai-agents-python/pull/3506 fix: reduce sandbox sink buffering and spool timeouts by @2830500285 in https://github.com/openai/openai-agents-python/pull/3642 fix: #3346 clean up branch-only messages when deleting branches by @Aphroq in https://github.com/openai/openai-agents-python/pull/3347 fix: #3348 make AdvancedSQLiteSession add_items atomic by @Aphroq in https://github.com/openai/openai-agents-python/pull/3349 fix: cancel sibling guardrail tasks when one raises by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3239 fix: skip needs_approval_checker when status resolved in _collect_runs_by_approval by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3259 fix: validate ls special permission bits by position by @a1vazovsky in https://github.com/openai/openai-agents-python/pull/3420 fix: gate remote-mount edit guidance by mode by @a1vazovsky in https://github.com/openai/openai-agents-python/pull/3423 fix: remove dependency on types-requests by @rouge8 in https://github.com/openai/openai-agents-python/pull/3509 fix: empty list/tuple tool output dropped via all([]) == True by @vidigoat in https://github.com/openai/openai-agents-python/pull/3554 fix: wake PTY output collection on process exit (E2B) by @rohitrastogi in https://github.com/openai/openai-agents-python/pull/3610 fix: avoid stale object-id dedupe in server conversation tracker by @chutch in https://github.com/openai/openai-agents-python/pull/3621 fix: report effective Blaxel timeouts by @he-yufeng in https://github.com/openai/openai-agents-python/pull/3643 fix: prevent ambiguous Realtime multi-agent tool dispatch by @mavrickdeveloper in https://github.com/openai/openai-agents-python/pull/3441 fix: add hint to duplicated MCP server tool name error message by @wustwyh in https://github.com/openai/openai-agents-python/pull/3678 fix: recursively extract HTTP errors from nested ExceptionGroups by @mshsheikh in https://github.com/openai/openai-agents-python/pull/3556 ### Documentation & Other Changes docs: #3461 changes for tool_not_found_behavior option by @seratch in https://github.com/openai/openai-agents-python/pull/3462 docs: changes for #3487 feature addition by @seratch in https://github.com/openai/openai-agents-python/pull/3488 docs: fix OpenAI capitalization in auto-generated ref titles by @atimothee in https://github.com/openai/openai-agents-python/pull/3646 docs: add SDK maintainer references and review guidance by @seratch in https://github.com/openai/openai-agents-python/pull/3676 Release 0.17.7 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3682 ## New Contributors @rouge8 made their first contribution in https://github.com/openai/openai-agents-python/pull/3509 @vidigoat made their first contribution in https://github.com/openai/openai-agents-python/pull/3554 @rohitrastogi made their first contribution in https://github.com/openai/openai-agents-python/pull/3610 @chutch made their first contribution in https://github.com/openai/openai-agents-python/pull/3621 @he-yufeng made their first contribution in https://github.com/openai/openai-agents-python/pull/3643 @anneheartrecord made their first contribution in https://github.com/openai/openai-agents-python/pull/3645 @2830500285 made their first contribution in https://github.com/openai/openai-agents-python/pull/3642 @atimothee made their first contribution in https://github.com/openai/openai-agents-python/pull/3646 @incoffeemonster made their first contribution in https://github.com/openai/openai-agents-python/pull/3506 @wustwyh made their first contribution in https://github.com/openai/openai-agents-python/pull/3678 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.17.6...v0.17.7

v0.17.6

v0.17.6

19. Juni 2026

## What's Changed feat: add pre-approval tool input guardrails by @seratch in https://github.com/openai/openai-agents-python/pull/3487 feat: add SDK-only custom data for tool outputs by @seratch in https://github.com/openai/openai-agents-python/pull/3486 fix: enforce the documented strict JSON-compatible contract for #3486 by @siddiksawani in https://github.com/openai/openai-agents-python/pull/3657 fix: suppress handoff whitespace tool-name warnings by @seratch in https://github.com/openai/openai-agents-python/pull/3652 ### Documentation & Other Changes docs: fix typo in sandbox guide by @mshsheikh in https://github.com/openai/openai-agents-python/pull/3628 Release 0.17.6 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3659 ## New Contributors * @siddiksawani made their first contribution in https://github.com/openai/openai-agents-python/pull/3657 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.17.5...v0.17.6

v0.17.5

v0.17.5

11. Juni 2026

## What's Changed fix: expose sandbox error retryability by @qiyaoq-oai in https://github.com/openai/openai-agents-python/pull/3581 fix: #3512 type tool-end hook results as object by @seratch in https://github.com/openai/openai-agents-python/pull/3518 fix: use tuple form for SpeechGroupSpanData `__slots__` by @jluocsa in https://github.com/openai/openai-agents-python/pull/3534 chore: bump Modal sandbox extra to 1.4.3 by @jdoughty04 in https://github.com/openai/openai-agents-python/pull/3538 ### Documentation & Other Changes docs: add MongoDB session example under examples/memory by @alexbevi in https://github.com/openai/openai-agents-python/pull/3036 docs: add missing space in MCP params docstrings by @jluocsa in https://github.com/openai/openai-agents-python/pull/3535 docs: fix docstring typo in stdio params env description by @mshsheikh in https://github.com/openai/openai-agents-python/pull/3557 docs: fix two docstring grammar errors in tool.py by @jluocsa in https://github.com/openai/openai-agents-python/pull/3543 docs: add Latitude to external tracing processors list by @guillemwilly in https://github.com/openai/openai-agents-python/pull/3577 docs: tweak in usage doc by @mshsheikh in https://github.com/openai/openai-agents-python/pull/3597 docs: fix string concatenation typo in agent instructions by @mshsheikh in https://github.com/openai/openai-agents-python/pull/3599 docs: capitalization fix in tracing docs by @mshsheikh in https://github.com/openai/openai-agents-python/pull/3602 docs: fix subject-verb agreement in agent loop description by @mshsheikh in https://github.com/openai/openai-agents-python/pull/3605 test: add unit tests for run_demo_loop streaming, EOF, and empty-input paths by @jluocsa in https://github.com/openai/openai-agents-python/pull/3542 test: add unit tests for _openai_retry helpers (77% -> 95% coverage) by @jluocsa in https://github.com/openai/openai-agents-python/pull/3544 Release 0.17.5 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3619 ## New Contributors @jluocsa made their first contribution in https://github.com/openai/openai-agents-python/pull/3534 @jdoughty04 made their first contribution in https://github.com/openai/openai-agents-python/pull/3538 * @guillemwilly made their first contribution in https://github.com/openai/openai-agents-python/pull/3577 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.17.4...v0.17.5

v0.17.4

v0.17.4

26. Mai 2026

## 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://github.com/openai/openai-agents-python/pull/3475 fix: add missing entries to span __slots__ by @rmotgi1227 in https://github.com/openai/openai-agents-python/pull/3483 fix: redact invalid JSON payload in ModelBehaviorError data by @LeSingh1 in https://github.com/openai/openai-agents-python/pull/3485 fix: export more tracing related functions & types from agents by @rmotgi1227 in https://github.com/openai/openai-agents-python/pull/3489 fix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem from agents by @rmotgi1227 in https://github.com/openai/openai-agents-python/pull/3490 ### Documentation & Other Changes Release 0.17.4 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3505 ## New Contributors @rmotgi1227 made their first contribution in https://github.com/openai/openai-agents-python/pull/3475 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4

v0.17.3

v0.17.3

19. Mai 2026

## 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_schema by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3382 fix: avoid mutating codex output schema input by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3385 fix: #3357 output schema names for Literal types by @Aphroq in https://github.com/openai/openai-agents-python/pull/3358 fix: skip wait_for_status when Vercel sandbox is in a terminal state by @cty-ut in https://github.com/openai/openai-agents-python/pull/3410 fix: filter hosted_tool_call types in remove_all_tools handoff filter by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3386 fix: guard None text in ItemHelpers.extract_last_content by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3394 fix: log exception when output guardrail raises instead of silently ignoring by @cty-ut in https://github.com/openai/openai-agents-python/pull/3411 fix: reject relative sandbox workspace roots by @matthewflint in https://github.com/openai/openai-agents-python/pull/3422 fix: normalize leading question marks in exposed port queries by @matthewflint in https://github.com/openai/openai-agents-python/pull/3424 fix: #3363 honor short custom voice splitter chunks by @Aphroq in https://github.com/openai/openai-agents-python/pull/3364 fix: runtime handling updates by @adrianbravo-oai @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3451 ### Documentation & Other Changes docs: add SDK review guidance by @seratch in https://github.com/openai/openai-agents-python/pull/3376 docs: mark Agent.instructions as optional by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3384 docs: translate all pages using new settings by @seratch in https://github.com/openai/openai-agents-python/pull/3392 docs: document auto_previous_response_id by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3383 docs: fix LiteLLM API reference redirect by @ynachiket in https://github.com/openai/openai-agents-python/pull/3444 docs: fix duplicated word in usaspending glossary example by @LeSingh1 in https://github.com/openai/openai-agents-python/pull/3445 chore: clean up CI jobs and update uv pin by @seratch in https://github.com/openai/openai-agents-python/pull/3400 ci: harden release tag workflow by @hintz-openai in https://github.com/openai/openai-agents-python/pull/3399 Release 0.17.3 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3417 ## New Contributors @zhoufengen made their first contribution in https://github.com/openai/openai-agents-python/pull/3375 @hintz-openai made their first contribution in https://github.com/openai/openai-agents-python/pull/3399 @cty-ut made their first contribution in https://github.com/openai/openai-agents-python/pull/3410 @ynachiket made their first contribution in https://github.com/openai/openai-agents-python/pull/3444 @LeSingh1 made their first contribution in https://github.com/openai/openai-agents-python/pull/3445 * @adrianbravo-oai made their first contribution in https://github.com/openai/openai-agents-python/pull/3451 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.17.2...v0.17.3

v0.17.2

v0.17.2

12. Mai 2026

## 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://github.com/openai/openai-agents-python/pull/3360 fix: #3361 honor session settings in AsyncSQLiteSession by @Aphroq in https://github.com/openai/openai-agents-python/pull/3362 fix: #3310 avoid empty chat tool outputs by @Aphroq in https://github.com/openai/openai-agents-python/pull/3312 ### Documentation & Other Changes docs: clarify max_delay for retries works by @seratch in https://github.com/openai/openai-agents-python/pull/3350 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3351 docs: normalize memory docstring cross-references by @seratch in https://github.com/openai/openai-agents-python/pull/3370 docs: document sandbox archive limits after #3278 release by @Aphroq in https://github.com/openai/openai-agents-python/pull/3311 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3371 Release 0.17.2 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3368 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.17.1...v0.17.2

v0.17.1

v0.17.1

11. Mai 2026

## What's Changed ### Sandboxes fix: include sandbox provider error details by @seratch in https://github.com/openai/openai-agents-python/pull/3326 fix: #3274 limit sandbox archive extraction by @Aphroq in https://github.com/openai/openai-agents-python/pull/3278 fix: #3273 validate git repo subpaths by @Aphroq in https://github.com/openai/openai-agents-python/pull/3276 fix: allow empty GitRepo subpaths as repository root by @seratch in https://github.com/openai/openai-agents-python/pull/3299 fix: preserve GitRepo root subpath aliases by @seratch in https://github.com/openai/openai-agents-python/pull/3303 ### Tracing fix: make tracing shutdown best-effort on process exit by @seratch in https://github.com/openai/openai-agents-python/pull/3343 fix: keep BatchTraceProcessor worker alive on exporter errors by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3216 fix: guard no-op tracing span IDs by @seratch in https://github.com/openai/openai-agents-python/pull/3296 ### Sessions fix: #3267 preserve required hosted tool IDs in OpenAI conversation sessions by @seratch in https://github.com/openai/openai-agents-python/pull/3341 fix: #3304 skip corrupt items during pop (sessions) by @Aphroq in https://github.com/openai/openai-agents-python/pull/3305 fix: #3306 track MongoDB metadata timestamps by @Aphroq in https://github.com/openai/openai-agents-python/pull/3307 fix: preserve created_at across writes (redis-session) by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3202 fix: skip corrupt docs in MongoDBSession.pop_item by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3247 ### Realtime Agents fix: #3333 scope Realtime tool approvals by qualified key by @seratch in https://github.com/openai/openai-agents-python/pull/3340 fix: #3286 send realtime output for unknown tool calls by @Aphroq in https://github.com/openai/openai-agents-python/pull/3287 fix: #3284 wake realtime event iterators on close by @Aphroq in https://github.com/openai/openai-agents-python/pull/3285 fix: preserve existing transcript over stale delta accumulator by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3214 fix: expose max_output_tokens on RealtimeSessionModelSettings by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3223 fix: validate RealtimeAgent fields in `__post_init__` by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3234 fix: skip invalid input_text parts in user input conversion (realtime) by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3243 fix: raise UserError for input_type without on_handoff (realtime) by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3248 fix: preserve output_audio content parts in output_item events (realtime) by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3230 fix: treat None audio.input/audio.output as unset (realtime) by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3254 fix: stop AudioInput.to_base64() from mutating caller's buffer (voice agents) by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3201 ### Other core modules fix: make chat completions response-feature validation opt-in by @seratch in https://github.com/openai/openai-agents-python/pull/3298 fix: #3275 reject chat completions server state by @Aphroq in https://github.com/openai/openai-agents-python/pull/3279 fix: #3282 reject unsupported Chat Completions reusable prompts by @Aphroq in https://github.com/openai/openai-agents-python/pull/3283 fix: #3313 align multi-choice chat streams with strict validation by @Aphroq in https://github.com/openai/openai-agents-python/pull/3314 fix: #3308 reject chat custom tool calls explicitly by @Aphroq in https://github.com/openai/openai-agents-python/pull/3309 fix: #3270 validate model retry backoff settings by @Aphroq in https://github.com/openai/openai-agents-python/pull/3272 fix: #3319 preserve nested handoff history content by @Aphroq in https://github.com/openai/openai-agents-python/pull/3320 fix: #3280 streaming guardrail exception cleanup by @Aphroq in https://github.com/openai/openai-agents-python/pull/3281 fix: #3288 normalize RunState guardrail payloads by @Aphroq in https://github.com/openai/openai-agents-python/pull/3289 fix: #3315 align generic dict output schemas by @Aphroq in https://github.com/openai/openai-agents-python/pull/3316 fix: #3317 return fresh empty strict schemas by @Aphroq in https://github.com/openai/openai-agents-python/pull/3318 fix: #781 replace assertion in handoff() with UserError by @0xSudoSSH in https://github.com/openai/openai-agents-python/pull/3339 fix: preserve failed status across apply_patch operations by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3217 fix: preserve existing request_usage_entries on Usage.add by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3213 fix: await cancelled output guardrail tasks on tripwire by @Quratulain-bilal in https://github.com/openai/openai-agents-python/pull/3187 fix: persist output_tokens_details when input details are None by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3227 fix: drop reasoning items orphaned by dropped tool calls by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3207 fix: skip CompactionItem silently in stream queue helper by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3224 fix: await on_handoff callables with async `__call__` by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3211 fix: preserve tool guardrail results across handoffs in SingleStepResult by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3237 fix: preserve last known response_id on conversation resume by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3245 fix: isolate MCP strict schema conversion from non-strict fallback by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3199 fix: exclude Computer instances from provider duck-typing by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3249 fix: skip needs_approval_checker when status already resolved by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3229 fix: export MCPToolCancellationError from top-level package by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3210 fix: preserve chained $ref during sibling-key expansion by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3205 ### Extensions fix: avoid duplicating content and signed thinking blocks across parallel tool-call splits (any-llm) by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3261 fix: avoid duplicating content and signed thinking blocks across parallel tool-call splits (litellm) by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3215 fix: #3330 handle string tool trimmer allowlists by @Aphroq in https://github.com/openai/openai-agents-python/pull/3331 fix: preserve HandoffInputData.input_items in remove_all_tools by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3253 ### Documentation & Other Changes docs: updates for v0.17.0 by @seratch in https://github.com/openai/openai-agents-python/pull/3188 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3193 docs: add dapr to durable orchestration integrations by @yaron2 in https://github.com/openai/openai-agents-python/pull/3292 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3293 docs: update MCP examples by @seratch in https://github.com/openai/openai-agents-python/pull/3342 test: guard Responses transport extra kwargs with official client by @seratch in https://github.com/openai/openai-agents-python/pull/3295 chore: improve examples auto-run coverage and artifact handling by @seratch in https://github.com/openai/openai-agents-python/pull/3328 chore: improve automated example coverage and local service handling by @seratch in https://github.com/openai/openai-agents-python/pull/3297 Release 0.17.1 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3290 ## New Contributors @yaron2 made their first contribution in https://github.com/openai/openai-agents-python/pull/3292 * @0xSudoSSH made their first contribution in https://github.com/openai/openai-agents-python/pull/3339 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.17.0...v0.17.1

v0.17.0

v0.17.0

8. Mai 2026

## Key Changes ### RealtimeAgent's default is now gpt-realtime-2 Since this version, the default model for RealtimeAgents is gpt-realtime-2: https://developers.openai.com/api/docs/models/gpt-realtime-2 ### Sandbox local source materialization change In this version, sandbox local source materialization keeps LocalFile.src and LocalDir.src within the materialization base_dir unless the source path is covered by Manifest.extra_path_grants. The base_dir is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.Expand commentComment on line R24Resolved To migrate, grant trusted host roots at the manifest level with SandboxPathGrant, preferably as read-only when the sandbox only needs to read those files: ``python from pathlib import Path from agents.sandbox import Manifest, SandboxPathGrant from agents.sandbox.entries import Dir, LocalDir # This is an absolute host path outside the SDK process base_dir. TRUSTED_DOCS_ROOT = Path("/opt/my-app/docs") manifest = Manifest( extra_path_grants=( # This host root is outside the SDK process base_dir, so the manifest must grant it. SandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True), ), entries={ # No grant is needed for local sources that stay under the SDK process base_dir. "fixtures": LocalDir(src=Path("fixtures"), description="Local test fixtures."), # This entry reads from the granted host root and copies it into the sandbox workspace. "docs": LocalDir(src=TRUSTED_DOCS_ROOT, description="Trusted local documents."), # Dir creates a sandbox workspace directory; it does not read from the host filesystem. "output": Dir(description="Generated artifacts."), }, ) ` Treat extra_path_grants` as trusted application configuration. Do not populate grants from model output or other untrusted manifest input unless your application has already approved those host paths. ## What's Changed feat: default realtime sessions to gpt-realtime-2 by @seratch in https://github.com/openai/openai-agents-python/pull/3190 fix: #3169 constrain local sandbox artifact sources to base dir by @seratch in https://github.com/openai/openai-agents-python/pull/3177 fix: Responses context-management extra_args collision by @alfozan in https://github.com/openai/openai-agents-python/pull/3185 ### Documentation & Other Changes Release 0.17.0 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3191 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.16.1...v0.17.0

v0.16.1

v0.16.1

7. Mai 2026

## 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 https://github.com/openai/openai-agents-python/pull/3173 fix: #3170 clean up git repo temp clones on failure by @Aphroq in https://github.com/openai/openai-agents-python/pull/3172 fix: #3174 count valid encrypted session items for limits by @Aphroq in https://github.com/openai/openai-agents-python/pull/3175 fix: reject non-object function tool input JSON by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3166 ### Documentation & Other Changes docs: updates for #3147 by @seratch in https://github.com/openai/openai-agents-python/pull/3148 docs: add 0.16.0 changelog by @seratch in https://github.com/openai/openai-agents-python/pull/3153 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3163 docs: document tool execution concurrency by @seratch in https://github.com/openai/openai-agents-python/pull/3164 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3165 * Release 0.16.1 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3167 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.16.0...v0.16.1

v0.16.0

v0.16.0

7. Mai 2026

## Key Changes ### Default model change In this version, the SDK default model is now gpt-5.4-mini instead of gpt-4.1. This could affect agents and runs that do not explicitly set a model. Because the new default is a GPT-5 model, implicit default model settings now include GPT-5 defaults such as reasoning.effort="none" and verbosity="low". The new default model should work better for most use cases (see the report at https://github.com/openai/openai-agents-python/pull/3147), but if you need to keep the previous default model behavior for some reasons, set a model explicitly on the agent or run config like Agent(name="Assistant", model="gpt-4.1"), or set the OPENAI_DEFAULT_MODEL environment variable. ### Disable max_turns detection This version adds a new option max_turns=None to disable the Agents SDK run turn limit while preserving the existing default of DEFAULT_MAX_TURNS (10) when max_turns is omitted. ### Tool execution concurrency This version adds a new SDK-side runtime configuration for local function tool execution concurrency: ToolExecutionConfig(max_function_tool_concurrency=...) on RunConfig, preserves default behavior when unset. The change keeps provider-side ModelSettings.parallel_tool_calls separate from SDK-side local execution scheduling. ### Server-prefixed MCP tool naming This version adds a new option include_server_in_tool_names to MCPConfig. When it is set to True, the SDK includes the MCP server name in the tool name to prevent tool name conflicts with other MCP servers. ``python agent = Agent( name="Assistant", mcp_servers=[my_mcp_server], mcp_config={"include_server_in_tool_names": True}, ) `` ## What's Changed feat: switch the default model to a newer mini model (affecting only when a model is unset) by @seratch in https://github.com/openai/openai-agents-python/pull/3147 feat: allow disabling max_turns with None by @seratch in https://github.com/openai/openai-agents-python/pull/3132 feat: #1167 add opt-in server-prefixed MCP tool names by @mavrickdeveloper in https://github.com/openai/openai-agents-python/pull/3019 feat: #1859 add runtime function tool concurrency config by @seratch in https://github.com/openai/openai-agents-python/pull/3152 fix: #3104 stabilize chat completions tool call output indexes by @seratch in https://github.com/openai/openai-agents-python/pull/3161 fix: reject external symlink targets during hydrate by @Aphroq in https://github.com/openai/openai-agents-python/pull/3094 fix: make Permissions hashable to match User and Group by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3154 ### Documentation & Other Changes docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3151 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3160 docs: realtime guardrail fallback behavior by @mindbomber in https://github.com/openai/openai-agents-python/pull/3157 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3162 Release 0.16.0 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3150 ## New Contributors @mavrickdeveloper made their first contribution in https://github.com/openai/openai-agents-python/pull/3019 @mindbomber made their first contribution in https://github.com/openai/openai-agents-python/pull/3157 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.15.3...v0.16.0

v0.15.3

v0.15.3

6. Mai 2026

## What's Changed fix(mcp): avoid mutating tool input schemas by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3134 fix(mcp): reject non-object tool input JSON by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3135 fix(mcp): make duplicate tool errors deterministic by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3136 fix: tolerate audio deltas before audio format negotiation in ModelAu… by @Quratulain-bilal in https://github.com/openai/openai-agents-python/pull/3141 ### Documentation & Other Changes docs: updates for #3128 by @seratch in https://github.com/openai/openai-agents-python/pull/3129 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3131 test: cover overlapping tool response creates by @adityasingh2400 in https://github.com/openai/openai-agents-python/pull/3140 Release 0.15.3 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3149 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.15.2...v0.15.3

v0.15.2

v0.15.2

6. Mai 2026

## What's Changed feat: add context management model setting by @seratch in https://github.com/openai/openai-agents-python/pull/3128 fix: #3123 avoid replaying assistant conversation item IDs for OpenAIConversationsSession by @seratch in https://github.com/openai/openai-agents-python/pull/3127 fix: redact function tool trace span errors by @Aphroq in https://github.com/openai/openai-agents-python/pull/3111 fix: redact MCP invalid JSON errors when tool logging is disabled by @Aphroq in https://github.com/openai/openai-agents-python/pull/3088 fix: reject failed responses stream terminals by @Aphroq in https://github.com/openai/openai-agents-python/pull/3107 fix: only rewind matching session suffixes by @Aphroq in https://github.com/openai/openai-agents-python/pull/3090 fix: reject string-like shell commands by @Aphroq in https://github.com/openai/openai-agents-python/pull/3092 fix: filter custom_tool_call types in remove_all_tools handoff filter by @Quratulain-bilal in https://github.com/openai/openai-agents-python/pull/3095 fix: make ToolContext hashable to match RunContextWrapper by @ioleksiuk in https://github.com/openai/openai-agents-python/pull/3097 fix: block disabled function tools before execution by @Aphroq in https://github.com/openai/openai-agents-python/pull/3118 fix: isolate merged MCP tool metadata by @felmonon in https://github.com/openai/openai-agents-python/pull/3114 ### Documentation & Other Changes docs: updates for #3080 by @seratch in https://github.com/openai/openai-agents-python/pull/3081 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3084 test: improve coverage and organize test layout by @seratch in https://github.com/openai/openai-agents-python/pull/3085 test: cover realtime tool timeout behaviors in realtime session by @Aphroq in https://github.com/openai/openai-agents-python/pull/3076 test: add realtime tool output serialization edge cases by @Aphroq in https://github.com/openai/openai-agents-python/pull/3077 test: cover on_handoff, on_tool_start, on_tool_end on RunHooks by @Quratulain-bilal in https://github.com/openai/openai-agents-python/pull/3098 test: cover real Handoff object branch in visualization by @Quratulain-bilal in https://github.com/openai/openai-agents-python/pull/3100 test: add direct unit tests for _tool_identity helpers by @Quratulain-bilal in https://github.com/openai/openai-agents-python/pull/3101 test: add direct unit tests for _mcp_tool_metadata helpers by @Quratulain-bilal in https://github.com/openai/openai-agents-python/pull/3102 Release 0.15.2 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3099 ## New Contributors @ioleksiuk made their first contribution in https://github.com/openai/openai-agents-python/pull/3097 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.15.1...v0.15.2

v0.15.1

v0.15.1

2. Mai 2026

## 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://github.com/openai/openai-agents-python/pull/3058 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3064 docs: improve quickstart documentation for Windows OS users by @seratch in https://github.com/openai/openai-agents-python/pull/3071 docs: update translated document pages by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3072 test: cover guardrail name fallback to function __name__ by @Quratulain-bilal in https://github.com/openai/openai-agents-python/pull/3073 chore: harden Dapr Redis integration fixture loading by @Aphroq in https://github.com/openai/openai-agents-python/pull/3078 Release 0.15.1 by @github-actions[bot] in https://github.com/openai/openai-agents-python/pull/3083 ## New Contributors * @Aphroq made their first contribution in https://github.com/openai/openai-agents-python/pull/3078 Full Changelog: https://github.com/openai/openai-agents-python/compare/v0.15.0...v0.15.1

Zeige 30 von 60