A2A Gateway
Genel Bakış
A2A (Agent2Agent), farklı sağlayıcılara ait AI ajanlarının birbirleriyle standart bir protokol üzerinden görev alışverişi yapmasını sağlayan açık bir protokoldür. Apinizer'da A2A, diğer proxy tipleriyle (REST, SOAP, AI, MCP) aynı seviyede birinci sınıf bir API Proxy tipidir — kendi başına ayrı bir yönetim ekranı veya kimlik doğrulama modeli taşımaz, mevcut API Proxy yaşam döngüsünün (deploy, redeploy, rollback, export/import) tamamını paylaşır.
Önceki sürümlerde bir ajan yayınlamak, kendi CRUD ekranına, tek bir hedef proxy'ye ve kendi kimlik doğrulama moduna (Yok / API Anahtarı) sahip ayrı bir "A2A Inbound Agent" kaydı gerektiriyordu. Bu model tamamen kaldırıldı. Artık ajan yayınlamak, A2A tipinde bir API Proxy oluşturup onun yönlendirme modunu seçmekten ibarettir; kimlik doğrulama da proxy'nin normal politika zincirinden gelir. Ayrıca yeni modelde dış bir A2A ajanına passthrough yapabilme ve birden çok dış ajanı tek proxy arkasında birleştirebilme gibi eski modelde bulunmayan yetenekler eklendi. Ayrıntı için bu sayfanın sonundaki Eski Sürümden Geçiş bölümüne bakın.
Bir A2A Gateway, Yönlendirme sekmesindeki Routing Modu ayarına göre iki yönlendirme modundan biriyle çalışır:
- Agent'ı Apinizer yayınlar (bu sayfada Agent Yayınla) — proxy, kendi LLM yapılandırmasıyla desteklenen bir A2A ajanı olarak kendini yayınlar
- Dış bir agent'a yönlendir (bu sayfada Passthrough) — proxy görevleri dış bir A2A ajanına iletir, yol boyunca skill filtresi ve agent card yeniden yazımı uygular
Menüdeki A2A Gateway girişi, A2A Gateway'lerinizin kart görünümlü listesini açar — LLM Gateway'lerle aynı düzen; bir kartı açtığınızda o proxy'nin yönlendirme, politika ve trace/trafik/analitik/görev sekmelerine ulaşırsınız.
Apinizer'ı bunun tersi yönde, yani dış A2A ajanlarına görev gönderen taraf olarak kullanmak için ayrı bir A2A Gateway'e gerek yoktur; bu, herhangi bir LLM Gateway'e eklenen A2A Çağrısı (LLM) / A2A Çağrısı (Sabit) politikasıyla yapılır, bkz. Giden Ajan Çağrısı.
A2A protokolü JSON-RPC 2.0 üzerine kuruludur. Apinizer, hem senkron görev gönderimini hem de Sunucu Tarafından Gönderilen Olaylar (SSE) ile akış (streaming) yanıtları destekler.
Hızlı Başlangıç
A2A tipinde bir API Proxy oluşturma akışını başlatın — proxy tipi zaten A2A olarak seçili gelir, bir tip seçim ekranı gösterilmez ve doğrudan minimal bir oluşturma formu açılır. Proxy'ye tek bir istemci relative path'i (örn. /a2a/asistan) atanır — bu tek yol, hem JSON-RPC trafiğini hem de discovery belgesini taşır.
Proxy'nin Yönlendirme sekmesinde Routing Modu'nu seçin: proxy'nin kendi ajanı olarak yayın yapması için Agent'ı Apinizer yayınlar, dış bir A2A ajanına geçiş yapması için Dış bir agent'a yönlendir. Aşağıdaki Modlar bölümüne bakın.
Agent Yayınla modunda aynı Yönlendirme sekmesinde bir LLM hedefi seçmeniz zorunludur — bu ayarlanmadan yönlendirme kaydedilemez. Passthrough modunda arka uç A2A ajanını/ajanlarını satır içi tanımlayın ve gerekiyorsa skill izin listesini daraltın.
Proxy'yi normal bir API Proxy gibi bir ortama deploy edin. Deploy geçmişi, redeploy ve rollback davranışı diğer proxy tipleriyle birebir aynıdır.
Bir A2A istemcisi önce {relativePath}/.well-known/agent-card.json üzerinden ajanı keşfeder, ardından proxy'nin relative path'ine JSON-RPC ile görev gönderir (SendMessage, ...). Discovery belgesi kimlik doğrulamadan muaftır; asıl erişim kontrolü, istek proxy'nin politika zincirinden geçerken uygulanır.
Modlar
Agent Yayınla (Agent Expose)
Agent'ı Apinizer yayınlar olarak seçilir. Proxy kendi Agent Card'ını yayınlar ve görevleri kendi LLM backend'i (Yönlendirme sekmesindeki LLM hedefleri) üzerinden işler — başka bir proxy'ye devir (loopback) yoktur. Agent Card ayarlarında açıklama override'ı, girdi/çıktı modaliteleri ve manuel bir skill listesi tanımlanabilir; skill listesi boş bırakılırsa proxy'nin adı ve açıklamasından tek bir varsayılan skill türetilir — kart hiçbir zaman boş/doğrulanmamış yayınlanmaz.
Push bildirimleri bu modda proxy bazında açılıp kapatılabilir; ayrıca cluster-içi (private network) hedeflere push gönderilmesine izin verecek ayrı bir anahtar vardır (bkz. Güvenlik ve Governance).
Passthrough
Dış bir agent'a yönlendir olarak seçilir. Proxy'ye gelen her A2A çağrısını, arka uç bir A2A ajanına iletir. Dış ajanın Agent Card'ı, bu proxy'nin kendi adresini ve gerçek kimlik doğrulama şemasını yansıtacak şekilde yeniden yazılarak (hostname + güvenlik şeması rewrite) yayınlanır — istemci hiçbir zaman dış ajanın gerçek adresini görmez. Bir skill izin listesi ile Agent Card'da hangi skill'lerin yayınlanacağı daraltılabilir.
Skill izin listesi (ve aşağıdaki kimlik bazlı erişim listesi) Passthrough modunda yalnızca Agent Card yayınında uygulanır — A2A'nın kablo protokolü, MCP'nin araç çağrısındaki gibi çağrı-anında hangi skill'in hedeflendiğini taşıyan bir alan içermez. Bu nedenle bir görev gönderme çağrısı (SendMessage) çağrı anında skill bazında filtrelenemez: izinsiz bir skill Agent Card'da hiç görünmez, ama o skill adını başka bir yoldan zaten bilen bir çağıran yine de bir görev gönderebilir. Gerçek yetkilendirme bu durumda dış ajanın kendi tarafına kalır.
Passthrough modundaki arka uç A2A ajanı/ajanları, proxy'nin Yönlendirme sekmesinde, ayrı bir bağlantı ekranına gitmeden doğrudan tanımlanır:
Yönlendirme sekmesinin Passthrough bölümünde Sunucu Ekle ile bir satır açın; ajanın uç nokta adresini, kimlik doğrulama bilgilerini ve gerekiyorsa mTLS ayarlarını aynı satırda girin.
Proxy ilk kez deploy edildiğinde Apinizer, tanımlı ajanın/ajanların Agent Card'ını otomatik getirir; yetenekler ve desteklenen modaliteler doğrulanır.
Gönderilen görevlerin durumunu proxy detayındaki Görevler sekmesinden canlı izleyin.
Arka uç ajan, hedefin gerektirdiği kimlik doğrulama şemasına göre yapılandırılır; OAuth2 client credentials akışı da dahil olmak üzere token gerektiren hedeflere bağlanabilirsiniz — token alımı çalışma zamanında otomatik yapılır. Kullanılabilir şemalar için Giden Kimlik Doğrulama bölümüne bakın.
Passthrough yapılandırması APIops REST API ile de yönetilebilir; bkz. API Referansı: API Proxies — Update A2A Routing.
Arka Uç Ajanı Uygulamak: Listeye Uygula → Kaydet → deploy
Arka uç ajanı, satırın sağından açılan çekmecede eklersiniz veya düzenlersiniz. Çekmecedeki Listeye Uygula düğmesi değişikliği yalnızca tabloya yazar — o adımda sunucuya hiçbir şey gitmez. Kalıcı olması için sekmenin altındaki Kaydet düğmesine basmanız gerekir; kaydedilmemiş değişiklik varken sekmenin üstünde bir uyarı durur ve bu uyarı yalnızca kayıt başarılı olduğunda kalkar. Sıra şudur: Listeye Uygula → Kaydet → deploy. Ortadaki adım atlanırsa tabloda yeni ajan görünür, gateway ise eski yapılandırmayı sunmaya devam eder.
Gateway her zaman en son deploy edilen yapılandırmayı sunar. Yönlendirme sekmesini kaydetmek tek başına çağıranların gördüğünü değiştirmez; arka uç ajanlar, yayınlanan skill kataloğu ve yönlendirme modu ancak proxy'yi o ortama yeniden deploy ettiğinizde istemcilere ulaşır. Kaydedilmiş ama deploy edilmemiş değişiklik varken, etkilenen ortamları adlarıyla listeleyen bir uyarı şeridi Yönlendirme sekmesinin üstünde görünür.
Giden Ajan Çağrısı
Apinizer üzerinden dış bir A2A ajanına görev göndermek istediğinizde, bu görevi fiilen ileten bileşen A2A Çağrısı (LLM) politikasıdır (bir LLM Gateway'inin yanıt akışına eklenir). Hedef ajan, Passthrough modundaki gibi politikanın kendi ekranında satır içi tanımlanır. Modelin kararından bağımsız, yönetici tarafından sabit bir skill çağrısı yapmak — istek akışında veya hata akışında — için A2A Çağrısı (Sabit) bölümüne bakın.
Bir LLM Gateway'inin yanıt akışına A2A Çağrısı (LLM) politikasını ekleyin.
A2A Ajanı (Satır İçi) bölümünde uç nokta adresini, kimlik doğrulama bilgilerini ve gerekiyorsa mTLS ayarlarını girin.
Skill'leri Keşfet / Yeniden Tara butonu ajana bağlanır, Agent Card'ı getirir ve skill listesini doğrular — kaydetmeden önce çalışır, ayrı bir "bağlantıyı test et" adımı yoktur.
Boş bırakılırsa keşfedilen tüm skill'lere izin verilir. Kısıtlamak için İzinli Skill'ler listesinden seçim yapın.
Bu ajan tanımı da Passthrough modundakiyle aynı SSRF korumasına tabidir (bkz. Güvenlik ve Governance). Politika ekranındaki A2A Bağlantısı alanı geriye dönük uyumluluk için korunur: satır içi ajan tanımlıyken devre dışı kalır, çalışma zamanında ikisinden yalnızca biri kullanılır.
Girdiğiniz uç nokta, görevlerin gönderildiği adrestir — ajanın görev temel adresini (base URL) girin, kart adresini değil. Ajanın Agent Card'ı önce aynı adreste aranır; kart orada yayınlanmıyorsa bu adresin altındaki standart keşif yolunda (.../.well-known/agent-card.json) aranır. Doğrudan kart adresini (.../.well-known/agent-card.json) girerseniz kart keşfi çalışır ancak görevler de aynı adrese gönderildiğinden görev gönderimi başarısız olur.
Bu politika da APIops REST API ile eklenip güncellenebilir; bkz. API Referansı: Policies.
A2A Çağrısı (Sabit)
A2A Çağrısı (Sabit) politikası, modelden bağımsız olarak yönetici tarafından önceden seçilmiş tek bir skill'i dış bir A2A ajanına gönderir. A2A Çağrısı (LLM)'den farklı olarak modelin bir araç çağrısı döndürmesini beklemez; herhangi bir proxy tipinin istek akışında veya hata akışında çalışabilir.
| Alan | Açıklama |
|---|---|
| Hedef Skill | Çağrılacak skill; ajanın keşfedilmiş skill listesinden seçilir. Katalogda bulunmayan skill fail-closed reddedilir. |
| Mesaj Şablonu | Ajana gönderilen mesaj gövdesi. ${DEGISKEN_ADI} ortam değişkenleri önce çözülür; #{...} bağlam değişkenleri sonra çözülür. |
| Bekleme Modu | Gönder ve Unut (varsayılan) — çağrıyı asenkron dağıtır, akışı bloklamaz. Değişkene Senkron — sonucu bekler ve belirtilen çıktı değişkenine yazar. |
| Çıktı Değişken Adı | Yalnızca Bekleme Modu Değişkene Senkron olduğunda zorunludur. |
| Çağrı Zaman Aşımı (ms) | Gönderme başına HTTP zaman aşımı. Varsayılan: 30 000 ms. |
| Görev Bekleme Zaman Aşımı (ms) | Asenkron görev bekleme döngüsü için toplam süre sınırı. Varsayılan: 60 000 ms. |
Hata davranışı. İki başarısızlık kategorisi vardır:
- Yapılandırma sorunları — satır içi ajan ayarlanmamış, hedef skill boş ya da ortam değişkeni çözülememiş, skill katalogda yok veya çağıranın kimliği erişim kurallarınca reddedilmiş — isteği HTTP 500 / ERR-286 ile bloklar.
- Dağıtım başarısızlıkları — zaman aşımı, uzak ajan hatası veya taşıma hatası — yalnız loglanır, istek veya hata akışını asla bloklamaz. Değişkene Senkron modunda çıktı değişkeni boş kalır; kullanmadan önce kontrol edin.
Ajan sonucu çıktı değişkenine kişisel veri maskeleme uygulanmadan yazılır.
Bu politika da APIops REST API ile eklenip güncellenebilir; bkz. API Referansı: Policies.
Yalnız Yanıt Akışı
A2A Çağrısı (LLM) politikası, modelin döndürdüğü araç çağrıları üzerinde çalışır. Bu çağrılar yalnız yanıtta bulunur. Bu yüzden proxy bu politikayı ve MCP Çağrısı (LLM) politikasını yalnız yanıt akışında kabul eder. Platform hatada bunları "A2A Agent Call" ve "MCP Tool Call" adlarıyla anar. Birini istek akışına veya hata akışına koyan kayıt şu mesajla reddedilir: "MCP Tool Call and A2A Agent Call policies can be placed only in the response flow". Denetim proxy düzeyini, metot düzeyini ve politika gruplarını kapsar. Her kayıt yolu için geçerlidir: APIops REST API ve içe aktarma dahil. Platform politikayı sizin yerinize başka bir akışa taşımaz. A2A Çağrısı (Sabit) ve MCP Çağrısı (Sabit) politikaları bu denetimin dışındadır.
Giden Kimlik Doğrulama
Passthrough proxy'nin A2A ajan satırı ve A2A Çağrısı politikalarının satır içi ajanı, MCP sunucusuyla aynı kimlik doğrulama şemalarını kullanır. Şemalar (Yok, Bearer Token, OAuth2 Client Credentials, mTLS, API Anahtarı (Başlık), Basic Kimlik Doğrulama ve OAuth2 Token Exchange), token exchange kuralları ve Auth Keşfet düğmesi için Arka Uç Kimlik Doğrulama bölümüne bakın.
A2A için farklar:
- Auth Keşfet, Agent Card'ı girdiğiniz adresten, sonra bu adresin
/.well-known/agent-card.jsonyolundan okur. Şemayı kartın güvenlik şemalarından önerir ve hem düz biçimi hem A2A 1.0 biçimini kabul eder. Kart okunamazsa bir not görünür. - Token exchange token'ıyla yapılan çağrı 401 veya 403 alırsa gateway yeniden denemez.
- Skill'leri Keşfet / Yeniden Tara ve sağlık denetimi exchange token'ı alamaz, çünkü çağıran token'ı taşımazlar. Bu şemada kart okuma reddedilir.