𝗟𝗼𝗰𝗮𝗹 𝗖𝗼𝗱𝗶𝗻𝗴 𝗔𝗴𝗲𝗻𝘁𝘀 𝗰𝘂̈𝗼 𝗽𝗮𝗻𝗵𝗮𝗵𝗮̄ 𝗱𝗮̂𝗮𝗻 𝘀𝗮𝗽𝗵𝗮̄𝗽-𝗮𝗲𝘃𝗮̄𝗹𝗼𝗺
Prompt ไม่ใช่หัวใจสำคัญของการตั้งค่า coding agent อีกต่อไป
การสาธิตส่วนใหญ่มักทำให้ดูเหมือนว่า prompt คือผลิตภัณฑ์ทั้งหมด คุณสั่งให้ทำฟีเจอร์หนึ่งอย่าง ตัว agent ก็อ่านไฟล์ แก้ไขโค้ด และรันการทดสอบ ซึ่งมันดูราบรื่นดีเมื่ออยู่ในวิดีโอ
แต่ local agent ในการใช้งานจริงนั้นวุ่นวายกว่ามาก เมื่อ agent เข้ามาอยู่ใกล้กับ repo ของคุณ รันคำสั่ง และใช้เครื่องมือต่างๆ คำถามสำคัญจะเปลี่ยนไป
มันไม่ใช่ "ฉันเขียน prompt ได้สมบูรณ์แบบหรือยัง?" แต่มันคือ "ฉันให้สภาพแวดล้อมแบบไหนกับสิ่งนี้?"
Chat assistant มีขอบเขตที่ชัดเจน คุณวาง context แล้วก็ได้ข้อความตอบกลับมา แต่ local coding agent นั้นต่างออกไป มันเข้าถึง shell, เครื่องมือในเครื่อง, package managers และข้อมูลประจำตัว (credentials) ของคุณ สภาพแวดล้อมจึงกลายเป็นผลิตภัณฑ์ที่แท้จริง
การตั้งค่า local agent คือการวางโครงสร้างพื้นฐานสำหรับนักพัฒนา (developer infrastructure) ไม่ใช่แค่การติดตั้งเครื่องมือ AI เท่านั้น
คุณต้องตัดสินใจว่า:
- Agent สามารถอ่านอะไรได้บ้าง?
- มันสามารถแก้ไขอะไรได้บ้าง?
- มันสามารถรันคำสั่งอะไรได้บ้าง?
- มีเครื่องมือใดบ้างที่พร้อมใช้งานโดยค่าเริ่มต้น?
- state ถูกเก็บไว้ที่ไหน?
- นักพัฒนาคนอื่นสามารถจำลองการตั้งค่านี้ได้หรือไม่?
- Agent ทิ้งหลักฐานอะไรไว้บ้าง?
หากคำตอบเหล่านี้ยังคลุมเครือ ต่อให้คุณเขียน prompt ดีแค่ไหนก็ช่วยอะไรไม่ได้
Prompt ที่ดีขึ้นช่วยปรับปรุงคำตอบเพียงข้อเดียว แต่สภาพแวดล้อมที่ดีขึ้นจะช่วยปรับปรุงวงจรการทำงานทั้งหมด
จงจัดการการตั้งค่า agent เหมือนกับการจัดการ CI/CD หรือ deployment gates อย่ามองว่าเป็นเพียงความชอบส่วนบุคคล แต่จงมองว่ามันคือระบบ
หาก agent แก้ไขไฟล์ได้แต่รันการตรวจสอบไม่ได้ มันก็เป็นแค่เครื่องมือสร้างโค้ดที่ถูกปิดตาไว้ และหากคุณเชื่อมต่อมันเข้ากับทุกเครื่องมือเพียงเพราะคิดว่าการมี integration เยอะๆ นั้นดี คุณก็กำลังสร้างโมเดลการอนุญาตสิทธิ์ (permission model) โดยที่คุณไม่รู้ตัว
เป้าหมายคือการมุ่งไปสู่ความสามารถที่เฉพาะเจาะจงและตรวจสอบได้
ทักษะที่เฉพาะเจาะจงอย่าง "รันการทดสอบนี้และสรุปข้อผิดพลาด" นั้นดีกว่าคำสั่งกว้างๆ อย่าง "ทำให้แน่ใจว่าทุกอย่างทำงานได้" เพราะแบบแรกจะทิ้งร่องรอยไว้ให้ตรวจสอบ ส่วนแบบหลังเป็นเพียงการแสดงละคร
ซอฟต์แวร์ที่ดีต้องมีขอบเขต
อย่าไปโฟกัสว่า agent สามารถเชื่อมต่อกับเครื่องมือได้มากแค่ไหน แต่ให้โฟกัสว่าเครื่องมือแต่ละอย่างอนุญาตให้ agent ทำอะไรได้บ้าง มันสามารถเปลี่ยนแปลง state ได้ไหม? มันสามารถเข้าถึง production ได้หรือไม่? หรือมันเปิดเผยความลับ (secrets) หรือเปล่า?
ผลลัพธ์ (output) ไม่ใช่สิ่งเดียวกับความสามารถในการทุ่นแรง (leverage) Agent สามารถสร้างโค้ดและ branch ได้มากขึ้น ซึ่งอาจสร้างภาระในการตรวจสอบ (review debt) หากงานนั้นอ่านยาก
การตั้งค่าแบบ local ควรช่วยให้งานของมนุษย์ง่ายขึ้น หากมันแค่ทำให้ agent ทำงานเร็วขึ้น ทีมของคุณอาจไม่ได้ทำงานเร็วขึ้นเลยด้วยซ้ำ
จงเชื่อมั่นในสภาพแวดล้อม ก่อนที่จะเชื่อมั่นในผลลัพธ์
Source: https://dev.to/hefty_69a4c2d631c9dd70724/local-coding-agents-are-an-environment-problem-1o4p
Optional learning community: https://t.me/GyaanSetuAi