OpenAI Python SDK v3.23.0 Released: Enhanced Agents Capabilities

OpenAI Python SDK v3.23.0 boosts Agent workflow support and fixes streaming/WebSocket stability issues.
OpenAI's Python SDK v3.23.0 focuses on Agents capabilities, adding typed session stream return values, file staging and artifact downloads during Agent execution, exposing app business actions as Agent-callable tools (beta), and new API-level session traces with Realtime translation support. Stability fixes address duplicate requests on reconnect, WebSocket endpoint parameter loss, and file timeout logic now uses a monotonic clock to prevent system clock interference. Engineering dependencies including pyright and CodeQL were also updated. Developers using streaming or WebSocket connections should prioritize upgrading.
OpenAI's official Python SDK has received a v3.23.0 update. This release centers on enhancements to Agents-related capabilities, while also fixing several issues related to streaming responses and WebSocket reconnections. For developers building AI applications, these changes introduce new features as well as improvements to production stability.

New Features: Agents Take Center Stage
The changelog makes it clear that this release is primarily focused on the Agents module. New capabilities include:
- Typed results from session streams (#4007): Developers using session streams can now receive type-annotated return values, enabling better IDE autocomplete and type checking support while reducing runtime errors.
- File staging and turn artifact downloads (#4009): Supports staging files during Agent execution and downloading artifacts produced at each turn, making it easier to manage intermediate results in multi-step tasks.
- Exposing typed app actions as Agent tools (#4006, beta): This capability allows an application's own business actions to be registered as tools that Agents can call, expanding the ways intelligent agents can integrate with existing systems.
- Collecting final output from beta Agents streams (157ac4c): Further refines the pipeline for retrieving final results in streaming scenarios.
At the API level, session traces and Realtime translation (#4001) have been added, providing support for real-time interaction scenarios and debug observability. Taken together, these features point in one direction: OpenAI is evolving the SDK from a simple model-calling library into a framework that supports complex Agent workflows.
In the OpenAI SDK context, an Agent is an AI entity capable of autonomously planning and calling tools to execute multi-step tasks — distinct from a standard single-turn model call. The "exposing typed app actions as Agent tools" feature (#4006) essentially allows developers to register their own business functions (e.g., querying a database, sending notifications) as tools that an Agent can invoke. During reasoning, the Agent autonomously decides when to call these tools. This pattern is commonly known as Function Calling or Tool Use, and is the core mechanism for building agentic workflows. Session streams refer to the channel through which an Agent maintains contextual state across multiple conversation turns and returns intermediate results in a streaming fashion. Typed return values allow developers to work directly with structured data without manually parsing raw JSON.
Stability Fixes: Focus on Streaming and Reconnection
Beyond new features, v3.23.0 fixes a number of reliability issues, most of which relate to long-lived connections and streaming responses.
In the responses module, two key fixes were made for reconnection scenarios: avoiding replaying non-deterministic typed sends on reconnect (#4011), and respecting send queue limits during reconnection (#4000). These changes effectively reduce duplicate requests and state corruption caused by network instability.
At the API level, several details were fixed: preserving original image detail in Chat Completions (#4005), correcting the endpoint error in the eval run cancellation interface (#4003), and preserving endpoint paths and query parameters in WebSocket connections (#3999). Additionally, file processing timeouts were updated to use a monotonic clock (#3748), preventing system time adjustments from affecting timeout logic — a robustness detail that's easy to overlook but quite important in production environments.
A monotonic clock is a time source provided by the operating system that only ever increases — it is unaffected by system clock adjustments such as NTP synchronization, daylight saving time changes, or manual time resets. By contrast, a standard "wall clock" can move backwards, causing computed time differences to become negative and rendering timeout logic unreliable — manifesting as timeouts that never fire despite long waits, or timeouts that trigger instantly. Switching to a monotonic clock for network I/O and file transfer timeout control is standard engineering practice. The corresponding Python API is
time.monotonic().
Dependencies and Engineering Maintenance
This release also includes routine engineering maintenance. On the dependency side, pyright was upgraded (1.1.413 → 1.1.414) for type checking, astral-sh/setup-uv was updated (10.0.1 → 10.1.0), and CodeQL actions were bumped to 4.38.1. Chore changes such as preserving WebRTC Live session transport types (#4002) reflect continued support for real-time audio/video interaction scenarios.
While these updates may seem minor, they reflect the SDK maintenance team's ongoing investment in type safety and security scanning (CodeQL), which positively impacts the health of the dependency ecosystem and overall code quality.
What This Means for Developers
Overall, v3.23.0 is an incremental update focused on Agent scenarios and stability rather than a sweeping overhaul. If you're building applications with streaming responses or WebSocket real-time connections, upgrading promptly is recommended to benefit from improved reconnection reliability. For teams focused on agent development, the newly added typed session streams, tool exposure mechanisms, and session tracing capabilities are worth evaluating in your next technical review.
Upgrading is straightforward — just update to the latest version via pip. Since this release includes Agent features still in beta, thorough testing is still recommended before deploying to production.
Related articles

Chain of Thought Isn't Just for AI: How Humans Can Use CoT to Improve Thinking Quality
Chain of Thought isn't just a prompt trick for large models. Starting from a Hacker News discussion, this article analyzes why CoT works for human thinking too, breaks down actionable ways to transfer it, and highlights the key differences between human CoT and machine CoT.
Cloudflare Teams Up with OpenAI: Closi…
Cloudflare Teams Up with OpenAI: Closing the Loop from Vulnerability Discovery to Defense with AI
Cloudflare uses OpenAI Daybreak to investigate security vulnerabilities and generate reviewable remediation plans, while developers use Codex to boost coding efficiency and quality.

Orca Multi-Agent Orchestration in Practice: A Guide to Parallel Collaboration with Claude and Codex
Orca is Stable AI's free open-source agent workbench supporting 34 agents like Claude Code and Codex in parallel. Learn its Git worktree isolation, multi-model orchestration, and mobile management.