Releases: openai/openai-agents-python
v0.2.6
What's Changed
- feat: support agent output guardrails in realtime by @jhills20 in #1381
- Enhanced FAQ lookup tool in examples/customer_service app by @HasnainCodeHub in #1063
- Improve accuracy of guardrails and lifecycle hook descriptions by @DanielHashmi in #1386
- Update all translated document pages by @github-actions[bot] in #1413
- Add logprobs to ModelSettings by @zain in #971
- Add streaming function call arguments example by @devtalker in #1052
- Updated the default values for two parameters in the ModelSettings class to align with their documented behavior: by @rudra-attri in #1392
- chore(deps): Bump "openai>=1.99.6,<2" by @seratch in #1415
- v0.2.6 by @rm-openai in #1423
New Contributors
- @HasnainCodeHub made their first contribution in #1063
- @zain made their first contribution in #971
- @rudra-attri made their first contribution in #1392
Full Changelog: v0.2.5...v0.2.6
v0.2.5
What's Changed
- Fix tag errors in sessions document page by @seratch in #1307
- Update all translated document pages by @github-actions[bot] in #1308
- Add temporal demo to docs by @rm-openai in #1310
- Fix #1238 by enhancing HandoffInputData and enable passing async functions by @seratch in #1302
- Add support to realtime API for setting "speed" of the models responses by @sect2k in #1309
- Update all translated document pages by @github-actions[bot] in #1313
- Examples: use agent to interact with Remote PDF Documents by @princeaden1 in #1319
- Enhance exception guide in docs by @MuhammadHamidRaza in #1321
- Update all translated document pages by @github-actions[bot] in #1322
- Realtime: make example customizable: by @rm-openai in #1332
- Export MultiProvider in public API (Fix #1325) by @kobol in #1326
- Add tracing guide for non-OpenAI LLMs in docs/tracing.md by @UmmeHabiba1312 in #1329
- Update all translated document pages by @github-actions[bot] in #1336
- docs: Clarify and enhance run_demo_loop utility documentation for beginners by @UmmeHabiba1312 in #1330
- Fix set_api_key breaking cached property mechanism by @DanielHashmi in #1339
- Update all translated document pages by @github-actions[bot] in #1341
- Handle processor exceptions and fix tracing log formatting by @mshsheikh in #1292
- Fix(mcp): Unreachable structured content branch in invoke_mcp_tool by @Kunmeer-SyedMohamedHyder in #1250
- Feat: separate tool_call_item and tool_call_output_item in stream events by @gdisk in #974
- Clarify shallow-copy behavior of tools and handoffs in Agent.clone() by @abdul-kabir-jawed in #1296
- Fix #1277 missing StopAtTools and ToolsToFinalOutputFunction in agents module by @seratch in #1278
- Fix #980 Chat Completions: fails with function name for tool_choice parameter w/ streaming enabled by @seratch in #1206
- Fix type annotation and clarify tool behavior docs by @mshsheikh in #1355
- Fix style and wording issues in handoffs.py by @mshsheikh in #1356
- Fix docstring formatting and add safe check for empty message content by @mshsheikh in #1360
- Add functionality to update agent during realtime session by @marysha-openai in #1366
- feat(viz): draw MCP servers by @aaron-ang in #1368
- Update all translated document pages by @github-actions[bot] in #1369
- Realtime: fix interrupt logic by @rm-openai in #1370
- Realtime: send session update before tool response by @rm-openai in #1388
- v0.2.5 by @rm-openai in #1398
New Contributors
- @sect2k made their first contribution in #1309
- @princeaden1 made their first contribution in #1319
- @UmmeHabiba1312 made their first contribution in #1329
- @Kunmeer-SyedMohamedHyder made their first contribution in #1250
- @gdisk made their first contribution in #974
- @abdul-kabir-jawed made their first contribution in #1296
- @marysha-openai made their first contribution in #1366
- @aaron-ang made their first contribution in #1368
Full Changelog: v0.2.4...v0.2.5
v0.2.4
What's Changed
- Add automation script to generate mkdocstrings files by @seratch in #1048
- Set up codex for issues and PRs by @rm-openai in #1214
- Use real codex action by @rm-openai in #1217
- Update codex action to use repo syntax by @rm-openai in #1218
- Fixes two issues in the tracing documentation by @DanielHashmi in #1212
- Update all translated document pages by @github-actions[bot] in #1221
- Fix RealtimeModel reference by @rm-openai in #1215
- Adding docstring to get_weather tool by @mutahirshah11 in #1231
- Update all translated document pages by @github-actions[bot] in #1232
- Add LiteLLM to acknowledgements section by @colesmcintosh in #1240
- [Bugfix] Fix wrong imports in examples by @mdagost in #1241
- Realtime: send audio item/content index by @rm-openai in #1235
- Fix #1227 Chat Completions model fails to handle streaming with openai 1.97.1+ by @seratch in #1246
- Make Trace class inherit from abc.ABC for proper abstract base class behavior by @DanielHashmi in #1233
- docs: add LangDB AI Gateway as a tracing provider by @MrunmayS in #1224
- Update all translated document pages by @github-actions[bot] in #1251
- Fix type placeholder convention by @mshsheikh in #1259
- Tweak on guardrail docstrings by @mshsheikh in #1260
- Consistently use "Python" in docstrings by @mshsheikh in #1261
- gpt 4.5-preview is removed, use gpt-4.1 by @jssmith in #1266
- refactor: remove inherited method from Agent class by @windsornguyen in #1267
- Fix etc. punctuation by @mshsheikh in #1268
- fix: enforce min trigger size=1 to prevent immediate exports by @mshsheikh in #1270
- Fix documentation typo and trailing comma in exporters by @mshsheikh in #1272
- docs: remove non existent even_if_trace_running mention from trace docstring by @mshsheikh in #1273
- fix: convert litellm response with reasoning content to openai message by @zkllll2002 in #1098
- docs: fix UserContext example by @kankute-sameer in #1280
- Fix _export_batches docstring to remove incorrect "threshold" reference by @DanielHashmi in #1287
- Update all translated document pages by @github-actions[bot] in #1289
- examples: minor tweak on llm_as_a_judge example by @mshsheikh in #1284
- Enhance Tool Behavior Documentation for Developer Clarity With Examples by @MuhammadHamidRaza in #1286
- Update all translated document pages by @github-actions[bot] in #1291
- Realtime: enable a playback tracker by @rm-openai in #1242
- Realtime: only cancel response if necessary by @rm-openai in #1243
- Realtime: Twilio example by @rm-openai in #1216
- Realtime: forward all raw model events by @rm-openai in #1252
- v0.2.4 by @rm-openai in #1301
New Contributors
- @mutahirshah11 made their first contribution in #1231
- @colesmcintosh made their first contribution in #1240
- @mdagost made their first contribution in #1241
- @MrunmayS made their first contribution in #1224
- @jssmith made their first contribution in #1266
- @windsornguyen made their first contribution in #1267
- @zkllll2002 made their first contribution in #1098
- @kankute-sameer made their first contribution in #1280
- @MuhammadHamidRaza made their first contribution in #1286
Full Changelog: v0.2.3...v0.2.4
v0.2.3
What's Changed
- [realtime] Add direct access to model layer from session by @rm-openai in #1172
- Update all translated document pages by @github-actions[bot] in #1173
- Fix spelling, grammar, and minor formatting issues in running agents documentation by @mshsheikh in #1128
- fix: ensure ResponseUsage token fields are int, not None (fixes #1179) by @kobol in #1181
- Add missing guardrail exception import to quickstart by @slubbers-openai in #1161
- fix: fallback to function name for unnamed output_guardrail decorators by @romankhan26 in #1133
- Mark some dataclasses as pydantic dataclasses by @tconley1428 in #1131
- fix: Apply strict JSON schema validation in FunctionTool constructor by @habema in #1041
- Fix image_generator example error on Windows OS by @seratch in #1180
- Update all translated document pages by @github-actions[bot] in #1184
- Realtime: add user agent header by @rm-openai in #1185
- Realtime: make sure we use the initial model settings by @rm-openai in #1198
- v0.2.3 by @rm-openai in #1201
New Contributors
- @github-actions[bot] made their first contribution in #1173
- @kobol made their first contribution in #1181
- @slubbers-openai made their first contribution in #1161
- @romankhan26 made their first contribution in #1133
- @habema made their first contribution in #1041
Full Changelog: v0.2.2...v0.2.3
v0.2.2
What's Changed
- Add a new GH Actions job to automatically update translated document pagse by @seratch in #598
- Adjust #598 to only create a PR rather than pushing changes to main branch by @seratch in #1162
- Realtime: only update model settings from session by @rm-openai in #1169
- v0.2.2 by @rm-openai in #1170
Full Changelog: v0.2.1...v0.2.2
v0.2.1
Key changes
- Realtime agents are now available. Note that this is in Beta and may have bugs, please report them!
- Support for
structuredContent
in MCP tool results.
What's Changed
- Realtime: use SDK types for all messages by @rm-openai in #1134
- Realtime: introduce a demo without a UI by @rm-openai in #1135
- Realtime: handoffs by @rm-openai in #1139
- Realtime: move demo audio to separate thread by @rm-openai in #1141
- MCP: add support for tool_result.structuredContent by @rm-openai in #1150
- Correct error message for invalid output types with strict JSON schema by @DanielHashmi in #1101
- Add Streaming of Function Call Arguments to Chat Completions by @devtalker in #999
- Empty mcp tool result error by @thoo in #1142
- Unbreak tests by @rm-openai in #1157
- Realtime: web demo by @rm-openai in #1149
- Realtime docs by @rm-openai in #1153
- v0.2.1 by @rm-openai in #1151
Full Changelog: v0.2.0...v0.2.1
v0.2.0
Please note that this version includes a small breaking change (breaks Agent
into AgentBase
+ Agent
), hence the minor version bump. See https://openai.github.io/openai-agents-python/release/ for the breaking change changelog.
Key changes include:
- Support for
Sessions
, a way to manage conversation sessions. - Beta support for Realtime agents (likely buggy, and we are evolving/fixing it as we speak)
What's Changed
- docs: mention 'name' is required in Agent constructor . fix: mention 'name' as required in Agent init doc by @maneeshanif in #1033
- Fix agent lifecycle example output to reflect correct hook execution order by @DanielHashmi in #1015
- Support mcp prompts by @thoo in #1010
- Add on_start support to VoiceWorkflowBase and VoicePipeline by @vrtnis in #922
- Add Makefile check rule to run all the linters and checkers by @ant31 in #1038
- Support for file_input content (#fix 893) by @ant31 in #1009
- description_override is not properly used for function_schema.description by @HafizFasih in #1000
- avoid concat tool call delta id by @DeoLeung in #990
- Fix #976 MCP filtering, make agent and run ctx optional by @njbrake in #977
- Add Sessions for Automatic Conversation History Management by @knowsuchagency in #752
- Updated llm_as_a_judge.py by @zaidrj in #1055
- [1/n] Break Agent into AgentBase+Agent by @rm-openai in #1068
- [2/n] Introduce RealtimeAgent by @rm-openai in #1069
- [3/n] Config and items for realtime by @rm-openai in #1070
- [4/n] Transport interface + events by @rm-openai in #1071
- [5/n] OpenAI realtime transport impl by @rm-openai in #1072
- [6/n] RealtimeSession + events by @rm-openai in #1073
- [7/n] Demo for realtime by @rm-openai in #1074
- Fix typo in Evaluator Instructions (capitalization of "After 5 attemp… by @mshsheikh in #1067
- [8/n] Make realtime more like the rest of agents sdk by @rm-openai in #1076
- Tests for realtime runner by @rm-openai in #1079
- Tests for realtime session by @rm-openai in #1080
- Add tests for openai realtime model by @rm-openai in #1081
- Fix #968 by upgrading openai package to the latest by @seratch in #1034
- Realtime guardrail support by @rm-openai in #1082
- Realtime tracing by @rm-openai in #1084
- enhancement: Add tool_name to ToolContext to support shared tool handlers by @vrtnis in #1043
- Fix incorrect comment order when popping session items by @MuhammadHassaanArain in #1086
- Back out "enhancement: Add tool_name to ToolContext to support shared tool handlers (#1043)" by @rm-openai in #1105
- Realtime: run guardrails without blockign event loop by @rm-openai in #1104
- Run make format by @rm-openai in #1106
- Realtime: forward exceptions from transport layer by @rm-openai in #1107
- Realtime: update model to have a single send_event method by @rm-openai in #1111
- Realtime: send session.update event at connection/handoffs by @rm-openai in #1112
- add numpy dev dependency by @jhills20 in #1117
- feat(function_schema): Add support for pydantic
Field
annotations in tool arguments (for tools decorated with@function_schema
) by @georg-wolflein in #1124 - Fix typos and update async for loop variable by @sarmadalikhanofficial in #1122
- Realtime: export everything by @rm-openai in #1118
- Update examples docs with realtime section by @jhills20 in #1113
- Retry: Add tool_name to ToolContext for generic tool handlers by @vrtnis in #1110
- update-input-guardrail-name by @Quratulain-bilal in #1053
- Realtime: fix item parsing by @rm-openai in #1119
New Contributors
- @maneeshanif made their first contribution in #1033
- @thoo made their first contribution in #1010
- @vrtnis made their first contribution in #922
- @ant31 made their first contribution in #1038
- @HafizFasih made their first contribution in #1000
- @DeoLeung made their first contribution in #990
- @knowsuchagency made their first contribution in #752
- @zaidrj made their first contribution in #1055
- @mshsheikh made their first contribution in #1067
- @MuhammadHassaanArain made their first contribution in #1086
- @georg-wolflein made their first contribution in #1124
- @sarmadalikhanofficial made their first contribution in #1122
- @Quratulain-bilal made their first contribution in #1053
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Please note that this version includes a small breaking change to MCP servers, hence the minor version bump. See https://openai.github.io/openai-agents-python/release/ for the breaking change changelog.
What's Changed
- Add is_enabled to handoffs by @rm-openai in #925
- Removed lines to avoid duplicate output in REPL utility by @DanieleMorotti in #928
- Bugfix | Fixed a bug when calling reasoning models with
store=False
by @niv-hertz in #920 - Point CLAUDE.md to AGENTS.md by @rm-openai in #930
- Fix #890 by adjusting the guardrail document page by @seratch in #903
- Add exempt-issue-labels to the issue triage GH Action job by @seratch in #936
- Remove duplicate entry from
__init__.py
by @Lightblues in #897 - Fix #604 Chat Completion model raises runtime error when response.choices is empty by @seratch in #935
- Fix #892 by adding proper tool description in context.md by @Abbas-Asad in #937
- Duplicate Classifier in pyproject.toml by @DanielHashmi in #951
- fix: add ensure_ascii=False to json.dumps for correct Unicode output by @KatHaruto in #639
- Add uv as an alternative Python environment setup option for issue #884 by @Sucran in #909
- Fix and Document
parallel_tool_calls
Attribute in ModelSettings by @Rehan-Ul-Haq in #763 - replace .py file with .ipynb for Jupyter example by @ccmien in #262
- feat: add MCP tool filtering support by @devtalker in #861
- Tweak in pyproject.toml by @seratch in #952
- Fix incorrect argument description in
on_trace_end
docstring by @shirazkk in #958 - Fix #944 by updating the models document page to cover extra_args by @seratch in #950
- Annotating the openai.Omit type so that ModelSettings can be serialized by pydantic by @tconley1428 in #938
- Import Path Inconsistency by @DanielHashmi in #960
- Add reasoning content - fix on #494 by @axion66 in #871
- Add safety check handling for ComputerTool by @rm-openai in #923
- v0.1.0 by @rm-openai in #963
New Contributors
- @Lightblues made their first contribution in #897
- @Abbas-Asad made their first contribution in #937
- @DanielHashmi made their first contribution in #951
- @KatHaruto made their first contribution in #639
- @Sucran made their first contribution in #909
- @devtalker made their first contribution in #861
- @shirazkk made their first contribution in #958
- @tconley1428 made their first contribution in #938
- @axion66 made their first contribution in #871
Full Changelog: v0.0.19...v0.1.0
v0.0.19
What's Changed
- Make Runner an abstract base class by @pakrym-oai in #720
- Prepare 0.0.19 release by @pakrym-oai in #895
Full Changelog: v0.0.18...v0.0.19
v0.0.18
Key changes
- Added support for dynamic prompt templates via the OpenAI Prompts feature
- REPL support
- Bug fixes
What's Changed
- Add REPL run_demo_loop helper by @rm-openai in #811
- Crosslink to js/ts by @rm-openai in #815
- Add release documentation by @rm-openai in #814
- Fix handoff transfer message JSON by @jhills20 in #818
- docs: custom output extraction by @jleguina in #817
- Added support for passing tool_call_id via the RunContextWrapper by @niv-hertz in #766
- Allow arbitrary kwargs in model by @rm-openai in #842
- Fix function_schema name override bug by @rm-openai in #872
- adopted float instead of timedelta for timeout parameters by @DanieleMorotti in #874
- Prompts support by @rm-openai in #876
- v0.0.18 by @rm-openai in #878
New Contributors
- @jleguina made their first contribution in #817
- @niv-hertz made their first contribution in #766
Full Changelog: v0.0.17...v0.0.18