Langkau ke kandungan

Hantar ejen penyemak

Panduan ini menunjukkan cara menghantar ejen penyemak untuk menyemak pull request.

  1. Buka PR dan pergi ke tab Gambaran keseluruhan-nya
  2. Buka menu limpahan ⋯ dan pilih Tanya AI

Ini memulakan pipeline pr_review yang dibenihkan, yang membuka ruang semakan PR itu dan menghantar penyemak untuk tahap semakan ruang kerja — tiga secara lalai (ejen qa, architect dan engineer yang dibenihkan) — kemudian membiarkan ejen ketua mengkonsolidasikan. Anda tidak memilih peranan pada laluan ini. Untuk kawalan ke atas peranan mana yang berjalan dan fail mana yang dilihat oleh setiap satu, gunakan alat MCP atau langkah pipeline di bawah.

Panggilnya dari dalam ruang semakan yang sedia ada:

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

space_id, workspace_id dan reviewers semuanya diperlukan. Setiap spesifikasi penyemak mengambil role serta scope glob fail yang pilihan dan prompt_override yang menggantikan taklimat lalai. concurrency pilihan (1–8) mengehadkan penghantaran selari; apabila ditinggalkan, tetapan review_concurrency ruang kerja terpakai (lalai 3, ditetapkan di Tetapan → Ruang kerja → Umum).

Alat itu kembali serta-merta dengan senarai dispatched dan unmatched. Setiap penyemak yang dihantar ditambahkan ke ruang itu sebagai peserta, diumumkan dengan mesej sistem dan dihantar bersama taklimatnya. Penemuan masuk sebagai mesej review_node dalam ruang itu.

Buka Tetapan → Ruang kerja → Templat pipeline, buka satu templat, kemudian:

  1. Tambahkan nod Reviewer (prompt) dari palet
  2. Pilih ejen untuk dihantar dan tulis prompt penyemak, menggunakan pemegang tempat {{key}} untuk output huluan (contohnya {{repo_local_path}}, {{pr_number}})
  3. Tetapkan kunci output (lalai reviewer_findings) supaya langkah hiliran boleh membaca penemuan itu

Langkah itu menghantar ejen dan menggantung sehingga larian tersebut tamat. Enjin kemudian memungut muatan submit_output larian itu ke dalam keadaan pipeline bawah kunci output nod itu. (Penerangan palet masih menyatakan langkah itu menunggu panggilan complete_task — alat itu tidak wujud; abaikan rentetan itu.)

Sebar keluar dengan menyambungkan beberapa nod penyemak ke langkah huluan yang sama, kemudian konsolidasikan output mereka dengan nod Consolidate (join).

Editor menyambung semula terminal tersembunyi itu ke setiap sink yang boleh dicapai, jadi nod yang anda tambah selepas langkah yang dibenihkan itu masih berjalan. Nod sebaran keluar yang disambungkan ke langkah huluan yang sama berjalan secara selari.

Untuk membolehkan pipeline semakan tercetus sendiri:

  1. Buka templat di Tetapan → Ruang kerja → Templat pipeline
  2. Seret PR diterbitkan atau PR luaran dibuka dari bahagian Pencetus dalam pustaka nod ke atas kanvas (atau pilihnya dari jubin hantu Tambah pencetus)
  3. Pilih nod baharu itu dan hidupkan Didayakan dalam pemeriksanya, kemudian dayakan templat itu

Dua peristiwa penting di sini dan kedua-duanya tidak boleh saling menggantikan:

Peristiwa Tercetus apabila Kunci muatan
PullRequestPublished Satu PR dibuka melalui Control Center — permukaan gubahan, atau ejen yang memanggil pr_lifecycle.publish pr_id, workspace_id, repo_owner, repo_name
ExternalPrDetected Perkhidmatan pengundian PR menemui PR yang dibuka terus pada GitHub repo_owner, repo_name, pr_number, pr_title, author

PR yang dibuka pada github.com tidak pernah membangkitkan PullRequestPublished, jadi templat yang disambungkan hanya kepada peristiwa itu tidak akan melihatnya. Perhatikan juga bahawa PullRequestPublished tidak membawa pr_number — langkah yang skrip atau promptnya merujuk {{pr_number}} mesti diberi suapan oleh ExternalPrDetected, atau oleh larian manual yang membekalkannya.

Titik semak: selepas mendayakan, buka Pipeline dan sahkan satu larian muncul untuk PR sepadan yang seterusnya. Templat yang dibiarkan dilumpuhkan menjadikan pencetusnya tercetus ke dalam kekosongan — enjin menolak templat yang dilumpuhkan dan kembali tanpa memulakan larian.

dispatch_reviewers menilai setiap ejen dalam ruang kerja terhadap setiap label peranan yang diminta, tanpa mengira huruf besar atau kecil:

Padanan Skor
Kemahiran yang mengandungi label peranan +3
Tajuk yang mengandungi label peranan +2
Nama ejen yang mengandungi label peranan +1

Skor terkumpul dan jumlah tertinggi menang (pada seri, calon pertama yang ditemui). Jika tiada calon memperoleh skor melebihi sifar, spesifikasi itu kembali dalam senarai unmatched alat itu dan bukan dihantar — jadi peranan yang tiada sesiapa memadankannya dilaporkan, dan tidak pernah dilangkau secara senyap.

Sesuatu PR mempunyai tepat satu ruang semakan, bukan satu bagi setiap penyemak. Ia dicipta secara idempoten oleh pr.ensureSpace, dipautkan kepada PR itu melalui ReviewSpaceAssociation dan disediakan terhadap ref head PR itu. Setiap penyemak yang dihantar menyertai ruang itu dan menyiarkan penemuan review_node-nya di sana, dan itulah yang menjadikan penemuan itu boleh dibandingkan serta membolehkan ejen ketua mencapai kata sepakat merentasinya.

Setiap penyemak yang dihantar mendapat AgentRunLog sendiri. Ikuti kemajuan di:

  • Ruang semakan, tempat penemuan mengalir masuk secara langsung
  • Tab Semakan PR itu, yang memaparkan bar status semakan dan keputusan
  • Kebolehcerapan → Langsung (/workspaces/:id/observability), senarai ejen dengan status setiap larian, masa berlalu secara langsung, laci transkrip dan kawalan henti paksa. Tiada pintasan papan kekunci untuknya — capai ia dari pengaki bar sisi.