You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Python: [Feature]: Support response_format (structured output) in GitHubCopilotAgent #9809
GitHubCopilotAgent ignores response_format. Passing a Pydantic model or JSON Schema through options or default_options does not constrain the model output and AgentResponse.value is never populated. The option is not forwarded to the Copilot SDK; instead it is merged into the create_session keyword arguments, where it is not a valid parameter.
The Copilot SDK now supports provider-native structured output (github/copilot-sdk#2590, included since SDK v1.0.15, so already covered by our github-copilot-sdk>=1.0.16 pin). send and send_and_wait accept response_schema (a Pydantic model or a JSON Schema dict), which is sent to the runtime as a strict json_schema response format for that run.
Use Case and Evidence
Agents backed by GitHub Copilot should be able to return typed results the same way other Agent Framework providers do:
/plan Use the existing maintainer-directed core structured-output work in #9810; do not reopen the ownership question or start a competing implementation. Plan/verify response_format routing for run/default options, exclusion from create_session, supported SDK-floor response_schema behavior and Pydantic/mapping schemas, with shared Response-class value parsing as already requested. Preserve existing model configuration and alias/name-validation behavior across all core providers rather than imposing a Copilot-only alias policy globally; check supported Pydantic versions and invalid-JSON/schema-error behavior. The author reports the child-idle termination fix in 565d65f and the current diff includes it: verify it rather than repeating it as an unfixed finding. Cover child idle before root JSON, root versus child text/preamble/final boundaries, and normal as well as structured streaming because the termination change affects both. Existing reviewer direction is current input, not a minor-ready scope: public option/shared parsing/streaming compatibility exceeds the threshold. Preserve current labels and assignee; no new assignment/readiness pending the current plan.
Activity
eavanvalkenburg commentedon Nov 2, 2026
/plan Use the existing maintainer-directed core structured-output work in #9810; do not reopen the ownership question or start a competing implementation. Plan/verify response_format routing for run/default options, exclusion from create_session, supported SDK-floor response_schema behavior and Pydantic/mapping schemas, with shared Response-class value parsing as already requested. Preserve existing model configuration and alias/name-validation behavior across all core providers rather than imposing a Copilot-only alias policy globally; check supported Pydantic versions and invalid-JSON/schema-error behavior. The author reports the child-idle termination fix in 565d65f and the current diff includes it: verify it rather than repeating it as an unfixed finding. Cover child idle before root JSON, root versus child text/preamble/final boundaries, and normal as well as structured streaming because the termination change affects both. Existing reviewer direction is current input, not a minor-ready scope: public option/shared parsing/streaming compatibility exceeds the threshold. Preserve current labels and assignee; no new assignment/readiness pending the current plan.