رفتن به محتوا

اعزام عامل‌های بازبین

این راهنما نشان می‌دهد چگونه عامل‌های بازبین را برای بازبینی pull requestها اعزام کنید.

  1. PR را باز کنید و به زبانهٔ نمای کلی آن بروید
  2. منوی ⋯ را باز کنید و پرسش از AI را انتخاب کنید

این کار پایپ‌لاین از پیش تعریف‌شدهٔ pr_review را شروع می‌کند؛ این پایپ‌لاین فضای بازبینی PR را باز می‌کند و بازبین‌ها را بر پایهٔ سطح بازبینی فضای کاری اعزام می‌کند — به‌طور پیش‌فرض سه بازبین (عامل‌های از پیش تعریف‌شدهٔ qa، architect و engineer) — و سپس عامل راهبر را وامی‌دارد تا یافته‌ها را یکپارچه کند. در این مسیر شما نقش‌ها را انتخاب نمی‌کنید. برای کنترل اینکه کدام نقش‌ها اجرا شوند و هرکدام به چه فایل‌هایی نگاه کند، از ابزار MCP یا یک گام پایپ‌لاین (در ادامه) استفاده کنید.

آن را از داخل یک فضای بازبینی موجود فراخوانی کنید:

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

space_id، workspace_id و reviewers هر سه الزامی‌اند. هر مشخصات بازبین یک role می‌گیرد، به‌همراه یک scope اختیاری از نوع glob فایل و یک prompt_override که شرح مأموریت پیش‌فرض را جایگزین می‌کند. یک concurrency اختیاری (1–8) سقف اعزام‌های موازی را تعیین می‌کند؛ اگر ذکر نشود، تنظیم review_concurrency فضای کاری اعمال می‌شود (پیش‌فرض 3، تنظیم‌شده در تنظیمات → فضای کاری → عمومی).

این ابزار بی‌درنگ با دو فهرست dispatched و unmatched برمی‌گردد. هر بازبین اعزام‌شده به‌عنوان یک مشارکت‌کننده به فضا افزوده می‌شود، با یک پیام سیستمی اعلام می‌گردد و با شرح مأموریت خود اعزام می‌شود. یافته‌ها به‌صورت پیام‌های review_node در همان فضا می‌نشینند.

تنظیمات → فضای کاری → قالب‌های پایپ‌لاین را باز کنید، قالبی را باز کنید، سپس:

  1. یک گرهٔ Reviewer (prompt) از پالت بیفزایید
  2. عاملی را که باید اعزام شود انتخاب کنید و پرامپت بازبین را بنویسید، با استفاده از جانگهدارهای {{key}} برای خروجی‌های بالادستی (برای نمونه {{repo_local_path}}، {{pr_number}})
  3. کلید خروجی را تنظیم کنید (پیش‌فرض reviewer_findings) تا گام‌های پایین‌دستی بتوانند یافته‌ها را بخوانند

این گام عامل را اعزام می‌کند و تا پایان آن اجرا معلق می‌ماند. سپس موتور بار دادهٔ submit_output آن اجرا را زیر کلید خروجی گره در حالت پایپ‌لاین برداشت می‌کند. (توضیح پالت هنوز می‌گوید این گام منتظر فراخوانی complete_task می‌ماند — آن ابزار وجود ندارد؛ این رشته را نادیده بگیرید.)

با سیم‌کشی چند گرهٔ بازبین به همان گام بالادستی پخش کنید، و سپس خروجی‌هایشان را با یک گرهٔ Consolidate (join) یکپارچه کنید.

ویرایشگر پایانهٔ پنهان را به هر مقصد قابل‌وصول بازسیم‌کشی می‌کند، پس گرهی که بعد از Step از پیش تعریف‌شده اضافه می‌کنید نیز اجرا می‌شود. گره‌های پخشی که به همان گام بالادستی سیم‌کشی شده‌اند، موازی اجرا می‌شوند.

