GitHub Copilot Harness ile Agent Framework Entegrasyonu

GitHub Copilot Harness, Microsoft Agent Framework ile .NET ve Python tarafında kararlı sürüme ulaştı. Copilot’un ajan döngüsü korunurken araçlar, akış, middleware, gözlemlenebilirlik ve insan onayı Agent Framework’ün modeline entegre ediliyor.

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‘ı ApprovalRequiredAIFunction ile 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

Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

4 Yorum

  1. Harness entegrasyonunu merak ediyordum, özellikle insan onayı mekanizması production ortamında nasıl çalışıyor acaba? Bizim ekipte de .NET tarafında denemelere başladık ama middleware katmanı bazen beklenmedik davranışlar sergiliyor.

  2. Tam zamanında bir yazı, .NET tarafında middleware entegrasyonunu merak ediyordum zaten. İnsan onayı mekanizması pratikte nasıl işliyor acaba, özellikle kritik işlemlerde Copilot’un kendi kararı mı geçiyor yoksa her seferinde mi bekliyor?

  3. Tam zamanında geldi bu entegrasyon. Middleware ve insan onayı kısmı özellikle ilgimi çekti, acaba ajan döngüsüne müdahale etmek pratikte ne kadar kolay oluyor? Python tarafında deneyen var mı henüz?

Yoruma kapalı.

✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Kategoriler
Ara
Paylaş
WhatsApp
İçindekiler
← Azure Boards: Kartlarda Pull R...
App Service for Linux’ta... →
📩

Gitmeden önce!

Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

📬 Haftalık bülten: Teknoloji + AI haberleri
Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.