ผมแทนที่โค้ด Python 1,000 บรรทัด ด้วย Prompt เพียง 500 คำ
Wiki สำหรับเอกสารของผมเละเทะมาก หน้าต่างๆ ไม่มีแท็ก หนังสือวางอยู่ผิดชั้น ข้อมูล Metadata ก็เก่า ผมพยายามเขียนกฎขึ้นมา แต่ก็ไม่มีเวลามาคอยควบคุมให้เป็นไปตามนั้น
ผมเลยพยายามสร้าง AI agent ขึ้นมาเพื่อแก้ไขมัน
เวอร์ชัน 1 คือ Python service ผมเขียนโค้ดไป 1,000 บรรทัด ทั้งสร้าง rule engine, API wrapper และ retry logic แต่มันล้มเหลว มันเสียเงินทุกครั้งที่รัน แถมยังแอบซ่อนบั๊กไว้ในโค้ดของผมเองอีกด้วย
ผมเพิ่งตระหนักได้ว่า ผมกำลังสร้างเครื่องมือที่ผมจ่ายเงินซื้อมาแล้วขึ้นมาใหม่
เวอร์ชัน 2 นั้นต่างออกไป ผมใช้เพียง Kubernetes CronJob ง่ายๆ โดยให้ container รันเครื่องมือ AI แบบ command-line และเก็บตรรกะ (logic) ทั้งหมดไว้ใน prompt เพียง 500 คำ
การตั้งค่าแบบนี้ทำงานได้ดีกว่าเพราะ:
• มันไม่มีค่าใช้จ่ายในการรันแต่ละครั้ง เพราะมันใช้การสมัครสมาชิก (subscription) ที่ผมมีอยู่แล้ว แทนที่จะต้องใช้ API keys ราคาแพง • มันมีการตัดสินใจที่ดีกว่า โดยจะคอยแจ้งเตือนปัญหาที่อาจเกิดขึ้น แทนที่จะเข้าไปแก้ไขข้อมูลจนเละเทะ • จัดการได้ง่ายกว่า โค้ดของผมลดลงจาก 1,000 บรรทัด เหลือเพียง shell script 50 บรรทัด
วิธีการให้สิทธิ์ AI ในการเขียนข้อมูล (write access) อย่างปลอดภัย:
- แบ่งการทำงานออกเป็นสองระดับ (Tier) โดย Tier 1 ใช้สำหรับการแก้ไขที่ชัดเจน เช่น การแก้คำผิด ส่วน Tier 2 ใช้สำหรับการตัดสินใจที่ต้องใช้ดุลยพินิจ ซึ่งใน Tier 2 นี้ agent จะทำเพียงแค่เสนอการเปลี่ยนแปลงเท่านั้น และจะไม่แตะต้องข้อมูลโดยตรง
- บังคับให้มีการตรวจสอบตัวเอง (self-review) โดยใน prompt จะสั่งให้ agent ถามว่า: "ถ้าเป็นมนุษย์ เขาจะคัดค้านการเปลี่ยนแปลงนี้ไหม?" หากคำตอบคือใช่ agent จะหยุดทำงานทันที
- พึ่งพาปุ่ม Undo ใช้รูปแบบนี้กับระบบที่มีประวัติเวอร์ชัน (version history) เท่านั้น หาก agent ทำพลาด การคลิกเพียงครั้งเดียวก็สามารถแก้ไขได้ การทำให้ย้อนกลับได้ (reversibility) นั้นสำคัญกว่าการกำหนดสิทธิ์ที่เข้มงวด
บทเรียนที่ได้รับ:
- Prompt คือโค้ด จงปฏิบัติกับ prompt เหมือนเป็นโมดูลซอฟต์แวร์ตัวหนึ่ง เก็บมันไว้ใน Git และหมั่นตรวจสอบอย่างสม่ำเสมอ
- ลืมเรื่องการจัดการที่ซับซ้อน (complex orchestration) ไปได้เลย หากโค้ดของคุณทำหน้าที่เพียงแค่จัดการเรื่องการลองใหม่ (retries) และการกำหนดเส้นทาง (routing) แสดงว่าคุณกำลังสร้างแค่โครงสร้างรองรับ (harness) ให้เปลี่ยนมาส่งมอบแค่ prompt และตารางเวลา (schedule) แทน
- เศรษฐศาสตร์เปลี่ยนการออกแบบของคุณ เมื่อการรันไม่มีค่าใช้จ่าย คุณก็ไม่จำเป็นต้องเขียนโค้ดซับซ้อนเพื่อติดตามการเปลี่ยนแปลงเล็กๆ น้อยๆ คุณสามารถสั่งให้สแกนใหม่ทั้งหมดได้เลย
ตอนนี้ wiki สะอาดเรียบร้อยแล้ว บรรณารักษ์คนนี้ไม่เคยหลับใหล และไม่เคยส่งใบแจ้งหนี้มาให้ผมด้วย
Source: https://dev.to/saltxd/i-replaced-1000-lines-of-python-with-a-500-word-prompt-29ao
Optional learning community: https://t.me/GyaanSetuAi
