ส่วนขยายเวิร์กโฟลว์ที่บังคับวงจรการพัฒนาแบบมีโครงสร้างให้กับ Pi coding agent
(github.com/popododo0720)ช่วงนี้มีเครื่องมือ AI coding agent ออกมามากมาย และแนวทางแก้หลายไฟล์พร้อมกันด้วยเอเจนต์แบบขนานก็กำลังได้รับความนิยม แต่พอลองใช้จริงจะรู้ได้อย่างรวดเร็วว่ามีปัญหาอยู่ข้อหนึ่ง — ผลลัพธ์ออกมากระจัดกระจายไร้ทิศทาง
เอเจนต์พ่นโค้ดออกมาโดยไม่มีแผน ความสอดคล้องกันระหว่างโมดูลพังลง และยังทำผิดซ้ำแบบเดิมในแต่ละเซสชัน คำว่า "สร้างได้เร็วและเยอะ" ไม่ได้แปลว่าดีเสมอไป ต่อให้สร้างได้เร็วแค่ไหน ถ้าสุดท้ายคนต้องมาเก็บงานด้านหลังนานกว่าเดิมก็ไม่มีความหมาย
ผมเลยเปลี่ยนแนวทางใหม่ ถ้าตั้งใจทำให้เอเจนต์ช้าลง แต่บังคับให้มีโครงสร้าง คุณภาพสุดท้ายจะดีขึ้นไหม?
ผมสร้างส่วนขยายเวิร์กโฟลว์สำหรับ Pi coding agent (@mariozechner/pi-coding-agent) โดยแกนหลักคือการบังคับให้เอเจนต์ทำตามวงจรการพัฒนา 6 ขั้นตอน:
📝 Plan → 🔍 Verify Plan → 🔨 Implement → ✅ Verify Impl → 🧠 Compound → 🎉 Done
- บล็อกเครื่องมือตามแต่ละขั้น
ถ้าไม่ใช่ขั้น Implement เครื่องมือแก้ไขไฟล์จะถูกบล็อกทั้งหมด แม้แต่คำสั่ง bash อย่างrm,mv,sed -iก็จะถูกบล็อกในขั้นที่เป็นแบบอ่านอย่างเดียว ทำให้ AI ไม่สามารถแตะโค้ดได้เลยก่อนจะวางแผน - การตรวจสอบเชิงปฏิปักษ์แบบขนานด้วยหลายโมเดล
ทั้งแผนและผลลัพธ์จากการ implement จะถูกตรวจสอบพร้อมกันโดยหลาย LLM ไม่ใช่แค่ code review ธรรมดา แต่เป็นการสร้างสถานการณ์เจาะจงเพื่อโจมตีและทำให้โค้ดพัง โดยจัดระดับความรุนแรงเป็น 🔴 CRITICAL / 🟡 WARNING / 🔵 INFO และถ้ามี CRITICAL แม้แต่ข้อเดียว ก็จะผ่านขั้นนั้นไม่ได้ - การเรียนรู้แบบ Compound และหน่วยความจำของโปรเจ็กต์
เมื่อจบแต่ละรอบ จะมีการบันทึกแพตเทิร์น ข้อผิดพลาดที่ควรระวัง (gotchas) และการตัดสินใจด้านสถาปัตยกรรมโดยอัตโนมัติ หน่วยความจำนี้จะถูกเก็บไว้ที่.pi/workflow-memory.jsonและคงอยู่ต่อแม้เปลี่ยนเซสชัน ทำให้สามารถหลีกเลี่ยงการพลาดซ้ำแบบ "เมื่อวานเสียเวลากับจุดนี้ไปแล้ว วันนี้อย่าทำซ้ำอีก" ได้ - Repo Map (AST + PageRank)
ใช้ web-tree-sitter ดึงสัญลักษณ์ทั้งโปรเจ็กต์ (ฟังก์ชัน คลาส อินเทอร์เฟซ ฯลฯ) แล้วสร้าง import graph เพื่อจัดอันดับความสำคัญของไฟล์ด้วย PageRank ทำให้เข้าใจโครงสร้างของโปรเจ็กต์ได้ภายในงบโทเค็น (ค่าเริ่มต้น 2048) เอเจนต์จึงทำงานโดยมีความเข้าใจว่า "โปรเจ็กต์นี้มีโครงสร้างอย่างไร" รองรับ 18 ภาษา
คุณสมบัติอื่น ๆ
- ระบบ TODO — แยกงานใหญ่เป็นหน่วย TODO และให้แต่ละ TODO รันวงจร Implement → Verify → Compound แบบอิสระ
- Git automation — commit/push อัตโนมัติที่ขอบเขตของแต่ละ TODO และถ้า tree ยัง dirty จะบังคับให้จัดการให้เรียบร้อยก่อน
- Custom checks — ถ้าวางไฟล์ Markdown ไว้ใน
docs/checks/ก็สามารถเพิ่มเกณฑ์การตรวจสอบเฉพาะของแต่ละโปรเจ็กต์ได้ - การจัดการคอนเท็กซ์ — แยกคอนเท็กซ์ขั้นต่ำที่ฉีดเข้าตลอดเวลา ออกจากคอนเท็กซ์แบบ on-demand ที่ค้นหาเมื่อจำเป็น เพื่อลดการสิ้นเปลืองโทเค็น
ปรัชญา
ไม่ใช่ว่าเอเจนต์แบบขนานเป็นสิ่งไม่ดี แต่ผมคิดว่าการสร้างแบบขนานโดยไม่มีโครงสร้าง ก็แทบไม่ต่างจากการสร้าง technical debt แบบขนานเช่นกัน ส่วนขยายนี้เริ่มต้นจากแนวคิดว่า "ใช้ AI ทำงานได้ แต่ควรบังคับใช้วินัยแบบเดียวกับที่มนุษย์ใช้ทำงาน"
เขียนด้วย TypeScript 100% และติดตั้งได้ด้วยnpm install+ symbolic link เพียงหนึ่งรายการ
GitHub: https://github.com/popododo0720/pi-stuff
ยินดีรับฟีดแบ็ก!
ยังไม่มีความคิดเห็น