2.5.0 (2026-08-20)
Dependency update
- Dependency on
openaihas changed toopenai>=3.0.0, which requireshttpx2instead ofhttpx. - Support for Python 3.9 was dropped. The new minimum supported Python version is 3.10.
Features Added
- Added stable Agent-to-Agent (A2A) tools
A2AToolandA2AToolboxTool, with the newA2AProtocolVersionenum for selecting protocol version1.0. - Method
.beta.agents.begin_create_optimization_jobnow returns a custom LRO poller namedAgentOptimizationLROPoller. Itsdetailsproperty exposes the created job ID asjob_id. - Method
.beta.datasets.begin_create_generation_jobnow returns a custom LRO poller namedDatasetGenerationLROPoller. Itsdetailsproperty exposes the created job ID asjob_id. - Method
.beta.evaluators.begin_create_generation_jobnow returns a custom LRO poller namedEvaluatorGenerationLROPoller. Itsdetailsproperty exposes the created job ID asjob_id. - Added the optional read-only
state_sourceproperty toAgentDetailsand the newAgentStateSourceenum. - Added programmatic tool calling through
ProgrammaticToolCallingParamandSpecificProgrammaticToolCallingParam, with newToolType.PROGRAMMATIC_TOOL_CALLINGandToolChoiceParamType.PROGRAMMATIC_TOOL_CALLINGenum members. - Added the optional
allowed_callersproperty toApplyPatchToolParam,CodeInterpreterTool,CodeInterpreterToolboxTool,CustomToolParam,FunctionShellToolParam,FunctionTool,FunctionToolParam,MCPTool, andMCPToolboxTool. Added the newCallableToolAllowedCallerenum valuesdirectandprogrammatic. - Expanded
Reasoningwith optionalmodeandcontextproperties. AddedReasoningModeEnumforstandardandpro;effortnow uses the newReasoningEffortenum, including the newmaxeffort.
Breaking Changes
All breaking changes are associated with beta features.
- Methods
.beta.routines.listand.beta.routines.list_runsreplaced thebeforeargument withafterand now use the service-providednext_linkfor continuation. - Renamed class
TaskGenerationDataGenerationJobOptionstoSimulationSeedDataGenerationJobOptions. The correspondingDataGenerationJobType.TASK_GENERATIONenum member was renamed toDataGenerationJobType.SIMULATION_SEED, and its wire value changed fromtask_generationtosimulation_seed. - Renamed enum
OptimizationDatasetInputTypetoAgentOptimizationDatasetInputType. - Renamed class
OptimizationAgentIdentifiertoOptimizedAgentIdentifier. - Renamed class
OptimizationCandidatetoAgentOptimizationCandidate. - Renamed class
OptimizationDatasetCriteriontoAgentOptimizationDatasetCriterion. - Renamed class
OptimizationDatasetInputtoAgentOptimizationDatasetInput. - Renamed class
OptimizationDatasetItemtoAgentOptimizationDatasetItem. - Renamed class
OptimizationEvaluatorReftoAgentOptimizationEvaluatorRef. - Renamed class
OptimizationInlineDatasetInputtoAgentOptimizationInlineDatasetInput. - Renamed class
OptimizationJobtoAgentOptimizationJob. - Renamed class
OptimizationJobInputstoAgentOptimizationJobInputs. - Renamed class
OptimizationJobListItemtoAgentOptimizationJobListItem. - Renamed class
OptimizationJobProgresstoAgentOptimizationJobProgress. - Renamed class
OptimizationJobResulttoAgentOptimizationJobResult. - Renamed class
OptimizationOptionstoAgentOptimizationOptions. - Renamed class
OptimizationReferenceDatasetInputtoAgentOptimizationReferenceDatasetInput.
Sample updates
- Added
sample_dataset_generation_job_simpleqna_for_finetuning_async.pyundersamples/datasets/, demonstrating asynchronous generation of a SimpleQnA dataset for fine-tuning. - Added
sample_dataset_generation_job_simpleqna_for_finetuning_with_app_polling.pyundersamples/datasets/, demonstrating application-managed polling for a SimpleQnA fine-tuning data generation job. - Added logging samples under
samples/logs/:sample_log_all.pydemonstrating combined logging for Azure SDK and.get_openai_client()operations.sample_log_from_openai_client.pydemonstrating logging for an OpenAI client created from.get_openai_client().sample_log_from_sdk.pydemonstrating logging for Azure AI Projects SDK client operations.sample_log_to_console.pydemonstrating console logging configuration.sample_log_with_logging_disabled.pydemonstrating redacted logging behavior whenlogging_enableis not enabled.
- Renamed optimization polling samples
sample_optimization_job_basic_polling.pyandsample_optimization_job_basic_polling_async.pytosample_optimization_job_advanced_app_polling.pyandsample_optimization_job_advanced_app_polling_async.py.