สัปดาห์ที่แล้ว เราได้ปล่อย dynamic workflows ใน Claude Code ตอนนี้ Claude สามารถเขียน harness ของตัวเองได้ทันที โดยปรับแต่งให้เหมาะกับงานนั้นๆ
แม้ว่า harness เริ่มต้นของ Claude Code จะถูกสร้างมาเพื่อการเขียนโค้ด แต่มันก็มีประโยชน์กับงานประเภทอื่นๆ อีกมาก เพราะความจริงแล้ว งานหลายอย่างก็คล้ายกับการเขียนโค้ด แต่ก็มีงานบางประเภทที่เราต้องสร้าง harness แบบกำหนดเองบน Claude Code เพื่อให้ได้ประสิทธิภาพสูงสุด เช่น Research, การวิเคราะห์ความปลอดภัย, ทีมเอเจนต์, หรือ Code Review
Workflows ช่วยให้คุณสร้าง harness แบบไดนามิกที่ทำให้ Claude สามารถแก้ปัญหาเหล่านั้นและอื่นๆ อีกมากมายได้โดยตรงภายใน Claude Code คุณยังสามารถแชร์และนำ workflows เหล่านี้ไปใช้กับผู้อื่นได้อีกด้วย
ในบทความนี้ ผมจะแบ่งปันประสบการณ์และสิ่งที่ได้เรียนรู้จาก workflows แรกๆ เพื่อให้คุณสามารถใช้ประโยชน์ได้อย่างเต็มที่
อย่างไรก็ตาม แนวทางปฏิบัติที่ดีที่สุดยังคงพัฒนาอยู่! Dynamic workflows มักใช้ tokens มากขึ้น ดังนั้นควรคิดให้รอบคอบว่าเมื่อใดและอย่างไรจึงจะใช้มัน
หมายเหตุ: โพสต์นี้มีอยู่ใน Claude Blog เช่นกัน
ตัวอย่าง prompts
ก่อนจะลงลึกในรายละเอียดทางเทคนิค ผมอยากเริ่มด้วยตัวอย่าง prompts เพื่อให้คุณเห็นภาพความเป็นไปได้ของ workflows:
- "การทดสอบนี้ล้มเหลวประมาณ 1 ใน 50 ครั้ง สร้าง workflow เพื่อจำลองมัน ตั้งทฤษฎี และทดสอบแบบ adversarial ใน worktrees /goal อย่าหยุดจนกว่าทฤษฎีใดทฤษฎีหนึ่งจะใช้ได้"
- "ใช้ workflow ดู sessions ล่าสุด 50 ของฉัน หาการแก้ไขที่ฉันทำซ้ำๆ แล้วเปลี่ยนข้อผิดพลาดที่เกิดซ้ำเป็นกฎใน CLAUDE.md"
- "ใช้ workflow ค้นหา #incidents ใน Slack ย้อนหลัง 6 เดือน หาสาเหตุที่แท้จริงที่เกิดซ้ำซึ่งไม่มีใครเปิด ticket"
- "นำแผนธุรกิจของฉันไปใช้ workflow โดยให้เอเจนต์ต่าง ๆ วิเคราะห์จากมุมมองของนักลงทุน ลูกค้า และคู่แข่ง"
- "นี่คือโฟลเดอร์ที่มี resume 80 ฉบับ ใช้ workflow จัดอันดับสำหรับตำแหน่ง backend และตรวจสอบ 10 อันดับแรกซ้ำ สัมภาษณ์ฉันโดยใช้เครื่องมือ AskUserQuestion เพื่อสร้างเกณฑ์การประเมิน"
- "ฉันต้องการชื่อสำหรับ CLI tool นี้ ใช้ workflow ระดมความคิดหลายๆ ตัวเลือก แล้วจัดการแข่งขันเพื่อเลือก 3 อันดับแรก"
- "ใช้ workflow เปลี่ยนชื่อโมเดล User ของเราเป็น Account ทุกที่"
- "ตรวจสอบร่างโพสต์บล็อกของฉัน ใช้ workflow ยืนยันข้อกล่าวอ้างทางเทคนิคทุกข้อเทียบกับ codebase ฉันไม่อยากปล่อยอะไรผิดพลาด"
Dynamic workflows ทำงานอย่างไร
Dynamic workflows จะรันไฟล์ JavaScript ที่มีฟังก์ชันพิเศษสองสามฟังก์ชันเพื่อช่วยสร้างและประสานงาน subagents:

