-
Python: Add OpenTelemetry integration for GitHubCopilotAgent (#5142)
发布于
2026-04-24 08:44:44 +00:00 | 1129 次提交 在此版本后已推送到 main- Python: Add OpenTelemetry integration for GitHubCopilotAgent
- Split GitHubCopilotAgent into RawGitHubCopilotAgent (core, no OTel) and
GitHubCopilotAgent(AgentTelemetryLayer, RawGitHubCopilotAgent) with tracing - Add default_options property to expose model for span attributes
- Export RawGitHubCopilotAgent from all public namespaces
- Add github_copilot_with_observability.py sample and update README
- Python: Fix OTEL_SERVICE_NAME default in GitHub Copilot README
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
-
Python: Add unit tests for RawGitHubCopilotAgent.default_options property
-
Python: Address review feedback on GitHubCopilotAgent OTel integration
- Add middleware param to GitHubCopilotAgent.run() overloads so per-call
middleware is explicitly forwarded through AgentTelemetryLayer - Remove github_copilot_with_observability.py sample per feedback; replace
with inline snippet + link to observability samples in README
- Python: Address review feedback on log_level and session kwargs typing
- Add middleware param to RawGitHubCopilotAgent.run() overloads for interface
compatibility with AgentTelemetryLayer - Fix import in README observability snippet to use agent_framework.github
- Python: Add AgentMiddlewareLayer to GitHubCopilotAgent MRO
Follow FoundryAgent pattern: AgentMiddlewareLayer runs outside the telemetry
span so middleware execution time is not captured in traces. Overloads removed
as AgentMiddlewareLayer.run() handles dispatch via MRO.-
Python: Add explicit init to GitHubCopilotAgent for auto-complete and docstrings
-
Python: Address review feedback on middleware warning and test assertions
- Add assert "timeout" not in opts to test_default_options_includes_model_for_telemetry
to document the intentional asymmetry where timeout is extracted into _settings
and not returned in default_options. - Replace silent del middleware with a logged warning when per-run middleware is
passed to RawGitHubCopilotAgent, making it clear that the GitHub Copilot SDK
handles tool execution internally and chat/function middleware cannot be injected.
- Python: Use Self for aenter return type in RawGitHubCopilotAgent
Address review feedback: use typing.Self (3.11+) / typing_extensions.Self
(3.10) for aenter so subclasses like GitHubCopilotAgent get the correct
return type from async context manager usage.
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
下载附件