2.7.0 (2026-10-06)
Features Added
- Browser automation graduated to general availability. Added
BrowserAutomationTooland
BrowserAutomationToolboxToolwith thebrowser_automationdiscriminator, plus
ToolboxToolType.BROWSER_AUTOMATION. The existingBrowserAutomationPreviewTooland
BrowserAutomationPreviewToolboxToolremain available. - Added
estimateOptimizationJob,listOptimizationCandidates,getOptimizationCandidate, and
promoteOptimizationCandidatetoAgentsClientandAgentsAsyncClient, with corresponding protocol methods.
Estimates expose call-count and cost bands by stage; candidate listing supports pagination and optional mutation
expansion throughAgentOptimizationCandidateExpand. - Added typed agent-optimization configuration for baseline instructions, models, skills, and OpenAI function tools;
model search spaces; evaluator initialization parameters; training and validation evaluation sets; and concurrent
agent-run limits.AgentOptimizationConfigurationsupports agent optimization, while
PromptOptimizationConfigurationsupports prompt optimization with steering-prompt context. - Added target-completion and user-conversation-simulation evaluation sets with inline or registered-dataset sources.
UserConversationSimulationConfigurationsupports turn limits, conversation repetitions, audio effects, and user
interruption behavior.EvaluationModelConfigurationsupports text and voice model selection and
ModelSamplingParameters, including aLongcompletion-token limit. - Added
FunctionTool.setAsync(...)andCustomToolParameter.setAsync(...)to configure asynchronous tool execution. - Added
ImageGenToolModelvalues forgpt-image-2,gpt-image-2.5-sunburst, andgpt-image-2.5-flare, including
their dated model versions. - Added
ApiError.getMisalignment()to expose structured misalignment details using the OpenAI
ErrorObject.Misalignmentmodel. - Added
VoiceAgentWebSocketConnectionOptions.setTransport(...)andgetTransport()to select
VoiceAgentTransport.WEBSOCKET(the default) orVoiceAgentTransport.WEBRTC. WebRTC mode uses the WebSocket for
signaling; the SDK does not implement a WebRTC peer connection or media transport.
Breaking Changes
- Moved agent-optimization job operations from
BetaAgentsClient/BetaAgentsAsyncClientto
AgentsClient/AgentsAsyncClient. Optimization no longer requires theAgentsOptimization=V2Previewheader.
BetaAgentsClientandBetaAgentsAsyncClientretain preview agent-generation operations. - Replaced the no-argument
AgentOptimizationJobconstructor andgetInputs()/setInputs(...)with
AgentOptimizationJob(AgentOptimizationModelConfiguration, AgentOptimizationConfigurationBase)and top-level
configuration properties. UsesetTargetConfiguration(...)with
AgentOptimizationFoundryAgentTargetConfigurationto identify a registered Foundry agent. - Replaced the old optimization input hierarchy:
AgentOptimizationJobInputs,AgentOptimizationOptions,
OptimizedAgentIdentifier,AgentOptimizationDatasetInput,AgentOptimizationDatasetInputType,
AgentOptimizationInlineDatasetInput,AgentOptimizationReferenceDatasetInput,AgentOptimizationDatasetItem,
AgentOptimizationDatasetCriterion, andEvaluationLevelwere removed. Use the new optimization configuration,
evaluation-set, data-source, and test-case models instead. - Optimization job listing now returns
AgentOptimizationJobinstead ofAgentOptimizationJobListItem.
AgentOptimizationJobProgressandAgentOptimizationJob.getProgress()were removed; usegetRunDuration()and
the job result's candidate summary.AgentOptimizationJobResult.getBaseline(),getBest(), andgetCandidates()
were replaced bygetCandidateSummary(), with separate token-usage, latency, and termination-reason accessors.
Retrieve candidates throughlistOptimizationCandidates(...). AgentOptimizationCandidatenow exposes typed output and nested evaluation details instead of top-level mutations,
scores, token averages, and evaluation IDs. UsegetOutput()andgetEvaluation().PromotionInfowas replaced by
AgentOptimizationCandidatePromotionInfo, which exposes the promoted agent through anAgentReference.RealtimeSessionUpdateEventnow has a single constructor acceptingRealtimeSessionConfigurationBaseand a public
getSession()accessor. The constructors acceptingRealtimeSessionConfigurationor
RealtimeTranscriptionSessionConfigurationand their correspondinggetSessionAs...()accessors were removed.
Pass either concrete session subtype to the new constructor and inspect the subtype returned bygetSession().- Changed the constructors of
MemoryItemandMemoryStoreDefinitionfrom public to protected. Construct their
concrete subtypes instead; deserialization of unknown discriminator values remains supported. - Removed the unused public
VoiceAgentFunctionToolTypeenum.
Bugs Fixed
- Fixed OpenAI clients built from
AgentsClientBuilderto acquire bearer tokens through the Azure HTTP pipeline.
Asynchronous clients now use asynchronous token acquisition instead of callingTokenCredential.getTokenSync(...);
synchronous clients continue to use synchronous token acquisition.
Other Changes
- Added agent-endpoint configuration samples and optimization samples covering estimates, candidate inspection and
promotion, job management, cancellation, and advanced synchronous and asynchronous polling. - Updated conversation, tool, and hosted-agent samples, including agent-endpoint routing, asynchronous response
handling, session-log streaming, file-search uploads, and OpenAPI project-connection authentication. - Regenerated the client from the updated TypeSpec specification.
Dependency Updates
- Updated
openai-javafrom4.45.0to4.69.0. - Upgraded Netty dependencies from
4.1.137.Finalto4.1.138.Final.