Dynamic workflows ยังมีฟังก์ชัน JavaScript มาตรฐาน เช่น JSON, Math และ Array เพื่อช่วยประมวลผลข้อมูล
สิ่งที่มีประโยชน์มากคือ dynamic workflows สามารถกำหนดได้ว่าเอเจนต์จะใช้โมเดลใด และ subagents จะทำงานใน worktree ของตัวเองหรือไม่ ทำให้ Claude เลือกระดับความฉลาดและการแยกส่วนที่จำเป็นได้
หาก workflow ถูกขัดจังหวะ เช่น โดยการกระทำของผู้ใช้หรือการปิดเทอร์มินัล การกลับมา session ต่อจะทำให้ workflow ทำงานต่อจากจุดที่ค้างไว้
ทำไมต้องใช้ dynamic workflows
เมื่อคุณขอให้ harness เริ่มต้นของ Claude Code ทำงาน มันต้องวางแผนและดำเนินการใน context window เดียวกัน สำหรับงานเขียนโค้ดหลายอย่าง วิธีนี้มีประสิทธิภาพสูง แต่อาจล้มเหลวในงานที่ใช้เวลานาน ขนานขนาดใหญ่ หรือเป็นงาน adversarial ที่มีโครงสร้างซับซ้อนสูง
เพราะยิ่ง Claude ทำงานซับซ้อนใน context window เดียวนานเท่าไร ก็ยิ่งมีแนวโน้มที่จะเกิดโหมดความล้มเหลวเฉพาะบางรูปแบบ:
- Agentic laziness หมายถึงเมื่อ Claude หยุดก่อนที่จะทำงานที่ซับซ้อนหลายส่วนเสร็จ และประกาศว่างานเสร็จแล้วหลังจากทำไปบางส่วน เช่น จัดการ 20 จาก 50 รายการในการตรวจสอบความปลอดภัย
- Self-preferential bias หมายถึงแนวโน้มของ Claude ที่ชอบผลลัพธ์หรือการค้นพบของตัวเอง โดยเฉพาะเมื่อถูกขอให้ตรวจสอบหรือตัดสินตามเกณฑ์
- Goal drift หมายถึงการสูญเสียความเที่ยงตรงต่อเป้าหมายเดิมทีละน้อยในหลายๆ รอบ โดยเฉพาะหลังจากการบีบอัด (compaction) การสรุปแต่ละครั้งเป็นการสูญเสียข้อมูล และรายละเอียด เช่น ข้อกำหนดขอบกรณีหรือข้อจำกัด "อย่าทำ X" อาจหายไป
การสร้าง workflow ช่วยต่อสู้กับปัญหาเหล่านี้โดยการจัด Claude แต่ละตัวให้มี context window และเป้าหมายของตัวเองแบบแยกส่วนและมีสมาธิ
Dynamic vs static workflows
คุณอาจเคยสร้าง static workflow มาก่อนโดยใช้ Claude Agent SDK หรือ claude -p เพื่อประสานงาน Claude Code หลายอินสแตนซ์
แต่เพราะ static workflow ต้องทำงานได้กับทุกกรณีขอบ มันจึงมักจะมีความทั่วไปมากกว่า ด้วย Claude Opus 4.8 และ dynamic workflows ตอนนี้ Claude ฉลาดพอที่จะเขียน harness แบบกำหนดเองที่เหมาะกับกรณีการใช้งานของคุณโดยเฉพาะ

