Dynamic Workflows ฟีเจอร์ใน Claude Code ที่ให้สคริปต์คุม subagent พร้อมกันได้สูงสุด 1,000 ตัวต่อการรัน
Dynamic workflows คือฟีเจอร์ใน Claude Code ที่ให้ Claude เขียนสคริปต์ขึ้นมาเอง เพื่อสั่งงาน subagent หลายสิบถึงหลายร้อยตัวพร้อมกันอยู่เบื้องหลัง บทความนี้พาดูว่าทำไมการเก็บแผนงานเป็นสคริปต์ที่อ่านซ้ำได้ แทนที่จะปล่อยให้อยู่ในบทสนทนาของ Claude ถึงเปลี่ยนวิธีทำงานกับ AI agent ไปจากเดิม

Dynamic workflows คือฟีเจอร์ใน Claude Code ซึ่งเป็น coding agent ของ Anthropic ฟีเจอร์นี้ให้ Claude เขียนสคริปต์ขึ้นมาเอง แล้วใช้ runtime อีกระบบหนึ่งรันงานแยกจากบทสนทนาหลัก runtime นั้นจะคอยสั่งงาน subagent หรือ AI ตัวช่วยที่ Claude มอบหมายงานย่อยให้ทำแทน พร้อมกันได้ตั้งแต่หลักสิบจนถึงหลักร้อยตัวในการรันครั้งเดียว
จุดต่างจากการทำงานปกติอยู่ตรงนี้ ปกติ Claude ต้องตัดสินใจเองใหม่ทุกครั้งว่าจะทำอะไรต่อ อยู่ภายในบทสนทนาเดียว แต่พอใช้ dynamic workflows แผนทั้งหมดจะบันทึกไว้ในสคริปต์ล่วงหน้า สคริปต์นั้นจะรันเองอยู่เบื้องหลัง ช่วยให้ผู้ใช้สลับไปทำงานอื่นต่อได้ระหว่างรอ ตัวอย่างที่เห็นภาพชัดของ subagent คือ Explore ซึ่งติดมากับ Claude Code เอง มันรันด้วยโมเดล Haiku อ่านไฟล์ได้อย่างเดียว แก้ไฟล์ไม่ได้ มีหน้าที่เดียวคือช่วยหาไฟล์หรือค้นโค้ดในโปรเจกต์ใหญ่ ๆ ให้เร็วขึ้น
แผนงานอยู่ในสคริปต์ ไม่ใช่การตัดสินใจของ Claude ใหม่ทุกครั้ง
ให้ AI ทำงานพร้อมกันได้หลายแบบ แต่ละแบบไม่เหมือนกัน

