สั่งงานเอเจนต์รีวิวเวอร์
คู่มือนี้แสดงวิธีสั่งงานเอเจนต์รีวิวเวอร์ให้รีวิว pull request
จากหน้า PR
หัวข้อที่มีชื่อว่า “จากหน้า PR”- เปิด PR แล้วไปที่แท็บ ภาพรวม ของมัน
- เปิดเมนู ⋯ แล้วเลือก ถาม AI
การทำเช่นนี้จะเริ่มไปป์ไลน์ pr_review ที่มาพร้อมระบบ ซึ่งเปิดสเปซรีวิวของ PR
และกระจายรีวิวเวอร์ตามระดับรีวิวของเวิร์กสเปซ — ค่าเริ่มต้นคือสามตัว (เอเจนต์
qa, architect และ engineer ที่มาพร้อมระบบ) — จากนั้นให้เอเจนต์หัวหน้า
รวบรวมผล เส้นทางนี้คุณไม่ได้เลือกบทบาทเอง หากต้องการควบคุมว่าบทบาทใดจะรัน และ
แต่ละตัวดูไฟล์ใด ให้ใช้เครื่องมือ MCP หรือขั้นตอนไปป์ไลน์ด้านล่าง
ผ่านเครื่องมือ MCP dispatch_reviewers
หัวข้อที่มีชื่อว่า “ผ่านเครื่องมือ MCP dispatch_reviewers”เรียกมันจากภายในสเปซรีวิวที่มีอยู่แล้ว:
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 ในสเปซนั้น
จากขั้นตอนไปป์ไลน์
หัวข้อที่มีชื่อว่า “จากขั้นตอนไปป์ไลน์”เปิด การตั้งค่า → เวิร์กสเปซ → เทมเพลตไปป์ไลน์ เปิดเทมเพลต จากนั้น:
- เพิ่มโหนด Reviewer (prompt) จากพาเลตต์
- เลือกเอเจนต์ที่จะสั่งงาน แล้วเขียนพรอมต์ของรีวิวเวอร์ โดยใช้ตัวยึดตำแหน่ง
{{key}}สำหรับเอาต์พุตต้นทาง (ตัวอย่างเช่น{{repo_local_path}},{{pr_number}}) - ตั้งคีย์เอาต์พุต (ค่าเริ่มต้น
reviewer_findings) เพื่อให้ขั้นตอนปลายทางอ่าน ข้อค้นพบได้
ขั้นตอนนี้จะสั่งงานเอเจนต์และพักไว้จนกว่ารันนั้นจะเสร็จ จากนั้นเอนจินจะเก็บเพย์โหลด
submit_output ของรันเข้าสู่สถานะไปป์ไลน์ภายใต้คีย์เอาต์พุตของโหนด (คำอธิบายใน
พาเลตต์ยังบอกว่าขั้นตอนนี้รอการเรียก complete_task — เครื่องมือนั้นไม่มีอยู่จริง
ไม่ต้องสนใจข้อความนั้น)
กระจายสาขาโดยเชื่อมโหนดรีวิวเวอร์หลายตัวเข้ากับขั้นตอนต้นทางเดียวกัน แล้วรวม เอาต์พุตของพวกมันด้วยโหนด Consolidate (join)
ตัวแก้ไขจะเชื่อมเซนติเนลปลายทางที่ซ่อนอยู่ใหม่ไปยังโหนดที่เข้าถึงได้ทุกตัว ดังนั้น โหนดที่คุณเพิ่มต่อจาก Step ที่มีมาให้จึงยังรันอยู่ โหนดที่กระจายสาขาและเชื่อมกับ ขั้นตอนต้นทางเดียวกันจะรันขนานกัน
การสั่งงานอัตโนมัติเมื่อมี PR ใหม่
หัวข้อที่มีชื่อว่า “การสั่งงานอัตโนมัติเมื่อมี PR ใหม่”หากต้องการให้ไปป์ไลน์รีวิวเริ่มทำงานเอง:
- เปิดเทมเพลตที่ การตั้งค่า → เวิร์กสเปซ → เทมเพลตไปป์ไลน์
- ลาก เผยแพร่ PR หรือ เปิด PR ภายนอก จากส่วนทริกเกอร์ของไลบรารีโหนดมาวาง บนแคนวาส (หรือเลือกจากไทล์จาง เพิ่มทริกเกอร์)
- เลือกโหนดใหม่ แล้วเปิดสวิตช์ เปิดใช้ ในตัวตรวจสอบของมัน จากนั้นเปิดใช้งาน เทมเพลต
มีสองเหตุการณ์ที่สำคัญตรงนี้ และสลับกันไม่ได้:
| เหตุการณ์ | เกิดเมื่อ | คีย์เพย์โหลด |
|---|---|---|
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 มีสเปซรีวิวเพียง หนึ่ง สเปซเท่านั้น ไม่ใช่หนึ่งสเปซต่อรีวิวเวอร์หนึ่งตัว
มันถูกสร้างแบบ idempotent โดย pr.ensureSpace เชื่อมกับ PR ผ่าน
ReviewSpaceAssociation และจัดเตรียมไว้กับ head ref ของ PR รีวิวเวอร์ที่ถูกสั่งงาน
ทุกตัวจะเข้าร่วมสเปซนั้นและโพสต์ข้อค้นพบ review_node ของมันที่นั่น ซึ่งเป็นสิ่งที่
ทำให้ข้อค้นพบเปรียบเทียบกันได้ และทำให้เอเจนต์หัวหน้าเข้าถึงฉันทามติข้ามข้อค้นพบ
เหล่านั้นได้
ติดตามการสั่งงาน
หัวข้อที่มีชื่อว่า “ติดตามการสั่งงาน”รีวิวเวอร์ที่ถูกสั่งงานแต่ละตัวมี AgentRunLog ของตัวเอง ติดตามความคืบหน้าได้ที่:
- สเปซรีวิว ซึ่งข้อค้นพบสตรีมเข้ามาแบบสด
- แท็บ รีวิว ของ PR ซึ่งแสดงแถบสถานะการรีวิวและคำตัดสิน
- การสังเกตการณ์ → สด (
/workspaces/:id/observability) รายชื่อเอเจนต์พร้อม สถานะต่อรัน เวลาที่ผ่านไปแบบสด ลิ้นชักทรานสคริปต์ และตัวควบคุมสำหรับหยุด ไม่มีทางลัดแป้นพิมพ์สำหรับมัน — เข้าถึงได้จากส่วนท้ายของแถบด้านข้าง