รูปแบบที่มีประโยชน์เมื่อใช้ dynamic workflows
คุณสามารถเริ่มใช้ dynamic workflows ได้เพียงแค่ขอให้ Claude สร้างมันขึ้นมา หรือใช้คำกระตุ้น "ultracode" เพื่อให้แน่ใจว่า Claude Code จะสร้าง workflow
แต่การสร้างโมเดลทางจิตเกี่ยวกับวิธีการทำงานของ dynamic workflows จะช่วยให้คุณเข้าใจว่าเมื่อใดควรใช้มันและคุณอาจกระตุ้น Claude ผ่าน prompts ได้อย่างไร
มีรูปแบบทั่วไปบางอย่างที่ Claude อาจใช้และประกอบเข้าด้วยกันเมื่อสร้าง workflows:

Classify-and-act
ใช้ classifier agent เพื่อตัดสินประเภทของงาน จากนั้นกำหนดเส้นทางไปยังเอเจนต์หรือพฤติกรรมที่แตกต่างกันตามงานนั้น หรือใช้ classifier ในตอนท้ายเพื่อกำหนดผลลัพธ์
Fan-out-and-synthesize
แบ่งงานออกเป็นขั้นตอนย่อยๆ มากมาย รันเอเจนต์ในแต่ละขั้นตอน จากนั้นสังเคราะห์ผลลัพธ์เหล่านั้น มีประโยชน์อย่างยิ่งเมื่อมีขั้นตอนย่อยจำนวนมาก หรือเมื่อแต่ละขั้นตอนได้ประโยชน์จาก context window ที่สะอาดของตัวเองเพื่อไม่ให้รบกวนหรือปนเปื้อนกัน ขั้นตอนสังเคราะห์เป็นตัวกั้น—มันรอให้เอเจนต์ fan-out ทั้งหมดทำงานเสร็จ จากนั้นรวมผลลัพธ์ที่มีโครงสร้างเข้าเป็นผลลัพธ์เดียว
Adversarial verification
สำหรับแต่ละเอเจนต์ที่สร้างขึ้น ให้รันเอเจนต์ที่สร้างขึ้นอีกตัวเพื่อตรวจสอบผลลัพธ์ของมันในเชิง adversarial ตามเกณฑ์หรือ rubric
Generate-and-filter
สร้างแนวคิดมากมายในหัวข้อหนึ่ง จากนั้นกรองตาม rubric หรือการตรวจสอบ ลบรายการซ้ำ และส่งคืนเฉพาะแนวคิดที่มีคุณภาพสูงสุดและผ่านการทดสอบ
Tournament
แทนที่จะแบ่งงาน ให้เอเจนต์แข่งขันกัน สร้างเอเจนต์ N ตัว แต่ละตัวพยายามทำงานเดียวกันด้วยวิธีที่แตกต่างกัน จากนั้น prompts หรือโมเดลจะตัดสินผลลัพธ์ในลักษณะจับคู่โดยใช้ judging agent จนกว่าจะได้ผู้ชนะ
Loop until done
สำหรับงานที่มีปริมาณงานไม่ทราบแน่ชัด ให้วนรอบสร้างเอเจนต์จนกว่าจะถึงเงื่อนไขหยุด (ไม่มีการค้นพบใหม่ หรือไม่มีข้อผิดพลาดใน logs อีกต่อไป) แทนที่จะกำหนดจำนวนครั้งตายตัว
กรณีการใช้งาน
ลองคิดอย่างสร้างสรรค์ว่าเมื่อใดและอย่างไรที่จะขอให้ Claude Code สร้าง dynamic workflows ผมพบว่า workflows บางครั้งมีประโยชน์มากกว่าสำหรับงานที่ไม่ใช่เทคนิค

