Repository navigation
feat(agents): support GPT Live voice manifests - #10685
Open
JianW (v1212) wants to merge 1 commit into
Open
JianW (v1212) wants to merge 1 commit into
JianW (v1212) wants to merge 1 commit into
Conversation
JianW (v1212)
requested review from
JeffreyCA,
JerryYang (JerryYangKai),
FanH (Siglud),
Yimin-Jin,
Eric Chen (eriolchan),
Glenn Harper (glharper),
Hui Miao (huimiu),
Zhijie Huang (hund030),
Wei Meng (m5i-work),
John Miller (therealjohn) and
Travis Angevine (trangevi)
as code owners
October 23, 2026 04:21
|
Azure Pipelines: Successfully started running 2 pipeline(s). 24 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Reference normalization is bypassed by production paths, and endpoint readers reject the newly persisted Live route.
4 open issues
What changed in this PR
Adds manifest-based GPT Live support to the azure.ai.agents extension through kind: voice and subProtocol: live, without adding an init flag or native audio invocation client.
Changes:
- Adds Live-specific configuration types, validation, API mapping, and schema definitions.
- Introduces the dedicated Live sessions endpoint and operation classification.
- Adds a canonical manifest, client guidance, and regression tests.
| File | Description |
|---|---|
cli/azd/extensions/azure.ai.agents/schemas/examples/gpt-live.azure.yaml |
Adds the canonical GPT Live manifest. |
cli/azd/extensions/azure.ai.agents/schemas/azure.ai.agent.json |
Defines Live configuration and protocol exclusions. |
cli/azd/extensions/azure.ai.agents/README.md |
Documents manifest setup and client requirements. |
cli/azd/extensions/azure.ai.agents/internal/telemetry/operation.go |
Adds Live operation classification. |
cli/azd/extensions/azure.ai.agents/internal/telemetry/operation_test.go |
Tests Live classification aliases. |
cli/azd/extensions/azure.ai.agents/internal/project/voice_schema_guidance_test.go |
Tests protocol-specific schema validation. |
cli/azd/extensions/azure.ai.agents/internal/project/service_target_agent.go |
Builds and persists Live sessions endpoints. |
cli/azd/extensions/azure.ai.agents/internal/project/service_target_agent_test.go |
Tests Live loading, policies, and endpoint construction. |
cli/azd/extensions/azure.ai.agents/internal/project/doc_examples_test.go |
Validates the sample and README consistency. |
cli/azd/extensions/azure.ai.agents/internal/project/agent_definition.go |
Integrates Live properties and reference normalization. |
cli/azd/extensions/azure.ai.agents/internal/pkg/agents/agent_yaml/yaml.go |
Adds Live authoring types. |
cli/azd/extensions/azure.ai.agents/internal/pkg/agents/agent_yaml/parse.go |
Validates native Live configuration. |
cli/azd/extensions/azure.ai.agents/internal/pkg/agents/agent_yaml/map.go |
Maps Live definitions to API requests. |
cli/azd/extensions/azure.ai.agents/internal/pkg/agents/agent_yaml/gpt_live_test.go |
Tests Live mapping and validation boundaries. |
cli/azd/extensions/azure.ai.agents/internal/pkg/agents/agent_api/models.go |
Adds Live wire types and audio serialization. |
cli/azd/extensions/azure.ai.agents/internal/cmd/testdata/TestAgentHelp-invoke.snap |
Updates the invoke help snapshot. |
cli/azd/extensions/azure.ai.agents/internal/cmd/invoke.go |
Explains Live client requirements in help. |
Review effort: Balanced
Comment on lines
+1264
to
+1265
| if rootRef { | ||
| resolved, err = normalizeRootVoiceDefinition(resolved) |
| // Persist NAME first and ENDPOINT last. ENDPOINT is used as the voice deploy | ||
| // completion marker by other commands, so avoid writing it before NAME. | ||
| baseEndpoint := buildVoiceWSProtocolURL(projectEndpoint, agentObject.Name) | ||
| baseEndpoint := buildVoiceAgentWSProtocolURL(projectEndpoint, agentObject.Name, va.SubProtocol) |
Comment on lines
+320
to
+321
| if strings.TrimSpace(fmt.Sprint(agent.Greeting["type"])) != "template" || | ||
| strings.TrimSpace(fmt.Sprint(agent.Greeting["text"])) == "" { |
| } | ||
| } | ||
| } | ||
| return structpb.NewStruct(values) |
Contributor
azure.ai.agents PR buildNote This is an unsigned development build. Install it only if you trust this PR. Install the extension: azd ext install "https://azuresdkartifacts.z5.web.core.windows.net/azd/extensions/pr/10685/azure-ai-agents.zip"
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
kind: voiceagents using the native GPT LivesubProtocol: livecontract/voice/live/sessionsendpoint, add a canonical manifest and client guidance, and keep existing Realtime/Hosted Voice behavior unchangedUser experience
GPT Live follows the same manifest-based initialization path as Hosted Voice:
The existing interactive and
--kind prompt-voiceinit flows are unchanged.Validation
go test ./... -count=1pwsh -NoProfile -File ci-build.ps1show, persisted Live endpoint, native audio session, correlated Responses delegation, transcript/audio, and clean closeScope
This does not add a new init flag, provision GPT Live models, or implement a native audio client in
azd ai agent invoke. GPT Live remains an explicit manifest/YAML option that requires an existing compatible deployment and service availability.