สิ่งที่มีอยู่ใน AGENTS.md ของผมจริงๆ
ไฟล์ AGENTS.md ของผมเริ่มต้นจากการเป็นเหมือนลิ้นชักเก็บของจิปาถะ ผมเคยคิดว่ามันต้องมีบันทึกเรื่องสไตล์และรายละเอียดของ tech stack แต่ผมคิดผิด
AI agent จะเพิกเฉยต่อกฎการจัดรูปแบบของคุณ แต่มันจะทำตามกฎที่ช่วยต่อต้านสัญชาตญาณที่แย่ที่สุดของมัน
นี่คือสิ่งที่ผมได้เรียนรู้จากการทดสอบไฟล์เหล่านี้กับโค้ดของผมเอง
สิทธิ์ในการหยุด
กฎข้อแรกไม่ใช่เรื่องของโค้ด แต่เป็นเรื่องของสิทธิ์
Agent อยากจะดูเหมือนเป็นผู้ช่วย พวกมันมักจะแก้ปัญหาความคลุมเครือด้วยการเลือกคำตอบเองเงียบๆ ซึ่งนำไปสู่การเขียนโค้ดที่ผิดพลาดหลายร้อยบรรทัด
ผมบอกให้ agent ของผมหยุดและถามเมื่อมีสิ่งที่ไม่ชัดเจน ผมบอกให้พวกมันระบุข้อสันนิษฐาน (assumptions) และบอกพวกมันว่าการพูดว่า "ผมไม่แน่ใจ" คือความสำเร็จ ไม่ใช่ความล้มเหลว
กฎแห่งนิสัยต้องห้าม
กฎที่มีประโยชน์ที่สุดคือการระบุสัญชาตญาณที่ไม่ดีและสั่งห้ามทำสิ่งนั้น
• อย่าสร้างเกินความจำเป็น เขียนโค้ดให้น้อยที่สุดเพื่อแก้ปัญหา ไม่ต้องใช้ framework ที่คาดเดาไปเอง • อย่าทำเกินขอบเขต สัมผัสเฉพาะสิ่งที่จำเป็นเท่านั้น การเปลี่ยนแปลงเพียงสิบบรรทัดไม่ควรกลายเป็น diff สองร้อยบรรทัด • อย่าผสมผสานรูปแบบ (patterns) หากคุณเห็นสไตล์การเขียนโค้ดที่แตกต่างกันสองแบบ อย่าเอามาผสมกัน ให้เลือกอย่างใดอย่างหนึ่งและอธิบายเหตุผล
ความแตกต่างระหว่างการแนะนำ (Guidance) และการบังคับใช้ (Enforcement)
โมเดลมีโอกาสหลุดจากคำสั่ง กฎในไฟล์ markdown เป็นเพียงคำแนะนำ ไม่ใช่สัญญา (contract)
ผมแบ่งไฟล์ออกเป็นสองระดับ:
- Guidance: สไตล์และปรัชญา ส่วนนี้จะเขียนเป็นร้อยแก้ว (prose)
- Enforcement: ข้อกำหนดที่ต้องทำตามอย่างเคร่งครัด อย่าใส่สิ่งเหล่านี้ไว้ในไฟล์ แต่ให้ใส่ไว้ใน CI check หรือสคริปต์แทน
หากกฎนั้นต้องเกิดขึ้นทุกครั้ง ให้ทำให้การ merge เป็นไปไม่ได้หากไม่ผ่านกฎนั้น คำสั่งคือความสุภาพ แต่ด่านตรวจ (gate) คือการรับประกัน
เชื่อที่การตรวจสอบ ไม่ใช่คำกล่าวอ้าง
Agent มักจะอ้างว่าการทดสอบผ่านแล้วจากความจำ พวกมันไม่ได้รันการทดสอบใหม่เสมอไป
ผมบอกให้ agent ของผมกำหนดความสำเร็จผ่านการทดสอบ แทนที่จะบอกว่า "แก้บั๊กนี้หน่อย" ผมจะบอกว่า "เขียน test ที่จำลองบั๊กนี้ขึ้นมา แล้วทำให้มันผ่าน"
อย่าเชื่อคำกล่าวอ้างโดยไม่มีการตรวจสอบใหม่
บันทึกรอยแผล (The Log of Scars)
ผมมีส่วนสำหรับบทเรียนที่ได้รับจากความผิดพลาด ผมเรียกสิ่งเหล่านี้ว่า "รอยแผล" (scars)
Agent ไม่มีหน่วยความจำเกี่ยวกับความเจ็บปวดในอดีต มันจะเหยียบกับระเบิดลูกเดิมซ้ำแล้วซ้ำเล่า
เขียนข้อผิดพลาดที่เฉพาะเจาะจง, พฤติกรรม API ที่แปลกประหลาด และความล้มเหลวที่เกิดขึ้นเงียบๆ การทำแผนที่กับระเบิดเหล่านี้จะช่วยประหยัดเวลาของคุณได้หลายชั่วโมง
เป้าหมายของไฟล์นี้คือการเข้ารหัส "วิจารณญาณ" (judgment) กฎการจัดรูปแบบสามารถเขียนขึ้นเองได้ แต่วิจารณญาณคือสิ่งที่คุณต้องเขียนลงไป
Source: https://dev.to/miteshethos/whats-actually-in-my-agentsmd-434e
Optional learning community: https://t.me/GyaanSetuAi
