2.4.0 (2026-07-24)
Features Added
- New stable toolbox tool
ToolSearchToolboxTool(discriminatortoolbox_search) for storing a tool-search tool in a toolbox.
This replacesToolboxSearchPreviewToolboxTool, which is still present but will be removed in a future release of the package. Please migrate your code to use the stable tool. - New class
TaskGenerationDataGenerationJobOptions(discriminatortask_generation) with data generation job options for multi-turn evaluation scenarios. - Support for non-fatal input-quality advisories from rubric evaluator generation. See new class
RubricGenerationInputQualityWarningand new enumsRubricGenerationInputQualityWarningCode,RubricGenerationInputQualityWarningSeverity, andRubricGenerationInputQualityWarningSource. - New enum
GenerationWarningType. - New enum
AgentIdentityStatusand new optionalstatusproperty on classAgentIdentity. - New read-only property
input_quality_warningson classEvaluatorGenerationJob. - New read-only properties
generation_job_idandwarningson classEvaluatorVersion. - New optional property
max_stallson classOptimizationOptions.
Breaking Changes
Breaking changes in beta methods:
- Method
.beta.evaluators.create_generation_jobrenamed to.beta.evaluators.begin_create_generation_joband is now a long-running operation returningLROPoller[EvaluatorVersion](previously returnedEvaluatorGenerationJob). - Method
.beta.datasets.create_generation_jobrenamed to.beta.datasets.begin_create_generation_joband is now a long-running operation returningLROPoller[DataGenerationJobResult]. - Method
.beta.agents.create_optimization_jobrenamed to.beta.agents.begin_create_optimization_joband is now a long-running operation returningLROPoller[OptimizationJobResult].
Sample updates
- Added new optimization polling samples
sample_optimization_job_basic_polling.pyandsample_optimization_job_basic_polling_async.pyundersamples/agents/optimization/. - Added new evaluation samples
sample_endpoint_evaluator_with_api_key.pyandsample_endpoint_evaluator_with_entra_id.pyundersamples/evaluations/. - Added new Hosted Agent sample
sample_agent_user_identity_isolation.pyundersamples/hosted_agents/, demonstrating per-user response-chain isolation with delegated end-user identities sent in thex-ms-user-identityheader. - Added new Hosted Agent routine samples
sample_routines_with_github_issue_trigger.pyandsample_routines_with_teams_message_trigger.py, demonstrating GitHub issue and Microsoft Teams channel-message triggers for routines backed by a temporary Hosted Agent version. - Added new Hosted Agent sample
sample_toolbox_with_reminder_preview.pyundersamples/hosted_agents/, demonstrating a Reminder Preview toolbox tool wired through a Foundry Toolbox MCP endpoint. - Updated Hosted Agent toolbox asset
samples/hosted_agents/assets/toolbox-agent/main.pyto useFoundryToolboxandas_skills_provider()for toolbox MCP skill discovery and wiring, replacing the earlier manual MCP session, auth, and HTTP client setup. - Renamed toolbox tool-search samples
sample_toolboxes_with_search_preview.pyandsample_toolboxes_with_search_preview_async.pytosample_toolboxes_with_search.pyandsample_toolboxes_with_search_async.py. - Renamed the Hosted Agent image-based creation samples from
sample_create_hosted_agent.pyandsample_create_hosted_agent_async.pytosample_create_hosted_agent_from_image.pyandsample_create_hosted_agent_from_image_async.py. - Relocated Hosted Agent routine trigger samples
sample_routines_with_dispatch.py,sample_routines_with_schedule_trigger.py, andsample_routines_with_timer_trigger.pyfromsamples/routines/tosamples/hosted_agents/. - Removed Hosted Agent endpoint samples
sample_agent_endpoint.pyandsample_agent_endpoint_async.py. - Removed routine sample
samples/routines/sample_routines_crud.py. - Removed prompt-agent toolbox skill sample
samples/agents/tools/sample_agent_toolbox_skill.pybecause skill-in-toolbox is not yet supported in Prompt Agents. - Updated Hosted Agent toolbox samples to create temporary Hosted Agent versions for execution flows, assign Azure AI User RBAC before invoking Toolbox MCP endpoints, restore the prior endpoint, and clean up temporary resources during teardown.