Skip to content

Add post-call delivery configuration and related models to VoiceAgent… - #49813

Open
Howie Leung (howieleung) wants to merge 58 commits into
mainfrom
feature/azure-ai-projects/vnext
Open

Howie Leung (howieleung) wants to merge 58 commits into
mainfrom
feature/azure-ai-projects/vnext

Conversation

@howieleung

Copy link
Copy Markdown
Member

… (#49805)

Description

Please add an informative description that covers that changes made by the pull request and link all relevant issues.

If an SDK is being regenerated based on a new API spec, a link to the pull request containing these API spec changes should be included above.

All SDK Contribution checklist:

  • The pull request does not introduce [breaking changes]
  • CHANGELOG is updated for new features, bug fixes or other significant changes.
  • I have read the contribution guidelines.

General Guidelines and Best Practices

  • Title of the pull request is clear and informative.
  • There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

  • Pull request includes test coverage for the included changes.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
9 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new post-call delivery feature lacks a required changelog entry covering VoiceAgentDefinition.post_call, Event Grid/routine destinations, and the preview restriction on audio delivery, leaving the capability and limitation out of release notes.

1 open issue
What changed in this PR

Adds post-call delivery configuration to Voice Agents in azure-ai-projects, allowing callers to configure Event Grid and routine destinations.

Changes:

  • Adds VoiceAgentDefinition.post_call, destination models, and related enums; documents that audio delivery is unsupported in this preview.
  • Exports the new types and refreshes API snapshots, cross-language mappings, and the TypeSpec revision.
  • Adds Pylint suppressions to the sample CI runner.
File Description
sdk/​ai/​azure-ai-projects/​tsp-location.yaml Updates the source specification commit.
sdk/​ai/​azure-ai-projects/​tests/​samples/​ci/​run_samples.py Suppresses line-length and unused-suppression warnings.
sdk/​ai/​azure-ai-projects/​azure/​ai/​projects/​models/​_models.py Adds post-call configuration and destination models.
sdk/​ai/​azure-ai-projects/​azure/​ai/​projects/​models/​_enums.py Adds destination and delivery-content enums.
sdk/​ai/​azure-ai-projects/​azure/​ai/​projects/​models/​__init__.py Exports the new models and enums.
sdk/​ai/​azure-ai-projects/​apiview-properties.json Updates cross-language API mappings and version.
sdk/​ai/​azure-ai-projects/​api.metadata.yml Refreshes the API hash.
sdk/​ai/​azure-ai-projects/​api.md Records the expanded public API.

Review effort: Balanced

@github-actions

This comment has been minimized.

Copilot AI balanced review requested due to automatic review settings November 4, 2026 19:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new post_call API lacks tests for serialization and polymorphic decoding of both destination subtypes, and release notes omit the feature and its preview audio restriction.

2 open issues

Review effort: Balanced

- Improved the clarity of SSE frame documentation in AgentsOperations by formatting the description of the `data` field.
- Expanded the list of known values for the `provider` keyword in BetaVoiceAgentsTelephonyOperations to include "sip" for both bindings and calls.
- Updated the commit reference in tsp-location.yaml to reflect the latest changes in the Azure REST API specs repository.
Copilot AI balanced review requested due to automatic review settings November 4, 2026 20:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new handoff events return dictionaries instead of typed models in both sync and async dispatch, and transfer_tool annotations incorrectly exclude valid null values.

4 open issues

Review effort: Balanced

- Introduced new methods for managing live conversations in the BetaVoiceAgentsLiveConversationsOperations class, including listing, retrieving, deleting, and streaming audio for live conversations.
- Updated public methods documentation to reflect the addition of 9 new methods under the `beta.voice_agents.live_conversations` namespace.
- Updated the TSP location YAML file to point to the latest commit in the Azure REST API specs repository.
… generation details, clarify optional parameters, and document breaking changes
@github-actions

This comment has been minimized.

aprilk-ms and others added 8 commits November 10, 2026 19:30
…9918)

* [azure-ai-projects] Add trace and dataset evaluation rule samples

Add samples for the new scheduled evaluation rule types (traceEvaluation and datasetEvaluation with a timer trigger), plus README rows, a CHANGELOG entry and sample-test skips.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed

* Evaluate an agent in the scheduled dataset evaluation rule sample

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed

* Fix dataset rule sample: set data source type and use TypedDict-friendly inputs

TargetCompletionEvalRunDataSource in azure.ai.projects.models is a TypedDict,
so the type discriminator must be set explicitly. Mirrors sample_agent_evaluation.py.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed

* Use renamed Foundry User role in evaluation rule samples

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed

* Remove PREREQUISITE sections from evaluation rule samples

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Howie Leung <howieleung@microsoft.com>
Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed
…#49924)

* [azure-ai-projects] Update endpoint evaluator samples to schema 0.0.2

Register the sample endpoint evaluators with schema_version 0.0.2 and document the 0.0.2 request and response contract. Add a CHANGELOG sample note.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed

* Send preview opt-in header in endpoint evaluator samples

Endpoint evaluator definitions still require Foundry-Features: Evaluations=V1Preview, and the GA create_version operation does not add it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed

* Add endpoint evaluator sample for schema 0.0.1 and recommend 0.0.2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed

