แก่นของเรื่อง
แนวคิดหลัก: วิธี multi-agent ทั้งสามต่างกันที่ "ใครถือแผน" ไม่ใช่ที่จำนวน agent เลือกวิธีตามคำตอบข้อนี้ แล้วเพิ่ม agent เฉพาะเมื่อได้ของที่ session เดียวให้ไม่ได้
ทำไมถึงได้ผล (กลไก):
- ถ้า LLM ตัดสินว่าจะวนต่อหรือหยุดทีละ turn โครงของงานจะเปลี่ยนทุกครั้งที่รัน ย้าย loop และเงื่อนไขหยุดเข้าโค้ด (workflow) ได้ลำดับงานที่คาดเดาและทำซ้ำได้
- งานย่อยที่เริ่มจาก context สะอาด ไม่ถูกปนด้วยของเก่า ผลจึงนิ่งกว่า และ context หลักไม่บวม (subagent)
- เมื่อโจทย์ต้องการมุมมองที่ขัดกัน การให้ agent คุยและท้าทายกันเองให้ผลที่ session เดียวสร้างไม่ได้ (ทีม)
20% ที่สำคัญที่สุด:
- ถามก่อนว่า session เดียวพอไหม ค่าเริ่มต้นคือใช่
- ตัวตรวจต้องเป็นกลไกที่รันจริง ไม่ใช่คำบอกเล่าของ agent
- ใส่ตัวกัน "ลดมาตรฐานเพื่อให้ผ่าน" ก่อนปล่อยงานยาว
ส่วนที่รอได้: pattern เฉพาะทางอย่าง migrate ใน worktree หรือร่างแผนหลายมุม
ช่วยให้ดีขึ้นอย่างไร
ตัวเลขในตารางเป็นตัวเลขที่รายงานไว้ ยังไม่ได้ตรวจซ้ำในหน้านี้ จึงติดป้าย ยังไม่ทดสอบ จนกว่าจะรันเอง
| สถานการณ์ | ไม่ใช้ | ใช้ | วัดอย่างไร | หลักฐาน |
|---|---|---|---|---|
| ฟีเจอร์ที่แตะทุกชั้นของระบบ | คนเดียวแก้ไฟล์ทั้งหมดต่อเนื่อง | ทีม 3 คนแบ่งตามเจ้าของไฟล์ | เทสต์ผ่าน 90/90 ไม่มีไฟล์ชน | ยังไม่ทดสอบ |
| แผนหลายเฟส ไม่มีคนเฝ้า | Claude ตัดสินต่อ/หยุดเองทุก turn | workflow ที่มีลูปในโค้ด | เทสต์ผ่าน 104/104 โดยไม่ถามคน | ยังไม่ทดสอบ |
| เอกสาร API ที่ต้องรันตัวอย่างจริง | agent เขียนแล้วรายงานว่าเสร็จ | pipeline ที่รันทุกตัวอย่าง | curl ผ่าน 86/86 | ยังไม่ทดสอบ |
| PR review ทั่วไป | แตก agent หลายตัว | session เดียว | ราคา 0.62 USD และจัดอันดับปัญหาหลักได้ดีที่สุดในสามแบบ | ยังไม่ทดสอบ |
| หาบั๊กใน repo เดียวกัน | (เกณฑ์เทียบ) | session / subagent / workflow / ทีม | ทั้งสี่แบบเจอบั๊กที่ฝังไว้ครบ 12 ข้อ | ยังไม่ทดสอบ |
| ประโยชน์ของ subagent | ทุกงานย่อยใช้ context หลัก | แต่ละงานย่อยเริ่มจาก context สะอาด | ขนาด context หลักหลังจบงาน | ตีความ |
แถวสุดท้ายของกลุ่มบั๊ก 12 ข้อบอกว่า "ความสามารถในการหาบั๊ก" อิ่มตัวแล้วในชุดทดสอบนั้น ความต่างอยู่ที่ของแถม ไม่ใช่จำนวนบั๊กที่เจอ
ลองใช้
ตัวอย่างประกอบ: ต้นทุนของการแตก agent ที่ไม่จำเป็น
ตัวเลขชุดนี้เป็นของเราเอง ใช้ดูทิศทาง ไม่ใช่ค่าวัด
- diff ของ PR 400 บรรทัด ประมาณ 15 token ต่อบรรทัด = 6,000 token
- session เดียวอ่านครั้งเดียว = 6,000 token
- ส่ง subagent 3 ตัวไปอ่าน diff เดียวกัน = 18,000 token ส่วนต่าง 12,000 token (3 เท่า) ก่อนนับผลสรุปที่ส่งกลับ
- คุ้มก็ต่อเมื่อ context หลักจะเกินขีดจำกัด หรือต้องการ noise ต่ำ หรือเจอบั๊กเพิ่ม มิฉะนั้นจ่ายเพิ่มโดยไม่ได้อะไร
เมื่อไหร่ใช้ เมื่อไหร่ไม่ใช้
| วิธี | ใช้เมื่อ | ไม่ใช้เมื่อ | ต้องมีก่อน |
|---|---|---|---|
| session เดียว | งานเดียว context พอ | context จะล้น หรือมีงานขนาน | ไม่มี |
| subagent | งานย่อยอ่านเยอะแต่ผลสรุปสั้น | งานย่อยพึ่งผลของกันและกันแน่น | prompt ที่ระบุผลลัพธ์ที่ต้องส่งกลับ |
| workflow | ขั้นตอนรู้ล่วงหน้า ต้องวนซ้ำ ไม่มีคนเฝ้า | ขั้นตอนต้องปรับตามที่เจอระหว่างทาง | เงื่อนไขหยุดและตัวตรวจที่รันจริง |
| ทีม | ต้องถกเถียง ต่อรอง contract ข้ามชั้น | งานเล็ก หรือแบ่งไฟล์ไม่ได้ | การแบ่งเจ้าของไฟล์ และ quality gate |
ก้าวแรกที่เล็กที่สุด
เลือกงานที่เสร็จไปแล้ว 3 งาน เขียนลงตารางว่าแต่ละงาน "ใครควรถือแผน" ตามตารางข้างบน แล้วเทียบกับที่ทำจริง ไม่ต้องรัน agent เพิ่ม
ทดสอบว่าช่วยจริง
| รายการ | ค่า |
|---|---|
| งานทดสอบ | งานที่มีบั๊กหรือข้อผิดพลาดที่รู้คำตอบอยู่แล้ว (ฝังเอง) |
| baseline | session เดียว: จำนวนบั๊กที่เจอ, token ของ context หลัก, ค่าใช้จ่าย, เวลา |
| ทางเลือก | วิธีที่เสนอ (subagent / workflow / ทีม) กับงานเดียวกัน |
| เงื่อนไขผ่าน (กำหนดก่อนรัน) | บั๊กไม่น้อยกว่า baseline และ context ลด 30% หรือเจอบั๊กเพิ่ม 1 ข้อ |
| ถ้าไม่ผ่าน | กลับไป session เดียวสำหรับงานประเภทนี้ |
ทดสอบความเข้าใจ
| คำถาม | คำตอบ | คำตอบที่มักผิด |
|---|---|---|
| workflow รายงานเทสต์ผ่านครบ แต่ไฟล์ tsconfig ถูกแก้ ถือว่าเสร็จไหม | ยัง ต้องดู diff ว่ามาตรฐานถูกลดเพื่อให้ผ่านหรือไม่ | เสร็จ เพราะเทสต์ผ่าน |
| ขั้นตอนของงานต้องปรับตามสิ่งที่เจอระหว่างทาง ควรใช้ workflow ไหม | ไม่เหมาะ เพราะสคริปต์ถือแผนตายตัว ใช้ session หรือ subagent | ใช้ เพราะงานใหญ่ |
| สี่วิธีเจอบั๊กครบ 12 ข้อเท่ากัน ควรเลือกวิธีที่ถูกที่สุดไหม | ไม่ ผลอิ่มตัวแล้ว ให้เลือกตามของแถมที่ต้องการ | เลือกถูกสุดเพราะผลเท่ากัน |
| agent บอกว่าตัวอย่าง curl ใช้ได้ ควรแก้ prompt ให้ "ระวังขึ้น" ไหม | ไม่ เพิ่มขั้นสคริปต์รันทุกตัวอย่างและอ่านผลจริง | ใช่ บอกให้ตรวจละเอียดขึ้น |
| สั่งให้ทีมใช้ worktree แล้วระบบรับคำสั่งโดยไม่ error แปลว่าได้ที่ต้องการไหม | ไม่แน่ ต้องตรวจ branch และโหมดที่ได้จริงหลังสั่ง | ได้ เพราะไม่มี error |
| ทีม 3 คนแก้ไฟล์เดียวกันได้ไหมถ้าคุยกันเก่ง | ไม่ควร ต้องแบ่งเจ้าของไฟล์ก่อนเริ่ม | ได้ เพราะคุยกันได้ |
สามวิธี ใครถือแผน
| Subagents | Workflows | Agent Teams | |
|---|---|---|---|
| ผู้ถือแผน | Claude ตัดสินทีละ turn | สคริปต์ | lead ที่คุมทีม |
| การสื่อสาร | ส่งกลับแค่บทสรุป | ผ่านโค้ด (pipeline, parallel) | agent คุยกันตรง มี task list |
| ความทำซ้ำได้ | ปานกลาง | สูง เรียกซ้ำเป็นคำสั่ง /ชื่อ |
ต่ำกว่า แลกกับมุมมองที่หลากหลาย |
| ขนาด | หนึ่งถึงหลายตัวเบื้องหลัง | หลักสิบถึงหลักร้อย | ทีมเล็ก |
| ได้อะไร | context หลักเล็ก | ลำดับงานที่คาดเดาได้ | การถก ต่อรอง ท้าทายสมมติฐาน |
| ตัวกัน | prompt ชัด | pattern คุณภาพ (ด้านล่าง) | quality gate ด้วย hook |
Subagent รันเบื้องหลัง แตกตัว (fork) และสั่งงานต่อได้ Workflow มี pattern ด้านคุณภาพให้ใช้: ตรวจหักล้าง, วนแก้จนเทสต์ผ่าน, migrate ใน worktree, ค้นจนรายการไม่โต, ร่างแผนหลายมุม
ผังตัดสินใจ
flowchart TD
A[งานใหม่] --> B{session เดียวพอ?}
B -->|ใช่| S[ใช้ session เดียว]
B -->|ไม่| C{ขั้นตอนรู้ล่วงหน้า และต้องทำซ้ำ?}
C -->|ใช่| W[workflow]
C -->|ไม่| D{ต้องถกหรือต่อรองข้ามบทบาท?}
D -->|ใช่| T[ทีม]
D -->|ไม่| U[subagent]
หลักการที่ใช้ได้ทุกวิธี
| หลักการ | เหตุผล | ทำอย่างไร |
|---|---|---|
| loop และเงื่อนไขหยุดอยู่ในโค้ด | LLM ตัดสินทีละ turn ทำให้โครงงานไม่นิ่ง | ใช้ workflow หรือ Bash loop ป้อน prompt ซ้ำ (แนว Ralph Wiggum) |
| context สะอาดต่องานย่อย | ของเก่าปนเข้ามาทำให้ผลเพี้ยน | ส่งงานย่อยให้ subagent พร้อมข้อมูลที่จำเป็นเท่านั้น |
| ตรวจด้วยการรันจริง | รายงานของ agent เป็นแค่คำบอกเล่า | สคริปต์รันทุกตัวอย่าง ทุกเทสต์ แล้วอ่านผล |
| กันการลดมาตรฐานเพื่อให้ผ่าน | agent หาทางให้ตัวตรวจเขียวได้ทั้งแบบถูกและแบบโกง | ตรวจ diff หา threshold ที่ลด, test ที่ skip, suppression ใหม่, stub |
| แบ่งงานด้วยเจ้าของไฟล์ | สองคนแก้ไฟล์เดียวกันคือที่มาของความขัดแย้ง | กำหนดว่าไฟล์ไหนเป็นของใครก่อนเริ่ม |
| ตรวจผลของตัวเลือกที่เปลี่ยนความหมายเงียบ ๆ | ขอ worktree แล้วทีมอาจกลายเป็นโหมดอื่นโดยไม่แจ้ง | ตรวจ branch และโหมดจริงหลังสั่ง |
| ออกแบบเรื่อง permission สำหรับงานไม่มีคนเฝ้า | workflow ค้างรอคำอนุญาตที่ถูกหน้าจอบังเกือบ 10 นาที | ตั้ง permission ล่วงหน้า หรือมีตัวเตือนเมื่อค้างเกินเวลา |
เคสที่พังและบทเรียน
| เคส | อาการ | ต้นเหตุ | แก้อย่างไร |
|---|---|---|---|
| ทีมที่ขอ worktree | กลายเป็นโหมดอื่นโดยไม่มีใครบอก | ตัวเลือกเปลี่ยนความหมายเงียบ ๆ | ตรวจโหมดจริงหลังสั่ง |
| workflow ที่รอ permission | ค้างเกือบ 10 นาที | คำขอถูกหน้าจอบัง | ตั้ง permission ล่วงหน้า |
| workflow แก้ tsconfig | ตัวตรวจผ่านแต่ปัญหาจริงอยู่ | ลดมาตรฐานแทนแก้ปัญหา | diff guard |
| documentation sprint รอบแรก | ไม่ได้รันตัวอย่าง curl เลย | ไม่มีขั้นรันจริง | สคริปต์ 16 บรรทัดรันทุกตัวอย่าง รอบสองผ่าน 86/86 |
| incident สัญญาณขัดกัน | สมมติฐานหลายทาง | ข้อมูลชี้คนละทาง | ให้ agent แข่งพิสูจน์สมมติฐาน แล้วยืนยันด้วย benchmark จริง |
ใน incident ที่ทั้ง workflow และทีมโต้วาทีหาสาเหตุเจอ การซักค้านทำให้คำอธิบายแม่นขึ้น ไม่ได้ทำให้เจอสาเหตุเพิ่ม
Risks
Warning ตัวเลขทั้งหมดในหน้านี้ (90/90, 104/104, 86/86, 0.62 USD, 12 ข้อ) เป็นผลรันครั้งเดียวต่อกรณี บน Claude Code รุ่น v2.1.296 และยังไม่ได้ตรวจซ้ำ อย่าใช้เป็นฐานตัดสินต้นทุนหรือความน่าเชื่อถือ
- Agent Teams เปลี่ยนเร็วเพียงพอที่เนื้อหาอ้างอิงต้องเขียนใหม่ทั้งชุด (ตีความ: ยังไม่นิ่ง) อย่าสร้างงานจริงบน behavior ที่ยังไม่ผ่านการใช้งานซ้ำ
- ผลที่ทุกวิธีเจอบั๊กครบ 12 ข้อบอกแค่ว่าชุดทดสอบนั้นอิ่มตัว ไม่ได้บอกว่าวิธีไหนดีกว่าบน repo จริง
- การเพิ่ม agent เพิ่มค่าใช้จ่ายแน่นอน แต่ผลดีไม่แน่นอน ต้องมีเกณฑ์ผ่านที่ตั้งไว้ก่อนรัน
Decision / next steps
Recommendation ตั้งค่าเริ่มต้นเป็น session เดียว แล้วย้ายไปวิธีอื่นเมื่อมีเหตุผลชัดหนึ่งข้อ: context ล้น, ต้องรันซ้ำโดยไม่มีคนเฝ้า, หรือต้องการมุมมองที่ขัดกัน ก่อนปล่อยงานยาว ให้ใส่สองอย่างเสมอ คือตัวตรวจที่รันจริง และ diff guard
| ขั้น | ทำอะไร | ผ่านเมื่อ |
|---|---|---|
| 1 | จัดหมวดงานที่ทำเสร็จแล้ว 3 งานตามตารางข้างบน | ตอบได้ว่าแต่ละงาน "ใครถือแผน" |
| 2 | ฝังบั๊กที่รู้คำตอบใน repo ทดสอบ | มีรายการบั๊กที่ใช้ตรวจครบ |
| 3 | รัน baseline แล้วรันทางเลือก | เข้าเงื่อนไขในหัวข้อลองใช้ |
ตัวย่อที่ใช้ในหน้านี้
| ตัวย่อ | ชื่อเต็ม | คืออะไร | อ่านค่าอย่างไร |
|---|---|---|---|
| PR | Pull Request | ชุดการเปลี่ยนแปลงโค้ดที่ขอให้รีวิวก่อนรวม | PR 400 บรรทัด = diff ยาว 400 บรรทัด |
| API | Application Programming Interface | ช่องทางที่โปรแกรมหนึ่งเรียกใช้อีกโปรแกรม | เอกสาร API = คู่มือวิธีเรียก |
| LLM | Large Language Model | โมเดลภาษาที่ตัดสินทีละ turn ใน subagent | LLM ตัดสิน = ผลไม่ตายตัวทุกรอบ |
| USD | United States Dollar | หน่วยเงินดอลลาร์สหรัฐ | 0.62 USD = ประมาณ 62 เซนต์ |
ตัวย่อ PR, API, LLM, USD และชื่อ curl, tsconfig, hook เป็นความรู้ทั่วไป ไม่ได้นิยามไว้ในหัวข้อนี้ สัญลักษณ์ n ใน "n เท่ากับ 1" หมายถึงจำนวนตัวอย่างที่รัน
Summary
Recommendation เลือกวิธี multi-agent ตามคำตอบข้อเดียว: ใครถือแผน
- Claude ตัดสินทีละ turn = subagent, สคริปต์ถือแผน = workflow, agent ถกกันเอง = ทีม, งานทั่วไป = session เดียว
- ตัวตรวจต้องรันจริงและต้องมี diff guard กันการลดมาตรฐานเพื่อให้ผ่าน
- แบ่งงานด้วยเจ้าของไฟล์ ตรวจโหมดจริงหลังเลือกตัวเลือกที่เปลี่ยนความหมาย ตั้ง permission ล่วงหน้า
- ตัวเลขที่รายงานเป็นผลรันครั้งเดียว ยังไม่ทดสอบซ้ำ
- วัดผลของตัวเองด้วยบั๊กที่ฝังไว้ และเกณฑ์ผ่านที่ตั้งก่อนรัน




