openai/openai-agents-python v0.19.0
openai/openai-agents-python
Captured source
source ↗published Jul 27, 2026seen 10hcaptured 10hhttp 200method plain
v0.19.0
Repository: openai/openai-agents-python
Tag: v0.19.0
Published: 2026-07-27T04:10:05Z
Prerelease: no
Release notes:
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-toolallowed_callers, structured function-tool outputs, and integration with Runner streaming, guardrails, approvals, sessions, andRunState. See Programmatic Tool Calling for setup and constraints. - Added the public
agents.decoratorsmodule and the shorter@toolalias 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...
Excerpt shown — open the source for the full document.