python OpenAI Agents SDK (Python) Releases · · 0.19.0

OpenAI Agents Python: Programmatic Tool Calling and SDK Enhancements

sdkaimediapython-agentic
feature patch

This release introduces programmatic tool calling, allowing OpenAI models to generate JavaScript for tool coordination. The update also standardizes SDK configuration, enhances error logging for security, and improves compatibility with various LLM providers. These changes benefit developers integrating OpenAI agents into applications, providing more control and robustness.

  • add Programmatic Tool Calling support by @seratch in https://github.com/openai/openai-agents-python/pull/3833
  • 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
  • remove programmatic transcripts from handoff tool filtering by @seratch in https://github.com/openai/openai-agents-python/pull/3879
  • encode structured programmatic tool errors as JSON by @seratch in https://github.com/openai/openai-agents-python/pull/3932
Features (7)
  • 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

  • Added VercelCloudBucketMountStrategy. Mounted sessions exclude bucket contents from workspace persistence and intentionally do not support dynamic mount changes or session resume

  • feat add Programmatic Tool Calling support by @seratch in https://github.com/openai/openai-agents-python/pull/3833
  • 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
Enhancements (1)
  • 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

Fixes (37)
  • 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
  • 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

Maintenance (15)
  • 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
Read the original announcement →

https://github.com/openai/openai-agents-python/releases/tag/v0.19.0

Related releases