برای اینکه یک پایپ‌لاین بازبینی خودبه‌خود فعال شود:

  1. قالب را در تنظیمات → فضای کاری → قالب‌های پایپ‌لاین باز کنید
  2. PR منتشر شد یا PR خارجی باز شد را از بخش تریگرها در کتابخانهٔ گره‌ها روی بوم بکشید (یا آن را از کاشی شبح افزودن تریگر انتخاب کنید)
  3. گرهٔ جدید را انتخاب کنید و فعال را در بازرسش روشن کنید، سپس قالب را فعال کنید

دو رویداد اینجا مهم‌اند و جایگزین یکدیگر نمی‌شوند:

رویداد زمان فعال‌شدن کلیدهای بار داده
PullRequestPublished یک PR از طریق Control Center باز شود — سطح ساخت PR، یا عاملی که pr_lifecycle.publish را فراخوانی می‌کند pr_id، workspace_id، repo_owner، repo_name
ExternalPrDetected سرویس پایش PR، PRی را بیابد که مستقیماً روی GitHub باز شده است repo_owner، repo_name، pr_number، pr_title، author

PRی که روی github.com باز می‌شود هرگز PullRequestPublished را منتشر نمی‌کند، پس قالبی که فقط به آن رویداد سیم‌کشی شده باشد آن را نخواهد دید. همچنین توجه کنید که PullRequestPublished هیچ pr_numberی حمل نمی‌کند — گامی که اسکریپت یا پرامپتش به {{pr_number}} ارجاع می‌دهد باید از سوی ExternalPrDetected تغذیه شود، یا از سوی یک اجرای دستی که آن را فراهم می‌کند.

نقطهٔ کنترل: پس از فعال‌سازی، پایپ‌لاین‌ها را باز کنید و تأیید کنید که برای PR منطبق بعدی یک اجرا پدیدار می‌شود. قالبی که غیرفعال بماند، تریگرش را بی‌اثر فعال می‌کند — موتور قالب غیرفعال را رد می‌کند و بدون شروع اجرا بازمی‌گردد.

چگونه یک نقش با یک عامل تطبیق داده می‌شود

بخش با عنوان “چگونه یک نقش با یک عامل تطبیق داده می‌شود”

dispatch_reviewers هر عامل در فضای کاری را در برابر هر برچسب نقش درخواستی، بدون حساسیت به بزرگی و کوچکی حروف، امتیاز می‌دهد:

تطبیق امتیاز
مهارتی که برچسب نقش را در خود دارد +3
عنوانی که برچسب نقش را در خود دارد +2
نام عاملی که برچسب نقش را در خود دارد +1

امتیازها روی هم جمع می‌شوند و بالاترین مجموع برنده است (در تساوی، نخستین نامزد یافته‌شده). اگر امتیاز هیچ نامزدی بالاتر از صفر نرود، مشخصات به‌جای اعزام‌شدن در فهرست unmatched ابزار برمی‌گردد — پس نقشی که هیچ‌کس با آن تطبیق نمی‌یابد گزارش می‌شود و هرگز بی‌سروصدا نادیده گرفته نمی‌شود.

هر PR دقیقاً یک فضای بازبینی دارد، نه یکی برای هر بازبین. این فضا به‌شکل خودتکرار توسط pr.ensureSpace ساخته می‌شود، از طریق یک ReviewSpaceAssociation به PR پیوند می‌خورد و در برابر head ref آن PR تأمین می‌شود. هر بازبین اعزام‌شده به آن فضا می‌پیوندد و یافته‌های review_node خود را همان‌جا می‌گذارد؛ همین است که یافته‌ها را قابل مقایسه می‌کند و به عامل راهبر اجازه می‌دهد میان آن‌ها به اجماع برسد.

هر بازبین اعزام‌شده AgentRunLog خودش را می‌گیرد. پیشرفت را در این‌ها دنبال کنید:

  • فضای بازبینی، جایی که یافته‌ها به‌صورت زنده جریان می‌یابند
  • زبانهٔ بازبینی PR، که نوار وضعیت بازبینی و حکم را نشان می‌دهد
  • مشاهده‌پذیری → زنده (/workspaces/:id/observability)، فهرست عامل‌ها با وضعیت هر اجرا، زمان سپری‌شدهٔ زنده، یک کشوی رونوشت و یک کنترل کشتن. میانبر صفحه‌کلید برای آن وجود ندارد — از پایین نوار کناری به آن برسید.