สิ่งที่น่าสนใจจากการแบ่งปันเรื่อง AI Agent for coding with Claude code

หลังจากที่มีโอกาสได้แบ่งปันความรู้เรื่อง AI Agent for coding with Claude code มานั้น
มีคำถามที่น่าสนใจเกี่ยวกับการควบคุมการทำงานของ AI Agent ให้เป็นไปตามที่ต้องการ
ยกตัวอย่างเช่น

จึงทำการแบ่งปันในมุมมองที่ใช้งานดังนี้

โดยปกติมักจะทำการวางแผนและออกแบบเองก่อน

เพื่อช่วยให้เราเข้าใจภาพรวมของระบบงานก่อน
จากนั้นทำการแบ่งเป็นงานย่อย ๆ
ตั้งแต่ละ feature -> architecture (frontend/backend/database/service) -> user flow/story -> task
จากนั้นจึงทำการเขียน specification ตามกลุ่มงาน หรือ level ที่ต้องการ
มันคือ single source of truth ของระบบนั่นเอง

สิ่งที่ควรให้ความสนใจคือ รูปแบบของ specification ที่เป็นมาตรฐานของทีม
จากนั้นควรมีการตรวจสอบก่อนลงมือทำงานเสมอ
จากไม่ครบตามรูปแบบที่กำหนด ต้องหยุดทำงาน และอธิบายสิ่งที่ขาดหายไป
หรือทำการสร้าง specification จากความต้องการได้เลย และ คนทำการ review อีกครั้ง (AI draft, Human craft)
โดยเราสามารถจัดการได้หลายแบบ เช่น

ตัวอย่างของ Specification template ประกอบไปด้วย

ตัวอย่างเช่น Hooks ขั้นตอน preToolUse

จะทำการ run script ภาษา Python เพื่อตรวจสอบรูปแบบของ specification

ตัวอย่างของ Agent skills เพื่อใช้อธิบายการตรวจสอบ specification

โดยก่อนที่จะทำการอ่านเขียนไฟล์ และ execute bash ต่าง ๆ
จะต้องทำการ run Pre-Tool Hook ก่อนเสมอ
ถ้าผลการทำงานไม่ถูกต้อง จะหยุดการทำงานทันที !!

ตัวอย่างของ response จากทาง AI Agent เมื่อพบว่า specification ไม่เป็นไปตามรูปแบบที่กำหนด


ต่อมาเรื่องของโครงสร้างของ code ในระบบงาน

มักจะแนะนำให้เริ่มจาก modular monolith ก่อน
นั่นคือแบ่งส่วนการทำงานเป็น module ให้ดีก่อน
แนะนำให้ใช้โครงสร้างแบบ Feature-based และ DDD (Domain-Driven-Design)
เพื่อจัดกลุ่มของ code ต่าง ๆ ไม่ให้กระจัดกระจาย
และง่ายต่อการเขียนเอกสาร ความสัมพันธ์ต่าง ๆ ให้ทั้งคนและ AI Agent เข้าใจ
แต่ถ้าไม่ได้จัดการแต่แรก และเอามาให้ AI Agent อ่านและทำความเข้าใจกับระบบงาน
ผลที่ตามมาคือ ทำได้ แต่เปลือง token มาก ๆ
จากนั้นเอาผลโครงสร้างของ code ในระบบมาแผนที่นำทางคน และ AI Agent ทำงานต่อไป
แต่จะดีกว่าไหมถ้าแบ่งให้ดี และ บันทึกไว้ตั้งแต่ต้น !!

หรือจะแยกไปเป็น service ใหม่ ๆ หรือ Microservices ก็ได้
แต่เรามีแผนที่นำทาง หรือ อธิบายความสัมพันธ์ของแต่ละ module และ service หรือไม่ ?
ถ้าไม่มี ก็ลงมือทำซะ !!

เช่นเดียวกันกับการตรวจสอบ specification ให้ทำการสร้าง Hooks
เพื่อบังคับให้อ่านจากเอกสาร หรือ แผนที่ของระบบที่สร้างไว้ก่อนเสมอ

ยังไม่เรื่องอื่น ๆ อีกที่น่าสนใจ
เช่นการตรวจสอบผลการทำงานว่าสิ่งที่ได้ตรงตามความต้องการหรือไม่ ?

Article by Somkiat Puisungnoen

To be Craftmanship