การย้ายและการปรับโครงสร้าง
Bun ถูกเขียนใหม่จาก Zig เป็น Rust โดยใช้ workflows คุณสามารถอ่านเพิ่มเติมเกี่ยวกับวิธีการทำได้ใน X thread ของ Jarred
หัวใจสำคัญคือการแบ่งงานออกเป็นชุดขั้นตอนที่ต้องดำเนินการ เช่น callsites, failing tests, modules ฯลฯ สร้าง subagent สำหรับการแก้ไขแต่ละครั้งใน worktree จากนั้นให้เอเจนต์อีกตัวตรวจสอบ adversarial และรวมเข้าด้วยกัน ลองบอกเอเจนต์ไม่ให้ใช้คำสั่งที่ใช้ทรัพยากรมาก เพื่อให้คุณสามารถทำงานแบบขนานสูงสุดได้โดยไม่หมดทรัพยากรในเครื่อง
การวิจัยเชิงลึก
เราเผยแพร่ทักษะการวิจัยเชิงลึก (/deep-research) ภายใน Claude Code ที่ใช้ dynamic workflows โดยเฉพาะอย่างยิ่ง มันกระจายการค้นหาเว็บ ดึงแหล่งที่มา ตรวจสอบข้อกล่าวอ้างในเชิง adversarial และสังเคราะห์รายงานที่มีการอ้างอิง
แต่คุณอาจทำการวิจัยลักษณะนี้มากกว่าการค้นหาเว็บ เช่น ขอให้ Claude รวบรวมรายงานสถานะจากบริบทใน Slack หรือค้นคว้าว่าฟีเจอร์หนึ่งทำงานอย่างไรโดยสำรวจ codebase อย่างเจาะลึก
การตรวจสอบเชิงลึก

ในทางกลับกัน หากคุณมีรายงานที่ต้องการตรวจสอบและหาแหล่งที่มาของข้อเท็จจริงทุกข้อที่อ้างถึง คุณอาจต้องการสร้าง workflow ซึ่งมีเอเจนต์หนึ่งระบุข้อเท็จจริงทั้งหมด จากนั้นสร้าง subagent เพื่อตรวจสอบแต่ละข้ออย่างละเอียด คุณยังสามารถมี verification agent ตรวจสอบ source subagent เพื่อให้แน่ใจว่าแหล่งที่มามีคุณภาพสูง
การจัดเรียง

คุณอาจมีรายการสิ่งที่ต้องการจัดเรียงตามการวัดเชิงคุณภาพที่คุณเชื่อว่า Claude Code ประเมินได้ดี เช่น ตั๋วสนับสนุนที่จัดเรียงตามความรุนแรงของบั๊ก แต่ถ้าคุณพยายามจัดเรียง 1,000+ แถวใน prompt เดียว คุณภาพจะลดลงและไม่พอดีกับบริบท ให้ใช้ tournament, pipeline ของ pairwise-comparison agents (การตัดสินเชิงเปรียบเทียบมีความน่าเชื่อถือมากกว่าการให้คะแนนแบบสัมบูรณ์) หรือ bucket-rank แบบขนานแล้วรวมเข้าด้วยกัน การเปรียบเทียบแต่ละครั้งเป็นเอเจนต์ของตัวเอง ดังนั้น loop แบบกำหนดจะยึด bracket และลำดับการทำงานเท่านั้นที่อยู่ในบริบท
ความจำและการปฏิบัติตามกฎ

