ReleaseOpenAIOpenAIpublished Jul 27, 2026seen 10h

openai/openai-agents-python v0.19.0

openai/openai-agents-python

Open original ↗

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-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...

Excerpt shown — open the source for the full document.