* Use existing project connection in endpoint evaluator samples

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed

* Merge API key and Entra ID endpoint evaluator samples

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Howie Leung <howieleung@microsoft.com>
Copilot-Session: 66975e85-053b-45cf-8d28-74bf6895aaed
@github-actions

This comment has been minimized.

#49931)

* Update rubric evaluator samples and changelog

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4a45052f-957c-4296-b540-6c8f5cbddbc3

* Clarify rubric sample scoring and weights

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4a45052f-957c-4296-b540-6c8f5cbddbc3

* Preserve rubric sample scoring and cleanup

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4a45052f-957c-4296-b540-6c8f5cbddbc3

* [azure-ai-projects] Fix empty changelog section

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4a45052f-957c-4296-b540-6c8f5cbddbc3

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4a45052f-957c-4296-b540-6c8f5cbddbc3
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

- General availability of Voice Agents and External Agents, with new features for agent insights and skill optimization.
- Added support for new job statuses, including SKIPPED, across various operations and models.
- Enhanced API documentation and examples, including new samples for voice agent campaigns and evaluations.
- Updated package metadata and dependencies, reflecting changes in Python compatibility and project structure.
- Removed unnecessary assets and recordings from the package manifest.
- Introduced new YAML configuration for TSP location to streamline SDK generation from API specifications.
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

- Introduced A2_A_AGENTS_V1_PREVIEW key in _enums.py for A2A agent support.
- Updated HostedAgentDefinition documentation to include A2A protocol details.
- Modified sample_agent_to_agent.py to reflect the new A2A tool usage.
- Updated test cases to include A2A feature in Foundry-Features header.
- Added tsp-location.yaml configuration for Azure AI Projects.
- Updated CrossLanguageVersion in apiview-properties.json.
@github-actions

Copy link
Copy Markdown
Contributor
[Pilot] PR Pipeline Failure Analysis

What failed

Azure Pipeline build 7067616 (python - pullrequest) failed across all platform jobs (Ubuntu2404_313/314/315, macos311, ubuntu2404_311, ubuntu2404_311_coverage, windows2022_312).

Test failures (real, consistent across every platform and package format — sdist and whl):
Two azure-ai-projects sample tests fail in playback mode with ResourceNotFoundError: Playback failure because the recorded test-proxy sessions do not contain a matching request for the current code:

  • test_datasets_samples[sample_dataset_generation_job_simulation_seed_for_evaluation] — fails in samples/datasets/sample_dataset_generation_job_simulation_seed_for_evaluation.py at read_dataset_rows → container_client.list_blob_names(...).
  • test_datasets_samples[sample_datasets_download] — fails in samples/datasets/sample_datasets_download.py:85 at container_client.list_blob_names().

Both report "Uri doesn't match" against the recorded entries (container-list-blobs requests for storage accounts sanitized-account-name-ba333afe... and agentsv2-g-561d1e04...), meaning the recordings under sdk/ai/azure-ai-projects/tests/recordings/samples/ are stale relative to the current sample code/API calls.

Separate infrastructure failure: Several ancillary PowerShell "LLM Artifacts" log-collection tasks in the same build failed with fatal: could not read Username for 'https://github.com': terminal prompts disabled while attempting an anonymous git clone of this repository — a transient/environment git-authentication issue unrelated to the SDK code, and not blocking the primary test failures already captured.

Relevant pipeline output
E   azure.core.exceptions.ResourceNotFoundError: Playback failure -- for help resolving, see https://aka.ms/azsdk/python/test-proxy/troubleshoot. Error details:
E   Unable to find a record for the request GET (sanitized.blob.core.windows.net/redacted)
E   Uri doesn't match:
E       request  <...restype=container&comp=list&skoid=...>
E       record   <...?restype=container&comp=list&skoid=...>
==> git clone --no-checkout --filter=tree:0 https://github.com/Azure/azure-sdk-for-python .
fatal: could not read Username for 'https://github.com': terminal prompts disabled
fatal: the remote end hung up unexpectedly
##[error]PowerShell exited with code '1'.

Recommended next steps

  • Re-record the test-proxy sessions for sdk/ai/azure-ai-projects/tests/recordings/samples/test_samples.pyTestSamplestest_datasets_samples[...] so they match the current blob-listing calls made by sample_dataset_generation_job_simulation_seed_for_evaluation.py and sample_datasets_download.py.
  • Confirm whether these samples' API usage changed in this PR (e.g., new/renamed SAS parameters or endpoint shape) and, if so, update the recordings to match; if unintended, investigate why the generated request URI differs from what was recorded.
  • The ancillary git-clone auth failures are an Azure Pipelines log-collection task issue (anonymous clone attempt), not a code problem — no action needed from the PR author; retry the pipeline if it persists.
  • See https://aka.ms/ci-fix

Copilot detected the failing pipeline and generated the analysis above. To have it attempt a
fix automatically, reply with @copilot please fix the failing pipeline on this PR.

Generated by Pipeline Analysis Next Steps · copilot · sonnet50 · 64.8 AIC · ⌖ 0.574 AIC · ⊞ 9.1K · ◷

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Projects sdk-api-review-needed Waiting for an authorized architect decision.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants