发布

  • Python: Add OpenTelemetry integration for GitHubCopilotAgent (#5142)

    frostbyte_neo 发布于 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

    下载附件