İçeriğe geç

İnceleyici ajanları gönderme

Bu kılavuz, pull request’leri incelemek üzere inceleyici ajanları nasıl göndereceğinizi gösterir.

  1. PR’ı açın ve Genel bakış sekmesine gidin
  2. ⋯ taşma menüsünü açın ve AI’ya sor seçeneğini seçin

Bu, yerleşik pr_review pipeline’ını başlatır; pipeline PR’ın inceleme alanını açar ve çalışma alanının inceleme düzeyine göre inceleyicileri gönderir — varsayılan olarak üç tanesini (yerleşik qa, architect ve engineer ajanları) — ardından lider ajana birleştirme yaptırır. Bu yolda rolleri siz seçmezsiniz. Hangi rollerin çalışacağı ve her birinin hangi dosyalara bakacağı üzerinde kontrol için aşağıdaki MCP aracını veya bir pipeline adımını kullanın.

Mevcut bir inceleme alanının içinden çağırın:

dispatch_reviewers(
space_id: "...",
workspace_id: "...",
reviewers: [
{role: "reviewer"},
{role: "security", scope: "src/auth/**"}
]
)

space_id, workspace_id ve reviewers alanlarının tümü zorunludur. Her inceleyici tanımı bir role ile birlikte isteğe bağlı bir dosya glob’u scope ve varsayılan brifingi değiştiren bir prompt_override alır. İsteğe bağlı bir concurrency (1–8) paralel gönderimleri sınırlar; atlanırsa çalışma alanının review_concurrency ayarı geçerli olur (varsayılan 3, Ayarlar → Çalışma alanı → Genel altında ayarlanır).

Araç, dispatched ve unmatched listeleriyle hemen döner. Gönderilen her inceleyici alana katılımcı olarak eklenir, bir sistem iletisiyle duyurulur ve brifingiyle gönderilir. Bulgular o alana review_node iletileri olarak düşer.

Ayarlar → Çalışma alanı → Pipeline şablonları yolunu açın, bir şablon açın, ardından:

  1. Paletten bir Reviewer (prompt) düğümü ekleyin
  2. Gönderilecek ajanı seçin ve inceleyici prompt’unu yazın; yukarı akış çıktıları için {{key}} yer tutucularını kullanın (örneğin {{repo_local_path}}, {{pr_number}})
  3. Aşağı akış adımları bulguları okuyabilsin diye çıktı anahtarını (varsayılan reviewer_findings) ayarlayın

Adım, ajanı gönderir ve o çalıştırma bitene kadar askıya alır. Ardından motor, çalıştırmanın submit_output yükünü düğümün çıktı anahtarı altında pipeline durumuna devşirir. (Palet açıklaması hâlâ adımın bir complete_task çağrısını beklediğini söylüyor — bu araç mevcut değil; bu dizeyi yok sayın.)

Birkaç inceleyici düğümünü aynı yukarı akış adımına bağlayarak yelpaze şeklinde dağıtın, ardından çıktılarını bir Consolidate (join) düğümüyle birleştirin.

Düzenleyici, gizli terminali erişilebilir her çıkışa yeniden bağlar; böylece yerleşik adımdan sonra eklediğiniz bir düğüm yine çalışır. Aynı yukarı akış adımına bağlanan fan-out düğümleri paralel çalışır.

Bir inceleme pipeline’ının kendi kendine tetiklenmesini istiyorsanız:

  1. Şablonu Ayarlar → Çalışma alanı → Pipeline şablonları yolunda açın
  2. Düğüm kütüphanesinin Tetikleyiciler bölümünden PR yayınlandı ya da Harici PR açıldı öğesini tuvale sürükleyin (ya da Tetikleyici ekle hayalet kutucuğundan seçin)
  3. Yeni düğümü seçin ve denetçisinde Etkin anahtarını açın, ardından şablonu etkinleştirin

Burada iki olay önemlidir ve birbirlerinin yerine kullanılamazlar:

Olay Ne zaman tetiklenir Yük anahtarları
PullRequestPublished Bir PR Control Center üzerinden açılır — oluşturma yüzeyi ya da pr_lifecycle.publish çağıran bir ajan pr_id, workspace_id, repo_owner, repo_name
ExternalPrDetected PR yoklama servisi doğrudan GitHub’da açılmış bir PR bulur repo_owner, repo_name, pr_number, pr_title, author

github.com üzerinde açılan bir PR PullRequestPublished olayını asla yayımlamaz; dolayısıyla yalnızca o olaya bağlanan bir şablon onu görmez. Ayrıca PullRequestPublished hiçbir pr_number taşımaz — betiği veya prompt’u {{pr_number}} değerine başvuran bir adımın ExternalPrDetected tarafından ya da bu değeri sağlayan elle bir çalıştırmayla beslenmesi gerekir.

Kontrol noktası: etkinleştirdikten sonra Pipelines’ı açın ve bir sonraki eşleşen PR için bir çalıştırmanın göründüğünü doğrulayın. Devre dışı bırakılan bir şablon, tetikleyicisinin boşluğa ateşlemesi demektir — motor devre dışı bir şablonu reddeder ve bir çalıştırma başlatmadan döner.

dispatch_reviewers, çalışma alanındaki her ajanı istenen her rol etiketiyle büyük/küçük harfe duyarsız olarak puanlar:

Eşleşme Puan
Rol etiketini içeren bir beceri +3
Rol etiketini içeren bir başlık +2
Rol etiketini içeren bir ajan adı +1

Puanlar birikir ve en yüksek toplam kazanır (eşitlik durumunda, bulunan ilk aday). Hiçbir aday sıfırın üzerinde puan alamazsa tanım, gönderilmek yerine aracın unmatched listesinde geri döner — böylece kimsenin eşleşmediği bir rol bildirilir, asla sessizce atlanmaz.

Bir PR’ın tam olarak bir inceleme alanı vardır; inceleyici başına bir tane değil. pr.ensureSpace tarafından idempotent biçimde oluşturulur, PR’a bir ReviewSpaceAssociation ile bağlanır ve PR’ın head ref’ine göre hazırlanır. Gönderilen her inceleyici o alana katılır ve review_node bulgularını oraya gönderir; bulguları karşılaştırılabilir kılan ve lider ajanın bunlar arasında uzlaşmaya varmasını sağlayan da budur.

Gönderilen her inceleyici kendi AgentRunLog kaydını alır. İlerlemeyi şuradan izleyin:

  • Bulguların canlı olarak aktığı inceleme alanı
  • İnceleme durum çubuğunu ve kararı gösteren PR’ın İncele sekmesi
  • Gözlemlenebilirlik → Canlı (/workspaces/:id/observability), çalıştırma başına durum, canlı geçen süre, transkript çekmecesi ve sonlandırma denetimi içeren ajan kadrosu. Bunun için klavye kısayolu yoktur — kenar çubuğunun alt kısmından ulaşın.