GitHub Copilot Harness ile Agent Framework Entegrasyonu
Microsoft Agent Framework için GitHub Copilot entegrasyonu, hem .NET hem de Python tarafında kararlı sürüme ulaştı. Entegrasyon, GitHub Copilot’un kodlamaya odaklı ajan çalıştırma altyapısını (harness) Agent Framework’ün araç modeli, akış (streaming), ara katman (middleware), gözlemlenebilirlik ve insan onayı yetenekleriyle birleştirmeyi hedefliyor. Böylece Copilot’un ajan döngüsü (model çağrıları, araç kullanımı, planlama, oturum durumu) yerinde kalırken, Agent Framework’ün tutarlı programlama modelini de aynı yerde kullanabiliyorsunuz.
GitHub Copilot Agent nedir?
GitHub Copilot Agent, arka planda GitHub Copilot CLI ve SDK’sı tarafından beslenen bir Agent Framework ajanı. Ajan döngüsünün sahibi Copilot; Agent Framework ise talimatlar, araçlar, akış, ara katman, gözlemlenebilirlik ve insan-döngüde (human-in-the-loop) onay için ortak bir yüzey sunuyor.
Böylece Copilot’un yerleşik kodlama yetenekleri (shell yürütme, dosya okuma/yazma, URL alma ve MCP araçları) diğer tüm Agent Framework sağlayıcılarıyla aynı çalışma arayüzüne bağlanmış oluyor..NET tarafında CopilotClient üzerinden bir istemci başlatıp AsAIAgent ile ajana dönüştürebilir, Python tarafında ise GitHubCopilotAgent sınıfını kullanabilirsiniz. Her iki dilde de akışlı çalıştırma destekleniyor:.NET’te RunStreamingAsync(...), Python’da run(..., stream=True).
Ajana verilen sistem yetenekleri
Copilot harness’ı, bir kodlama ajanının ihtiyaç duyduğu yetenekleri hazır getiriyor; ama her biri bir izin (permission) işleyicisi üzerinden opt-in mantığıyla açılıyor:
- Shell yürütme: komutlar, script’ler ve sistem araçlarını çalıştırma.
- Dosya işlemleri: mevcut dosyaları okuma ve yenilerini yazma.
- URL getirme: web içeriğini çekip işleme.
Her yetenek bir izin isteğiyle denetlendiği için ajan yalnızca açıkça izin verdiğiniz işlemleri yapabilir. İşleyici her isteği alır ve onay ya da ret kararı döndürür. Basit bir örnekte.NET’te PermissionDecision.ApproveOnce() veya PermissionDecision.Reject() döndürülür; Python tarafında ise PermissionHandler.approve_all gibi hazır işleyiciler ya da özel mantıklar kullanılabilir.
MCP sunucularıyla genişletme
Model Context Protocol (MCP) sunucularını yapılandırarak ajana yerleşik yeteneklerin ötesinde araç ve veri kaynakları verebilirsiniz. Sunucular yerel (stdio) ya da uzak (http) olabilir; bir dosya sistemi sunucusundan Microsoft Learn dokümantasyon API’si gibi uzak hizmetlere kadar uzanır.
.NET’te bu yapılandırma SessionConfig.McpServers sözlüğü üzerinden yapılıyor, Python tarafında ise GitHubCopilotOptions içindeki mcp_servers parametresiyle tanımlanıyor. Her iki tarafta da sunucu tipi (stdio/http), komut veya URL ve etkin araçlar (örneğin "tools": ["*"]) belirtilebilir.
Kendi araçlarınızı kaydetmek
Copilot’un yerleşik araçlarının yanına kendi fonksiyonlarınızı da araç olarak ekleyebilirsiniz. Onay gerektiren araçlar, Copilot’un yerel pre-tool-use hook mekanizmasından geçirilir ve sizin sağladığınız onay işleyicisine yönlendirilir.
- .NET: Bir
AIFunction‘ıApprovalRequiredAIFunctionile sarmalarsınız. - Python:
@tool(approval_mode="always_require")dekoratörünü kullanırsınız.
Bu yaklaşımın önemli bir yan etkisi şu: araç çağrı döngüsünün sahibi Copilot SDK’sı. Dolayısıyla varsayılan hook, onay gerektiren araçları izin işleyicinize yönlendirir; özel bir hook bunu atlayacaksa çerçeve sizi uyarır.
Oturum yönetimi
Copilot oturumları otomatik olarak oluşturuluyor. Aynı oturumu yeniden kullanarak turlar arasında bağlamı koruyabilir, önceki bir konuşmayı oturum kimliğiyle (hatta yeni bir ajan örneğinden) devam ettirebilirsiniz.
.NET tarafında agent.CreateSessionAsync(existingSessionId) ile mevcut bir oturuma bağlanılır. Python’da ise agent.create_session() ile oluşturulan oturumun service_session_id değeri saklanır ve daha sonra agent2.get_session(service_session_id=session_id) çağrısıyla geri yüklenir.
Proje kılavuzlarını paylaşma
Ajanı özel talimat dizinlerine yönlendirerek proje ya da takım genelinde paylaşılan yönergeleri yükleyebilirsiniz. Python tarafında bu, GitHubCopilotOptions‘ın instruction_directories parametresiyle yapılır ve ajan davranışının bir kod tabanı boyunca tutarlı kalmasını sağlar.
Üretime uygun kontroller
Ajana sistem düzeyinde yetenek vermek, ancak bu yetenekleri nasıl kullandığını denetleyebiliyorsanız güvenli olur. Kararlı sürüm bu amaçla üç kontrol getiriyor:
- İnsan-döngüde onay: Shell komutları, dosya yazma, URL çekme, MCP çağrıları ve onay gerektiren fonksiyon araçları dahil tüm hassas eylemler, sağladığınız izin işleyicisinden geçer. Varsayılanda gözetim olmadan hiçbir şey çalışmaz; güvenilen işlemler için seçici olarak gevşetebilirsiniz.
- Yerel araç onayı: Copilot SDK’sı araç çağrı döngüsünün sahibi olduğundan, onay gerektiren araç izinleri SDK’nın pre-tool-use hook’u üzerinden zorunlu kılınır. Varsayılan hook bu araçları izin işleyicinize yönlendirir; özel bir hook onu bypass edecekse çerçeve uyarır.
- Yerleşik gözlemlenebilirlik: GitHub Copilot Agent, Agent Framework’ün OpenTelemetry izlemesine katılır; yani sistemdeki diğer ajanlarla aynı izleri (trace) ve telemetriyi üretir.
Neden önemli?
Birçok ekip GitHub Copilot’u geliştirici üretkenliği için zaten kullanıyor. Bu entegrasyon, aynı kodlama yeteneklerini daha geniş ajan tabanlı iş akışlarına taşımayı, GitHub Copilot ile Microsoft Agent Framework arasında bir seçim yapmak zorunda kalmadan mümkün kılıyor. Böylece:
- Copilot’un kodlama yeteneklerini kullanan repo-farkındalıklı ajanlar kurulabilir.
- Özel araçlar, MCP sunucuları ve kurumsal servisler Agent Framework üzerinden entegre edilebilir.
- Onay, yönetişim ve gözlemlenebilirlik deneyimleri farklı sağlayıcılar arasında tutarlı hale getirilebilir.
- Mevcut Agent Framework yatırımları korunurken Copilot’un gelişen kodlama harness’ından yararlanılabilir.
Kod inceleme yardımcıları, repo bakım ajanları, geliştirici copilot’ları veya yazılım mühendisliği iş akışları gibi senaryolar aynı programlama modeli üzerinden kurgulanabilir.
Harness seçenekleri
GitHub Copilot Agent, Microsoft Agent Framework ile ajan kurmanın yollarından yalnızca biri. Copilot; planlama, araç yürütme, shell erişimi, dosya işlemleri, URL getirme ve MCP entegrasyonu için hazır destek sunan, kodlamaya odaklı güçlü bir harness. Pek çok yazılım mühendisliği senaryosu için kutudan çıktığı haliyle yeterli bir çalışma ortamı sağlıyor.
Buna karşılık, araçları, planlamayı, belleği, onayları ve gözlemlenebilirliği parça parça kendiniz birleştirdiğiniz daha yapılandırılabilir bir harness istiyorsanız, Agent Framework bunu da destekliyor. “Build your own claw and agent harness” serisi bu yaklaşımın.NET ve Python için adım adım bir anlatımını sunuyor.
Başlangıç ve yapılandırma
Ajan, kimlik doğrulaması yapılmış bir GitHub Copilot CLI üzerinde çalıştığından Copilot CLI’nın kurulu olması ve aktif bir GitHub Copilot aboneliği gerekiyor. Minimum gereksinimler:.NET için.NET 8+, Python için 3.11+.
- .NET:
dotnet add package Microsoft.Agents.AI.GitHub.Copilot - Python:
pip install agent-framework-github-copilot
Alttaki Copilot CLI, her iki dilde ortak ortam değişkenleriyle yapılandırılır:
| Değişken | Açıklama | Varsayılan |
|---|---|---|
GITHUB_COPILOT_CLI_PATH |
Copilot CLI çalıştırılabilir yolu | copilot |
GITHUB_COPILOT_MODEL |
Kullanılacak model (örn. gpt-5, claude-sonnet-4) |
Sunucu varsayılanı |
GITHUB_COPILOT_TIMEOUT |
Saniye cinsinden istek zaman aşımı | 60 |
GITHUB_COPILOT_BASE_DIRECTORY |
CLI oturum durumu ve yapılandırma dizini | ~/.copilot |
Bu ayarlar varsayılan olarak ortam değişkenlerinden okunur, ama kod tarafında da geçersiz kılınabilir. Python’da GitHubCopilotOptions üzerinden cli_path, model, timeout, log_level ve base_directory geçirebilirsiniz..NET’te istemci, CopilotClientOptions ile (CliPath, LogLevel, BaseDirectory, WorkingDirectory) yapılandırılır; model ise oturum başına SessionConfig.Model alanından ayarlanır.
Kaynaklar ve İleri Okuma
- Build Production-Ready Agents with the GitHub Copilot Harness and Agent Framework (Giles Odigwe, orijinal yazı)
- Build your own claw and agent harness with Microsoft Agent Framework
- .NET örnekleri: samples/02-agents/AgentProviders/github-copilot
- Python örnekleri: samples/02-agents/providers/github_copilot
- Microsoft Agent Framework Blog
- Microsoft Agent Framework’te Asıl Değişim: Harness, Hosted Agents ve CodeAct
- Microsoft Agent Framework Harness Kararlı Sürümde Yayınlandı
- Agent Framework, Copilot CLI ve Squad ile Ajan Ekipleri
- Microsoft Agent Framework 1.0: Ajanlar Artık Ciddileşti







Yorum gönder