تخطَّ إلى المحتوى

إرسال وكلاء مراجعة

يشرح هذا الدليل كيف تُرسل وكلاء مراجعة لمراجعة طلبات السحب.

  1. افتح طلب السحب وانتقل إلى لسان نظرة عامة
  2. افتح قائمة ⋯ (مزيد من الإجراءات) واختر اسأل الذكاء الاصطناعي

يبدأ ذلك خط الأنابيب pr_review المُنشأ مع مساحة العمل، فيفتح مساحة مراجعة طلب السحب ويُرسل المراجعين حسب مستوى المراجعة في مساحة العمل — ثلاثة افتراضيًا (الوكلاء المُنشَؤون مع مساحة العمل 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. أضف عقدة مراجع (مطالبة) من مكتبة العقد
  2. اختر الوكيل الذي يُرسَل واكتب مطالبة المراجع، مستخدمًا عناصر نائبة {{key}} لمخرجات الخطوات السابقة (مثل {{repo_local_path}} و{{pr_number}})
  3. اضبط مفتاح الإخراج (الافتراضي reviewer_findings) حتى تستطيع الخطوات اللاحقة قراءة النتائج

تُرسل الخطوة الوكيل وتبقى معلّقة إلى أن ينتهي ذلك التشغيل. ثم يستخرج المحرّك حمولة submit_output الخاصة بالتشغيل إلى حالة خط الأنابيب، تحت مفتاح إخراج العقدة. (ما زال وصف العقدة في المكتبة يقول إن الخطوة تنتظر استدعاء complete_task — وهذه الأداة غير موجودة؛ تجاهل العبارة.)

للتفرع، اربط عدة عقد مراجع بالخطوة السابقة نفسها، ثم جمّع مخرجاتها بعقدة تجميع (ضم).

يعيد المحرّر وصل العقدة الطرفية المخفية بكل عقدة يمكن بلوغها وليس لها مخرج، فتظل العقدة التي تضيفها بعد الخطوة المُنشأة Step تعمل. عقد التفرع الموصولة بالخطوة السابقة نفسها تعمل بالتوازي.

إرسال تلقائي عند طلب سحب جديد

قسم بعنوان “إرسال تلقائي عند طلب سحب جديد”

لكي ينطلق خط أنابيب المراجعة من تلقاء نفسه:

  1. افتح القالب من الإعدادات ← مساحة العمل ← قوالب خطوط الأنابيب
  2. اسحب نُشر PR أو فُتح PR خارجي من قسم المشغّلات في مكتبة العقد إلى اللوحة (أو اختره من البطاقة الشبحية إضافة مشغّل)
  3. حدّد العقدة الجديدة وفعّل ممكّن في إعدادات العقدة، ثم فعّل القالب

حدثان يهمان هنا، ولا يحل أحدهما محل الآخر:

الحدث ينطلق عندما مفاتيح الحمولة
PullRequestPublished يُفتح طلب سحب عبر Control Center — سطح إنشاء طلب السحب، أو وكيل يستدعي pr_lifecycle.publish pr_id، workspace_id، repo_owner، repo_name
ExternalPrDetected تجد خدمة استطلاع طلبات السحب طلب سحب فُتح مباشرة على GitHub repo_owner، repo_name، pr_number، pr_title، author

طلب سحب يُفتح على github.com لا يرفع PullRequestPublished أبدًا، فالقالب الموصول بذلك الحدث وحده لن يراه. ولاحظ أيضًا أن PullRequestPublished لا يحمل pr_number — فالخطوة التي يشير سكربتها أو مطالبتها إلى {{pr_number}} لا بد أن تغذّيها ExternalPrDetected، أو تشغيل يدوي يوفّر القيمة.

نقطة التحقّق: بعد التفعيل، افتح خطوط الأنابيب وتأكد من ظهور تشغيل لطلب السحب المطابق التالي. قالب يُترك معطّلًا يجعل مشغّله ينطلق في فراغ — يرفض المحرّك القالب المعطّل ويعود من غير أن يبدأ تشغيلًا.

يحتسب dispatch_reviewers لكل وكيل في مساحة العمل درجة مقابل كل تسمية دور مطلوبة، من غير تمييز بين الحروف الكبيرة والصغيرة:

المطابقة الدرجة
مهارة تحتوي تسمية الدور +3
لقب يحتوي تسمية الدور +2
اسم وكيل يحتوي تسمية الدور +1

تتراكم الدرجات، ويفوز أعلى مجموع (وعند التعادل يفوز أول مرشح يُعثر عليه). إذا لم تتجاوز درجة أي مرشح الصفر، يعود التوصيف في قائمة unmatched الخاصة بالأداة بدل أن يُرسَل — فالدور الذي لا يطابقه أحد يُبلَّغ عنه، ولا يُتخطى في صمت.

لكل طلب سحب مساحة مراجعة واحدة بالضبط، لا مساحة لكل مراجع. يُنشئها pr.ensureSpace إنشاءً متماثل الأثر، ويربطها بطلب السحب عبر ReviewSpaceAssociation، وتُجهَّز على مرجع head للطلب. ينضم كل مراجع يُرسَل إلى تلك المساحة وينشر فيها نتائج review_node، وهذا ما يجعل النتائج قابلة للمقارنة ويتيح للوكيل القائد أن يصل إلى إجماع بينها.

يحصل كل مراجع يُرسَل على AgentRunLog خاص به. تابع التقدّم في:

  • مساحة المراجعة، حيث تصل النتائج مباشرة
  • لسان مراجعة لطلب السحب، ويعرض شريط حالة المراجعة والحكم
  • قابلية الملاحظة ← مباشر (/workspaces/:id/observability)، كشف الوكلاء مع حالة كل تشغيل، والوقت المنقضي المباشر، ودرج النص، وزر إنهاء الوكيل. لا اختصار لوحة مفاتيح له — تصل إليه من تذييل الشريط الجانبي.