หากคุณมีกฎชุดหนึ่งที่พบว่า Claude มักพลาดหรือมีปัญหา แม้จะใส่ใน CLAUDE.mds แล้ว ให้สร้าง workflow ที่มีรายการกฎที่ต้องตรวจสอบโดย verifier agents—หนึ่ง verifier ต่อหนึ่งกฎ การสร้าง skeptic persona subagent เพื่อตรวจสอบกฎเพื่อให้แน่ใจว่าสอดคล้องกันจะช่วยหลีกเลี่ยง false positive มากเกินไป
ทิศทางกลับกันก็ใช้ได้เช่นกัน: ตรวจสอบ sessions ล่าสุดของคุณและความคิดเห็น code review สำหรับการแก้ไขที่คุณทำซ้ำ, จัดกลุ่มด้วย parallel agents, ตรวจสอบ adversarial แต่ละตัวเลือก (กฎนี้จะป้องกันความผิดพลาดจริงหรือไม่?), จากนั้นกลั่นผู้รอดชีวิตกลับเป็น CLAUDE.md
การตรวจสอบสาเหตุที่แท้จริง
การดีบักทำงานได้ดีที่สุดเมื่อคุณตั้งสมมติฐานอิสระหลายข้อและทดสอบมัน แต่ถ้าคุณใช้ context window เดียว Claude อาจเจอกับ self-preferential bias
workflow สามารถป้องกันสิ่งนี้ได้ในเชิงโครงสร้างโดยการสร้างเอเจนต์เพื่อสร้างสมมติฐานจากหลักฐานที่แยกจากกัน เช่น แยกเอเจนต์สำหรับ logs, files และข้อมูล สมมติฐานแต่ละข้อสามารถเผชิญกับคณะกรรมการของผู้ตรวจสอบและผู้หักล้าง
สิ่งนี้ไม่เพียงสำหรับโค้ดเท่านั้น Workflows สามารถใช้สำหรับการขาย (ทำไมยอดขายลดลงในเดือนมีนาคม?), วิศวกรรมข้อมูล (ทำไม pipeline นี้ล้มเหลว?), หรือการตรวจสอบหลังเหตุการณ์ใดๆ
การคัดแยกในระดับใหญ่

