Files
Dineshsuriya D d42c78c8cf Python: Add GitHub Copilot BYOK sample (#7336)
* Python: Add GitHub Copilot BYOK sample

Demonstrates routing GitHubCopilotAgent requests through a custom OpenAI-compatible
endpoint via ProviderConfig instead of the default GitHub Copilot backend.

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Python: Address BYOK sample review feedback

- Make the provider type configurable via BYOK_PROVIDER_TYPE (default "openai") instead
  of hardcoding "openai" — a partial autofix commit had already updated the docstring to
  document this env var but left the code hardcoded, which this finishes.
- Stop calling the endpoint "OpenAI-compatible" everywhere; Anthropic isn't OpenAI-wire-
  compatible, so reword to "your own endpoint" and list the actual supported providers
  (mirrors the equivalent .NET sample fix).

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-30 10:15:17 +00:00
..

GitHub Copilot Agent Examples

This directory contains examples demonstrating how to use the GitHubCopilotAgent from the Microsoft Agent Framework.

Security Note: These examples demonstrate various permission types (shell, read, write, url). Only enable permissions that are necessary for your use case. Each permission grants the agent additional capabilities that could affect your system.

Prerequisites

  1. GitHub Copilot CLI: Install and authenticate the Copilot CLI
  2. GitHub Copilot Subscription: An active GitHub Copilot subscription
  3. Install the package:
    pip install agent-framework-github-copilot
    

Environment Variables

The following environment variables can be configured:

Variable Description Default
GITHUB_COPILOT_CLI_PATH Path to the Copilot CLI executable copilot
GITHUB_COPILOT_MODEL Model to use (e.g., "gpt-5", "claude-sonnet-4") Server default
GITHUB_COPILOT_TIMEOUT Request timeout in seconds 60
GITHUB_COPILOT_LOG_LEVEL CLI log level info
GITHUB_COPILOT_BASE_DIRECTORY Directory for CLI session state and config ~/.copilot

Observability

GitHubCopilotAgent has OpenTelemetry tracing built-in. To enable it, call configure_otel_providers() before running the agent:

from agent_framework.observability import configure_otel_providers
from agent_framework.github import GitHubCopilotAgent

configure_otel_providers(enable_console_exporters=True)

async with GitHubCopilotAgent() as agent:
    response = await agent.run("Hello!")

See the observability samples for full examples with OTLP exporters.

Examples

File Description
github_copilot_basic.py The simplest way to create an agent using GitHubCopilotAgent. Demonstrates both streaming and non-streaming responses with function tools.
github_copilot_with_session.py Shows session management with automatic creation, persistence via session objects, and resuming sessions by ID.
github_copilot_with_shell.py Shows how to enable shell command execution permissions. Demonstrates running system commands like listing files and getting system information.
github_copilot_with_file_operations.py Shows how to enable file read and write permissions. Demonstrates reading file contents and creating new files.
github_copilot_with_url.py Shows how to enable URL fetching permissions. Demonstrates fetching and processing web content.
github_copilot_with_mcp.py Shows how to configure MCP (Model Context Protocol) servers, including local (stdio) and remote (HTTP) servers.
github_copilot_with_instruction_directories.py Shows how to configure custom instruction directories for project-specific or team-shared guidelines.
github_copilot_with_multiple_permissions.py Shows how to combine multiple permission types for complex tasks that require shell, read, and write access.
github_copilot_with_byok.py Shows how to configure BYOK (Bring Your Own Key) to route requests through your own endpoint instead of the GitHub Copilot backend.