การถาม vs การมอบหมายงานให้ AI Agent

นักพัฒนาส่วนใหญ่ใช้ AI เหมือนเป็น Stack Overflow เวอร์ชันที่ฉลาดขึ้น

คุณพิมพ์คำถาม คุณได้รับคำตอบ จากนั้นคุณก็ลงมือทำงานด้วยตัวเอง วิธีนี้มันช้า

มีวิธีที่เร็วกว่านั้น คุณต้องเลิกแค่ "ถาม" และเริ่ม "มอบหมายงาน"

เมื่อคุณถาม AI: "ฉันจะเขียนเทสต์สำหรับ auth module ได้อย่างไร?" คุณจะได้คำอธิบาย แต่คุณก็ยังต้องเขียนเทสต์เอง และยังต้องลงมือทำงานเองอยู่ดี

เมื่อคุณมอบหมายงานให้ AI agent: "เขียนเทสต์สำหรับ /src/auth.py ครอบคลุมกรณี login, logout และ invalid token จากนั้นสั่งรันเทสต์ ถ้ามันไม่ผ่าน ให้แก้โค้ดจนกว่าจะผ่าน แล้วบอกฉันด้วยว่าคุณเปลี่ยนอะไรไปบ้าง"

Agent จะเปิดไฟล์ของคุณ เขียนเทสต์ รันเทสต์ อ่านข้อผิดพลาด แก้ไขโค้ด และนำชุดเทสต์ที่ใช้งานได้จริงมาให้คุณ

คุณแค่ตรวจสอบผลลัพธ์ คุณไม่ได้เป็นคนลงมือทำงานเอง

การมอบหมายงานที่มีประสิทธิภาพต้องประกอบด้วย 4 ส่วน:

  • เป้าหมาย (Goal): Agent ควรสร้างผลลัพธ์อะไรออกมา?
  • ขอบเขต (Scope): ไฟล์หรือส่วนไหนที่ Agent ควรเข้าไปจัดการ?
  • เงื่อนไขความสำเร็จ (Success condition): เราจะรู้ได้อย่างไรว่างานเสร็จสิ้นอย่างถูกต้อง?
  • การรายงานผล (Report back): มันเปลี่ยนอะไรไปบ้างและเพราะอะไร?

ตัวอย่างการใช้งานจริง:

การดีบั๊ก (Debugging): "หาสาเหตุที่แท้จริงของข้อผิดพลาดนี้และ stack trace แก้ไขมัน และอธิบายจุดที่พัง"

การรีแฟกเตอร์ (Refactoring): "Refactor ไฟล์นี้ โดยใช้ระดับการซ้อน (nesting levels) ไม่เกินสองชั้น ห้ามมีฟังก์ชันที่ยาวเกิน 30 บรรทัด และอัปเดตทุกจุดที่มีการเรียกใช้งาน (call site)"

การย้ายฐานข้อมูล (Database migration): "เขียนสคริปต์ migration แบบ idempotent สำหรับการเปลี่ยน schema นี้ แล้วลองรันกับฐานข้อมูลในเครื่องเพื่อยืนยันว่าสำเร็จ"

การรีวิว (Reviewing): "อ่าน PR diff นี้ หาจุดที่อาจจะพังเมื่อใช้งานจริง (production) และเขียนเทสต์ในส่วนที่ฉันลืมเขียน"

Agent ทำงานเร็ว แต่บางครั้งก็ผิดพลาดได้ ให้ใช้การตรวจสอบ 3 ข้อนี้เพื่อยืนยันงานของพวกมัน:

  1. มันแก้ปัญหาได้จริงไหม? ให้รันโค้ด อย่าแค่อ่านมันเฉยๆ ให้รันเทสต์ด้วย เพราะการรันโค้ดเป็นวิธีเดียวที่จะพบข้อผิดพลาดในกรณีที่เป็น edge case

  2. มันเข้ากับ codebase ของคุณไหม? Agent ไม่รู้ธรรมเนียมปฏิบัติ (conventions) ของทีมคุณ ให้ตรวจสอบผลลัพธ์ว่ามีรูปแบบที่ผิดปกติหรือมีการใช้ library ที่ทีมคุณหลีกเลี่ยงหรือไม่

  3. มันเปลี่ยนสิ่งที่อยู่นอกเหนือขอบเขตงานหรือไม่? ตรวจสอบว่า Agent เข้าไปแตะไฟล์ไหนบ้าง ให้อ่าน diff เหมือนกำลังรีวิว PR จากนักพัฒนา junior เพื่อให้แน่ใจว่ามันไม่ได้ทำส่วนอื่นพังในขณะที่กำลังช่วยทำงาน

หน้าที่ของคุณจะเปลี่ยนจากการลงมือทำงาน เป็นการกำหนดเป้าหมายและตรวจสอบผลลัพธ์ คุณทำหน้าที่ใช้ดุลยพินิจ ส่วน Agent ทำหน้าที่สร้างความรวดเร็ว

Source: https://dev.to/omerberatsezer/asking-vs-delegating-agents-43ii

Optional learning community: https://t.me/GyaanSetuAi