- Agent Client Protocol (ACP), kod editörleri ile yapay zeka kodlama ajanları arasındaki iletişimi standartlaştırmak için tasarlanmış bir protokoldür
- Daha önce, her editörün belirli bir ajanla bağlantı kurabilmesi için ayrı özel entegrasyon çalışmaları gerekiyordu; bu da uyumluluk sınırlamaları ve geliştiriciye kilitlenme sorunlarına yol açıyordu
- ACP, Language Server Protocol (LSP) gibi standart bir iletişim yöntemi sunarak, bir kez uygulandığında tüm uyumlu editörler ve ajanlar arasında serbestçe bağlantı kurulmasını sağlar
- Editör içinde ajanı bir alt süreç olarak çalıştırır, iletişim için JSON-RPC over stdio kullanır ve UI öğelerinde diff gösterimi ile Markdown tabanlı çıktı desteği sunar
- Şu anda Zed, neovim (CodeCompanion eklentisi) gibi araçlar ACP'yi destekliyor; ajan tarafında ise Gemini CLI uyumludur ve destek kapsamının ileride genişlemesi bekleniyor
Giriş
- Agent Client Protocol (ACP), uzak geliştirme, port yönlendirme, komut yürütme gibi sunucu-istemci etkileşimlerini standartlaştırmak amacıyla tasarlanmış açık bir protokoldür
- Mevcut sorunlar: Yapay zeka kodlama ajanları ile editörler yakından bağlantılı olsa da birlikte çalışabilirlik varsayılan olarak garanti edilmez
- Her editör, desteklemek istediği her ajan için özel entegrasyon kurmak zorundadır
- Ajanların, kullanıcılara ulaşabilmesi için belirli editör API'lerini uygulaması gerekir
- Bu durum entegrasyon yükü, sınırlı uyumluluk ve geliştirici bağımlılığı sorunlarına yol açar
- ACP'nin çözümü: ACP, ajanlar ile editörler arasında standartlaştırılmış bir protokol sunar
- ACP'yi uygulayan ajanlar, tüm uyumlu editörlerde çalışabilir
- ACP'yi destekleyen editörler, ACP uyumlu ajan ekosisteminin tamamına erişebilir
- Bağımsız inovasyonu mümkün kılar ve geliştiricilerin iş akışlarına en uygun araçları seçmesine olanak tanır
ACP'ye genel bakış
- Çalışma şekli: Kullanıcılar çoğunlukla kod editöründe çalışır ve belirli görevler için ajanı çağırır
- Ajan, editörün alt süreci olarak çalışır
- İletişim için stdio üzerinden JSON-RPC kullanılır
- Veri biçimi: MCP'nin JSON biçimi yeniden kullanılır ve diff gösterimi gibi ajan kodlama UX öğeleri için özel türler içerir
- Metin biçimi: Kullanıcı okunabilirliği için varsayılan olarak Markdown kullanılır
- HTML render etmeden de zengin biçimlendirme mümkündür
- Protokol hâlen geliştirme aşamasında olsa da, ilgi çekici kullanıcı deneyimleri oluşturmak için yeterince olgundur
Mevcut destek durumu
- Editörler
- Ajanlar
- Gemini: Gemini CLI üzerinden ACP desteği
- Ek ajan desteği planlanıyor
Sonuç
- ACP, LSP'nin başarılı örneğini takip ederek yapay zeka kodlama ajanları ile editörler arasındaki birlikte çalışabilirliği önemli ölçüde geliştirir
- Geliştiriciler, belirli bir ajan ya da editöre bağımlı kalmadan en iyi araç kombinasyonunu özgürce seçebilir
- Protokolün yaygınlaşması, ekosistemin ölçeklenebilirliğini artırırken geliştirici iş akışlarının verimliliğini ve esnekliğini de yükseltebilir
1 yorum
Hacker News görüşü
Claude'dan yapay zeka ajanları ile IDE/editörler arasında bir iletişim protokolü oluşturmasını, ayrıca Node, Python ve Rust kütüphaneleri geliştirmesini ve hatta bir açılış sayfası olan web sitesi kurmasını isteme fikrini düşündüm
Dürüst olmak gerekirse, Gemini'nin bu protokolü uygulayan bir Sublime Text eklentisini kullanıp kullanamayacağını test etme konusunda cezbediliyorum; son dönemde çoğu kullanıcı VSCode tarafına kayıyor gibi görünüyor, bu yüzden yeni araçlar da desteği yalnızca oraya verme eğiliminde oluyor. Sublime artık desteklenmediği için zorla taşınmak istemiyorum; Sublime gerçekten harika bir editör ve arkasında dev bir şirket desteği de yok
Ayrıca izleri gizlemek için yalnızca Gemini'yi destekleyen bir ajan haline getirmek de mümkün olabilir gibi geliyor
Komik, fazlasıyla benmerkezci bir istek
Bu projenin gerçekten başarılı olmasını diliyorum; Zed işbirliğinin özüne geri dönüyor gibi ve bu akım agentic IDE kategorisinde de değişim yaratabilir. Böyle olursa Zed doğrudan rekabete zaman harcamak zorunda kalmaz ve kendine bir farklılık da yaratır. CLI ajanları arasında ne kadar benimseneceğini merak ediyorum (Gemini CLI ile şimdiden entegre olduğunu görmek de güzel). LLM ve kodlama asistanı pazarındaki sert rekabet her zaman memnuniyet verici; bu tür değişimlerin araçlar arası geçiş maliyetini sürekli düşüreceğini düşünüyorum
Ben de neredeyse Zed'e geçecek durumdayım; yıllardır istediğim editör özelliklerinin neredeyse hepsi var. Hayal bile etmediğim harika özellikleri de çok. Mevcut durumdan hayal kırıklığına uğrayıp kendi editör prototipimi yapmayı bile denemiştim ama iyi bir editör yapmak gerçekten çok emek istiyor. Zed o emeği verdi. Açık biçimde işbirliği yapma yönündeki adımlarını memnuniyetle karşılıyorum
Ciddiyim, umarım bu değişim vasat VS Code fork'larının ortadan kalkmasına vesile olur. Zed'in de hak ettiği takdiri almasını isterim. Yapay zeka editörleri sanki gerçekten sektörün tüm oksijenini tüketmiş gibi hissettiriyor
Claude Code'un ACP kullanabilmesi için araç geliştiriyorum (çünkü CC ve Zed'i sık kullanıyorum). Şimdiye kadar Claude Code SDK ve ACP Client kütüphanesiyle epey başarılı ilerledim. Hâlâ biraz cilalanması gereken yerler var; muhtemelen yarın biraz daha toparlayıp açık hale getireceğim
Zaten agentcommunicationprotocol.dev diye bir ACP mevcut, bu yüzden isim kafa karıştırıcı olabilir. İki proje arasında farklar var ama yine de insanın aklına takılıyor
En çok merak ettiğim şey, neden LSP sunucusu ya da LSP protokolünün bir uzantısı LLM'in ihtiyaç duyduğu şeyleri kapsayamıyor
Ben yapay zekayı gerçek bir insan geliştirici gibi ele almayı tercih ediyorum. Örneğin yapay zekadan bir özellik geliştirmesini, hata düzeltmesini ya da refactoring yapmasını istiyorum, sonra ortaya çıkan commit'i okuyorum. Commit hoşuma gitmezse
git reset --hardyapıp prompt'u iyileştirerek yapay zekaya tekrar denetiyorum. Buna "prompt coding" diyorum. Kodlama ortamımla yapay zeka arasında doğrudan bir etkileşim olmasına ihtiyaç duymuyorum; o, insan geliştirici gibi çalışıyor ve editörüme dokunmuyor ilgili açıklamaBugünlerde prompt yazmanın daha iyi olduğu söyleniyor ama bu konuda biraz şüpheliyim. Yapay zeka bazı çok spesifik işlerde yardımcı oluyor ama hâlâ çok fazla saçmalıyor; özellikle API gibi var olmayan şeyler uydurması kabul etmesi zor bir durum
Ben yapay zekaya commit attırmıyorum. Yapay zekanın çıktısında neredeyse her zaman çeşitli düzeltmeler yapmam gerekiyor. Yeniden prompt vermeyi tekrar tekrar denemek zaman kaybı geliyor; başta istediğim yanıtı vermezse genelde doğrudan kendim düzeltiyorum. Ama en baştan ne istediğimi anlayıp doğru kodu verirse o zaman yapay zekaya güvenim artıyor
Umarım bu fikir daha da yayılır. Merak ettiğim şeylerden biri dosya arama ile kaydedilmemiş dosyalar arasındaki fark. Pratikte ajanlar dosya sisteminde arama yaparken sık sık
ripgrepgibi araçları kullanıyor, ancak protokol kaydedilmemiş dosyaları da okuyup yazabilirse doğruluk sorunu ortaya çıkıyor; çünküripgrepkaydedilmemiş dosyaları arayamazAnthropic'in bu protokolü Claude Code'a getirmesini gerçekten istiyorum. En azından VSCode'da sunulan entegrasyon seviyesini bekliyorum. Hatta en azından editörün tanı bilgilerine erişim olsa bile çok iyi olur
MCP de başlangıçta stdio üzerinde JSON-RPC ile yola çıkmıştı. GitHub Codespaces, devcontainers ve "background agents" gibi ortamlar yaygınlaşırken JSON over SSE gibi bir evrim olur mu diye merak ediyorum. Şu anda geliştirme ortamımda yerelde Claude Code kullanıyorum ve uygulama container içinde çalışıyor. Ajanın
docker compose exec backendkomutunu otonom şekilde çalıştırabilmesi mümkün.git worktreetabanlı bir çalışma biçimine geçmemin önündeki engeller ise veritabanı motorunu paylaşma gereksinimi (yerel kaynakların yetersizliği) ve ilk migration süresi. Bu yükü buluta offload etmek de ilginç bir senaryo olabilirUmarım bu tür protokoller yaygınlaşır da ben de sürekli tek bir mevcut IDE'ye bağlı kalmak zorunda olmam