ทุกทีมมีคิวสนับสนุน รายงานบั๊ก หรือ backlog อื่นๆ ที่มนุษย์ไม่สามารถจัดการได้ทั้งหมด
triage workflow จะจัดประเภทแต่ละรายการ, ลบรายการซ้ำกับสิ่งที่ติดตามอยู่แล้ว, และดำเนินการ ซึ่งอาจหมายถึงการพยายามแก้ไขหรือส่งต่อไปยังมนุษย์
รูปแบบที่มีประโยชน์สำหรับ triage workflows คือการกักกัน (quarantine) ซึ่งหมายถึงการห้ามเอเจนต์ที่อ่านเนื้อหาสาธารณะที่ไม่น่าเชื่อถือดำเนินการที่มีสิทธิ์สูง การดำเนินการเหล่านั้นจะทำโดยเอเจนต์ที่รับผิดชอบในการกระทำกับข้อมูลแทน
จับคู่ triage workflows กับ /loop เพื่อให้ Claude ทำสิ่งนี้อย่างต่อเนื่อง
การสำรวจและรสนิยม
Workflows มีประโยชน์เมื่อสำรวจแนวทางต่างๆ ในการแก้ปัญหา โดยเฉพาะอย่างยิ่งเมื่อมันขึ้นอยู่กับรสนิยม เช่น การออกแบบหรือการตั้งชื่อ และจะได้ประโยชน์จาก rubric
ลองขอให้ Claude สำรวจวิธีการแก้ปัญหาหลายๆ วิธี และให้ rubric แก่ review agent ว่าวิธีแก้ปัญหาที่ดีควรเป็นอย่างไร งานจะเสร็จสมบูรณ์เมื่อ review agent รู้สึกว่าได้ตรงตามเกณฑ์แล้ว สามารถจัดลำดับหรือเลือกวิธีแก้ปัญหาผ่าน tournament ตาม rubric ได้เช่นกัน
Evals
คุณสามารถรัน lightweight evals สำหรับงานเฉพาะโดยการสร้างเอเจนต์แยกใน worktree จากนั้นสร้าง comparison agents เพื่อเปรียบเทียบและให้คะแนนผลลัพธ์เฉพาะเทียบกับ rubric เช่น การประเมินและปรับปรุงทักษะที่คุณสร้างขึ้นตามเกณฑ์ที่กำหนด
การกำหนดเส้นทางโมเดลและความฉลาด
สร้าง classifier agent ที่ปรับให้เหมาะกับงานของคุณ ซึ่งตัดสินใจว่าจะใช้โมเดลใด สิ่งนี้มีประโยชน์เมื่องานของคุณเกี่ยวข้องกับการเรียกใช้เครื่องมือจำนวนมาก และการทำวิจัยก่อนดำเนินการสามารถระบุโมเดลที่ดีที่สุดสำหรับงานนั้น
ตัวอย่างเช่น โมเดลที่ดีที่สุดสำหรับงาน "อธิบายว่าโมดูล auth ทำงานอย่างไร" ขึ้นอยู่กับจำนวนไฟล์ในโมดูล auth และโครงสร้างของ codebase classifier agent สามารถทำการวิจัยนี้และกำหนดเส้นทางไปยัง Sonnet หรือ Opus ตามความซับซ้อนที่คาดหวังของงาน
เมื่อใดที่ไม่ควรใช้ dynamic workflows
Workflows ยังใหม่ แม้จะมีหลายกรณีการใช้งานที่สร้างผลลัพธ์ที่ยอดเยี่ยม แต่ก็ไม่จำเป็นสำหรับทุกงาน และอาจใช้ tokens มากกว่าอย่างมีนัยสำคัญ
ควรใช้ workflows อย่างสร้างสรรค์เพื่อผลักดัน Claude Code ในแบบที่คุณไม่เคยทำมาก่อน สำหรับงานเขียนโค้ดทั่วไป ลองถามตัวเองว่ามันต้องการคอมพิวเตอร์เพิ่มจริงๆ หรือไม่? ตัวอย่างเช่น งานเขียนโค้ดแบบดั้งเดิมส่วนใหญ่ไม่จำเป็นต้องมีคณะผู้ตรวจสอบ 5 คน
เคล็ดลับในการสร้าง dynamic workflows
การตั้ง prompt
การตั้ง prompt ที่มีรายละเอียด โดยใช้เทคนิคเฉพาะที่เรากล่าวไว้ข้างต้น สำหรับ dynamic workflows จะสร้างผลลัพธ์ที่ดีที่สุด
Workflows ไม่ได้มีไว้สำหรับงานขนาดใหญ่เท่านั้น คุณสามารถ prompt โมเดลให้ใช้ "quick workflow" ตัวอย่างเช่น คุณสามารถสร้างการตรวจสอบ adversarial อย่างรวดเร็วสำหรับสมมติฐานหนึ่ง
ใช้ร่วมกับ /goal และ /loop
เมื่อใช้ workflows ที่สามารถทำซ้ำได้ เช่น triage, research หรือ verification ให้จับคู่กับ /loop เพื่อรันเป็นระยะๆ และ /goal เพื่อกำหนดข้อกำหนดการเสร็จสิ้นที่เข้มงวด
งบประมาณการใช้ token
คุณสามารถกำหนดงบประมาณการใช้ token ที่ชัดเจนสำหรับ dynamic workflows เพื่อจำกัดจำนวน tokens ที่งานใช้ คุณสามารถ prompt ด้วยงบประมาณเช่น: "ใช้ 10k tokens" ซึ่งจะตั้งค่าขีดจำกัด
การบันทึกและแชร์ dynamic workflows
คุณสามารถบันทึก workflows ได้โดยกด "s" ในเมนู workflow คุณสามารถตรวจสอบไฟล์เหล่านี้ใน ~/.claude/workflows หรือแจกจ่ายผ่าน skill

หากต้องการแชร์ผ่าน skill ให้ใส่ไฟล์ JavaScript workflow ของคุณในโฟลเดอร์ skill และอ้างอิงใน SKILL.MD เพื่อให้มีความยืดหยุ่นมากขึ้น คุณอาจต้องการ prompt Claude ให้คิดว่า workflows ใน skill เป็นเทมเพลตแทนที่จะเป็นสคริปต์ที่ต้องรันทุกคำ

โลกใหม่ทั้งใบ
Workflows เป็นวิธีใหม่ที่มีประโยชน์ในการขยาย Claude Code ผมขอแนะนำให้คุณคิดว่านี่เป็นจุดเริ่มต้น ยังมีอีกมากที่ต้องค้นพบเกี่ยวกับวิธีใช้งานอย่างเหมาะสมที่สุด แจ้งให้เราทราบหากคุณพบอะไร
Thariq Shihipar และ Sid Bidasaria (@sidbid) เป็นสมาชิกทีมเทคนิคของ Anthropic ทำงานเกี่ยวกับ Claude Code