ใน Claude Code การให้ AI ทำงานพร้อมกันมีได้หลายวิธี ต่างกันที่ใครเป็นคนคุมงาน AI แต่ละตัวคุยกันเองได้ไหม และเข้าไปยุ่งกับไฟล์เดียวกันหรือเปล่า (ตามที่เอกสารของ Claude Code Docs อธิบายไว้) บทความนี้โฟกัสที่สามวิธีหลัก ไล่จากเล็กไปใหญ่ คือ subagent, agent team และ dynamic workflow ซึ่งเป็นวิธีที่รองรับงานจำนวนมากที่สุดในสามแบบนี้
| วิธีคุมงาน | คืออะไร | งานขนาดไหน | ถ้าหลุดกลางทาง |
|---|---|---|---|
| subagent | Claude มอบหมายงานแล้วรอผลในบทสนทนาเดียว | งานเล็ก ๆ ไม่กี่ชิ้นต่อการตอบกลับหนึ่งครั้ง | บทสนทนาเริ่มใหม่ งานที่มอบหมายไปก็หายไปด้วย |
| agent team | agent ตัวนำวางแผน มอบหมาย และคุมทีมที่คุยกันเองได้ตรง ๆ | ทีมเล็ก ๆ ไม่กี่ตัวที่รันยาวต่อเนื่อง | agent ในทีมยังทำงานต่อเนื่องได้ |
| dynamic workflow | สคริปต์ที่ runtime รันแทน Claude | หลักสิบถึงหลักร้อยตัวต่อการรันหนึ่งครั้ง | รันต่อได้ในเซสชันเดิม แต่เริ่มเซสชันใหม่ต้องนับหนึ่งใหม่ |
พูดง่าย ๆ คือ ถ้างานเล็กพอจบได้ในบทสนทนาเดียว subagent ก็พอแล้ว ถ้าอยากให้ทีม AI หลายตัวสื่อสารกันเองแบบเรียลไทม์และรันยาวต่อเนื่อง agent team จะเหมาะกว่า (ตอนนี้ agent team ยังเป็นฟีเจอร์ทดลอง ปิดไว้เป็นค่าเริ่มต้น ต้องเปิดเองถึงจะใช้ได้) แต่ถ้างานใหญ่จนต้องสั่ง AI เป็นสิบเป็นร้อยตัวพร้อมกัน หรืออยากเก็บแผนงานไว้เป็นสคริปต์อ่านซ้ำได้ ก็ต้องเป็น dynamic workflow
กดสั่งแล้วเกิดอะไรขึ้นบ้าง
วิธีเรียกใช้ dynamic workflows มีสองทาง ทางแรกคือพิมพ์คำว่า ultracode แทรกไว้ในข้อความสั่งงาน หรือจะพิมพ์เป็นภาษาคนตรง ๆ อย่าง "ใช้ workflow หน่อย" ก็ได้ อีกทางคือเปิดโหมด ultracode ทิ้งไว้ โหมดนี้จะให้โมเดลคิดละเอียดระดับ xhigh และวางแผน workflow อัตโนมัติสำหรับทุกงานที่ใหญ่พอจนควรวางแผนจริงจัง โดยไม่ต้องสั่งทุกครั้ง
พอ Claude วางแผนเสร็จ มันจะโชว์ขั้นตอนที่วางไว้ทั้งหมดแล้วถามก่อนรันจริง เลือกได้ว่าจะรันเลย ไม่ต้องถามซ้ำสำหรับ workflow หรือโปรเจกต์นี้อีก ดูสคริปต์ก่อน หรือยกเลิก ทั้งนี้จะยกเว้นในกรณีที่ตั้งค่าให้ระบบรันอัตโนมัติและไม่ต้องขออนุญาตไว้ล่วงหน้า เช่น เรียกผ่านสคริปต์หรือ API ตัวอื่น กรณีนี้ระบบจะรันทันทีโดยไม่ถามเลย
พอกดรัน workflow จะเริ่มทำงานอยู่เบื้องหลังทันที เช็คความคืบหน้าได้ผ่านคำสั่ง /workflows ซึ่งไล่ดูได้ถึงระดับเฟสและ agent แต่ละตัว ว่าใช้ token ไปเท่าไหร่ รันมานานแค่ไหน หรือจะดูสรุปบรรทัดเดียวในแถบ task panel ก็ได้เหมือนกัน พอ workflow ทำงานเสร็จ ผลลัพธ์จะกลับมาอยู่ในเซสชันเดิม ตัวอย่างการใช้งานจริงคือ workflow สำเร็จรูปที่ติดมาด้วยอย่าง /deep-research ซึ่งอ้างอิงที่มาของแต่ละข้อมูลที่นำมาสรุป แล้วกรองข้อมูลที่เช็คซ้ำแล้วไม่ผ่านทิ้งไป
ถ้ารันรอบหนึ่งแล้วได้ผลตรงใจ workflow นั้นเก็บไว้ใช้ซ้ำได้ทันที เปิด /workflows เลือกรอบที่ต้องการ กด s แล้วเลือกบันทึกลง .claude/workflows/ ถ้าอยากแชร์ผ่าน version control ให้ทุกคนในโปรเจกต์ใช้ หรือบันทึกลง ~/.claude/workflows/ ถ้าอยากเก็บไว้ใช้คนเดียว จากนั้นเรียกซ้ำได้ผ่าน /<ชื่อ> และส่งค่าที่ต้องการในแต่ละครั้งด้วย args สคริปต์ที่เขียนไว้ครั้งเดียวจึงกลายเป็นเครื่องมือใช้งานจริงของทีม ไม่ใช่แค่ของที่รันแล้วทิ้ง
ยิ่งขยายงานมาก ยิ่งต้องรู้ขีดจำกัด

