การวินิจฉัยแบบสด (LSP)
วงจรป้อนกลับที่กระชับที่สุดไม่ต้องรอให้คุณรันโค้ด — มันจับความผิดพลาดในทันทีที่ถูกพิมพ์ นั่นคือสิ่งที่ Language Server Protocol () มอบให้ ความฉลาดแบบสดเบื้องหลังเอดิเตอร์ของคุณ รวมถึง ข้อผิดพลาด ข้อมูลชนิดตัวแปร การไปยังคำนิยาม และ การเติมคำอัตโนมัติ แบบเรียลไทม์ language server อ่านโค้ดของคุณขณะที่มันเปลี่ยนแปลง และรายงานปัญหาก่อนที่อะไรจะรันจริง
ผลตอบแทนสำหรับ vibe coding คือการ ป้อนการวินิจฉัยเหล่านั้นกลับไปให้ AI หากไม่มีสิ่งนี้ วงจรจะช้า AI เขียนโค้ด คุณรันมัน มันพังเพราะพิมพ์ผิดหรือ type error แล้วคุณต้องวางข้อความกลับไปด้วยมือ เมื่อเชื่อมต่อการวินิจฉัยเข้าไปแล้ว เอเจนต์จะเห็นเส้นหยักสีแดงเดียวกับที่คุณเห็นทันทีที่มันเขียนบรรทัดนั้น และแก้ไข type หรือ lint error ไปพร้อม ๆ กับที่มันทำงาน ก่อนที่โค้ดจะได้รันเลยด้วยซ้ำ
คุณสามารถให้เอเจนต์มีสายตานี้ได้หลายวิธี
- รัน language server สำหรับสแตกของคุณ (tsserver, rust-analyzer, pyright และอื่น ๆ) — เอดิเตอร์ที่ออกแบบมาเพื่อ AI ส่วนใหญ่ทำสิ่งนี้ให้คุณอยู่แล้ว
- ให้เอเจนต์รันคำสั่ง typecheck หรือ lint แล้วอ่านผลลัพธ์ หรือเปิดเผยการวินิจฉัยผ่าน server
- ปฏิบัติต่อรายงานการวินิจฉัยที่สะอาดเป็นส่วนหนึ่งของ "เสร็จแล้ว" ไม่ใช่สิ่งที่คิดขึ้นทีหลัง
เมื่อเชื่อมต่อในลักษณะนี้ เอเจนต์จะรันวงจรแก้ไขตัวเองแบบเดียวกันด้วยตัวเอง — แก้ไข รัน อ่านความล้มเหลว แก้ไข และรันอีกครั้งจนกว่าการวินิจฉัยจะกลับมาสะอาด
┌──────────┐ ┌──────────┐ ┌──────────────┐
│ EDIT │ ───▶ │ RUN │ ───▶ │ READ FAILURE │
└──────────┘ └──────────┘ └──────┬───────┘
▲ │
│ ▼
│ ┌──────────┐ ┌──────────┐
│ │ PASS │ ◀──── │ FIX │
│ │ (done) │ no └──────────┘
│ └────┬─────┘
└─────────────────┘
still failing
นี่คือเหตุผลที่ภาษาแบบ typed สามารถเป็นพลังพิเศษเงียบ ๆ สำหรับ vibe coding ทุก type annotation คือข้อกำหนดเล็ก ๆ ที่เครื่องตรวจสอบได้ ซึ่งจับความผิดพลาดของ AI ก่อนที่มันจะได้รันเลยด้วยซ้ำ วงจรแบบรัน-พัง-วาง กลายเป็นวงจรที่แก้ไขตัวเองอย่างเงียบ ๆ AI บดเวลาน้อยลงและบรรจบสู่คำตอบได้เร็วขึ้น