ถึงจะขยายงานได้มาก แต่ก็มีขีดจำกัดกำกับไว้เหมือนกัน ระบบจำกัด agent ที่รันพร้อมกันไว้สูงสุด 16 ตัว (ถ้าทรัพยากร CPU มีจำกัด ก็จะรันพร้อมกันได้น้อยกว่านี้) และรวมแล้วรันได้ไม่เกิน 1,000 ตัวต่อการรันหนึ่งครั้ง เพื่อป้องกันไม่ให้เกิดการรันซ้ำไปเรื่อย ๆ แบบไม่มีที่สิ้นสุด
ระหว่างที่ workflow รันอยู่ ผู้ใช้แทรกคำสั่งกลางทางไม่ได้ จะหยุดชั่วคราวได้ก็ต่อเมื่อ agent ตัวใดตัวหนึ่งต้องการให้ผู้ใช้อนุญาตก่อนทำขั้นตอนถัดไปเท่านั้น ตัวสคริปต์เองก็เข้าไปยุ่งกับไฟล์หรือสั่งงานในเครื่องตรง ๆ ไม่ได้ด้วย หน้าที่อ่านไฟล์ เขียนไฟล์ หรือรันคำสั่งเป็นของ agent แต่ละตัวที่สคริปต์เรียกใช้ สคริปต์ทำหน้าที่แค่ควบคุมลำดับการทำงานเท่านั้น
ผลลัพธ์ก็ไม่ได้ถูกต้องร้อยเปอร์เซ็นต์เสมอไป อย่าง workflow /deep-research มี agent ตรวจทานคอยตรวจข้อมูลแต่ละชิ้นซ้ำจากหลายแหล่ง แต่ถ้าตรวจไม่ได้ เช่น เจอ rate limit หรือ API ล่มกลางทาง ตั้งแต่เวอร์ชัน v2.1.196 รายงานจะระบุสถานะว่า "ยังไม่ได้ตรวจสอบ" แทนที่จะนับเป็นข้อมูลเท็จไปเลย
ส่วนการรันต่อก็มีเงื่อนไข ถ้ายังอยู่ในเซสชันเดิม agent ที่ทำเสร็จแล้วจะดึงผลที่แคชไว้กลับมาใช้ ส่วนที่เหลือก็รันใหม่ตามปกติ แต่ถ้าปิด Claude Code ระหว่าง workflow กำลังรัน รอบหน้าต้องเริ่มนับหนึ่งใหม่ทั้งหมด ข้ามเซสชันไปต่อไม่ได้
ที่สำคัญไม่แพ้กันคือเรื่องค่าใช้จ่าย ยิ่งเปิดเซสชันของ subagent หรือ agent ใน workflow พร้อมกันมากเท่าไหร่ ยิ่งใช้ token ทบกันมากขึ้นเท่านั้น เอกสารแนะนำให้ทดลองรันกับงานชิ้นเล็กก่อน เช่น แค่โฟลเดอร์เดียวหรือคำถามแคบ ๆ เพื่อกะงบประมาณก่อนปล่อยรันกับงานทั้งหมดจริง ๆ ถ้าไม่อยากให้ Claude วางแผน workflow ขึ้นมาเองอัตโนมัติ ก็ปิดได้สามวิธี คือกดปิดในหน้า /config ของโปรแกรม แก้ไฟล์ตั้งค่าส่วนตัวให้ปิดฟีเจอร์นี้ตรง ๆ หรือกำหนดผ่านตัวแปรของระบบ
เริ่มลองได้เลยวันนี้
ถ้าคุณอยากลองของจริง เช็คเวอร์ชัน Claude Code ก่อนว่าเป็น v2.1.154 ขึ้นไปหรือยัง ฟีเจอร์นี้เปิดให้ทุกแพลนที่เสียเงิน รวมถึงผู้ใช้งานผ่าน Anthropic API, Amazon Bedrock, Google Cloud Vertex AI และ Microsoft Foundry ถ้าใช้แพลน Pro ให้เข้าไปเปิด toggle ใน /config ก่อนหนึ่งครั้ง
จากนั้นลองงานเล็ก ๆ ได้เลย พิมพ์สั่งงานปกติแล้วแทรกคำว่า ultracode ต่อท้าย เช่น "ไล่หาบั๊กในโฟลเดอร์ src ทั้งหมด ultracode" Claude จะโชว์แผนที่วางไว้ให้ดูก่อน กดรันได้เลยถ้าโอเค จากนั้นเปิด /workflows ดูความคืบหน้าระหว่างรอ พอผลลัพธ์ออกมาตรงใจ ก็กลับไปที่ /workflows เลือกรอบนั้น กด s เพื่อเซฟไว้ใช้ซ้ำได้ทันที
สุดท้ายแล้ว สิ่งที่ dynamic workflows เปลี่ยนไม่ใช่แค่ความเร็วหรือจำนวน agent ที่รันพร้อมกัน แต่เป็นวิธีเก็บ "แผนงาน" เอาไว้ ปกติแผนงานอยู่กับ Claude เองในตอนนั้น แล้วหายไปพร้อมบทสนทนาที่ปิดลง พอเขียนแผนงานเป็นสคริปต์ มันจึงกลายเป็นสิ่งที่อ่านได้ ตรวจสอบได้ และรันซ้ำได้ทุกเมื่อ ยิ่งงานที่มอบให้ AI ใหญ่ขึ้นเท่าไหร่ สิ่งที่ต้องมีจึงไม่ใช่ AI ที่เร็วขึ้น แต่เป็นแผนงานที่เขียนไว้ให้กลับมาอ่านซ้ำได้
ที่มา:
- บทความ Orchestrate subagents at scale with dynamic workflows จาก Claude Code Docs
- บทความ Run agents in parallel จาก Claude Code Docs
- บทความ Create custom subagents จาก Claude Code Docs



