ทำความรู้จักกับ CHAP: เมื่อมนุษย์และ AI ต้องทำงานร่วมกันแบบมีหลักฐาน
ในยุคที่โปรแกรมเมอร์เริ่มใช้ AI เข้ามาช่วยเขียนโค้ดหรือรีวิวงาน เรามักจะเจอปัญหาว่า "เราจะเก็บร่องรอยการตัดสินใจไว้ที่ไหนดี?" สมมติว่า AI แนะนำให้แก้โค้ดจุดหนึ่ง แต่คุณเห็นว่ามันไม่ถูกต้องและตัดสินใจแก้ไขหรือปฏิเสธคำแนะนำนั้น ปกติแล้วบันทึกเหล่านี้มักจะกระจัดกระจายอยู่ในแชท ในคอมเมนต์ของ Ticket หรือหายไปในความทรงจำของเราเอง ซึ่งเมื่อเวลาผ่านไป 6 เดือน หากมีปัญหาเกิดขึ้น เรามักจะจำไม่ได้เลยว่าทำไมเราถึงเลือกทำแบบนั้น
Collaborative Human Agent Protocol (CHAP) คือโปรโตคอล (ชุดกติกาการสื่อสาร) ที่สร้างขึ้นมาเพื่อแก้ปัญหานี้โดยเฉพาะ มันทำหน้าที่เป็น "ซองจดหมายกลาง" ที่รวบรวมงานที่ AI ร่างไว้ และการตัดสินใจของมนุษย์เอาไว้ด้วยกันอย่างมีโครงสร้าง ทำให้คุณสามารถย้อนกลับมาตรวจสอบ (Verify) หรือเรียกดู (Query) ได้เสมอว่าใครทำอะไร เมื่อไหร่ และทำไมถึงทำแบบนั้น
เปรียบเทียบง่ายๆ เหมือนกับการทำงานในสำนักงาน ถ้า AI คือเลขาส่วนตัวที่ร่างเอกสารสัญญาให้คุณ สิ่งที่ CHAP ทำคือการเตรียม "แฟ้มเอกสารมาตรฐาน" ที่เก็บทั้งร่างสัญญาของเลขา และลายเซ็นหรือหมายเหตุการแก้ไขของคุณไว้ในที่เดียวกัน เมื่อมีปัญหาภายหลัง คุณก็แค่หยิบแฟ้มนี้มาเปิดดู ไม่ต้องไปค้นหาตามอีเมลหรือแชทที่กระจัดกระจายอีกต่อไป
เริ่มต้นสร้างพื้นที่ทำงานด้วย CHAP
ก่อนจะเริ่มใช้งาน CHAP เราต้องเข้าใจก่อนว่ามันประกอบด้วยส่วนประกอบหลัก คือ Coordinator (ตัวประสานงาน) ที่คอยจัดการข้อมูล และ Workspace (พื้นที่ทำงาน) ซึ่งเป็นที่เก็บร่องรอยการสื่อสารทั้งหมด การมีที่เก็บข้อมูลที่เป็นระเบียบช่วยให้โปรแกรมเมอร์มือใหม่ฝึกนิสัยการทำ Documentation (การทำเอกสารกำกับงาน) ให้เป็นเรื่องอัตโนมัติ ซึ่งเป็นทักษะสำคัญที่บริษัทไอทีชั้นนำมองหา
ลองดูตัวอย่างการสร้าง Workspace ด้วยโค้ดภาษา TypeScript ด้านล่างนี้ครับ:
import { Coordinator } from "@brightbeamai/chap-coordinator";
import { SqliteStore } from "@brightbeamai/chap-coordinator/storage/sqlite";
// 1. สร้างตัวประสานงานโดยใช้ SQLite เป็นฐานข้อมูลเก็บข้อมูล
const coord = new Coordinator({ store: new SqliteStore("./chap.db") });
// 2. สร้างพื้นที่ทำงานสำหรับการรีวิวโค้ด
coord.api.workspace.create({
workspace: "wsp_pr_reviews",
profiles: ["core/1.0", "review/1.0"]
});
// 3. ลงทะเบียนมนุษย์ (คุณ) และ AI (เช่น Cursor) เข้าสู่ระบบ
coord.api.participant.join({ workspace: "wsp_pr_reviews", from: "human:me@local", type: "human" });
coord.api.participant.join({ workspace: "wsp_pr_reviews", from: "agent:cursor#v1", type: "agent" });
จากโค้ดข้างต้น สิ่งที่คุณทำคือการประกาศตัวตนว่าในโปรเจกต์นี้มีใครบ้าง และเราจะเก็บข้อมูลไว้ที่ไฟล์ chap.db ซึ่งเป็น Database (ฐานข้อมูล) ขนาดเล็กที่รันได้ในเครื่องของคุณเอง ผลลัพธ์ที่ได้คือระบบที่พร้อมจะบันทึกทุกก้าวย่างของการทำงานร่วมกันระหว่างคุณกับ AI โดยไม่ต้องพึ่งพา Cloud หรือเซิร์ฟเวอร์ภายนอกที่ซับซ้อน
การทำงานร่วมกัน: เมื่อ AI ร่างงาน แต่คุณเป็นคนตัดสินใจ
หัวใจสำคัญของ CHAP ไม่ใช่แค่การเก็บข้อมูล แต่คือการที่มนุษย์สามารถเข้าไป Override (แก้ไขสิ่งที่ AI ทำไว้) ได้อย่างเป็นระบบ ในการทำงานจริง AI อาจจะมองว่าโค้ดคุณมีบั๊ก แต่คุณรู้ดีว่านั่นเป็น "Convention" (ข้อตกลงร่วมกันในทีม) ของโปรเจกต์ การใช้ CHAP จะช่วยให้คุณบันทึกเหตุผลกำกับไว้ได้ทันที
นี่คือตัวอย่างการสั่งงาน AI และการที่คุณเข้าไปแก้ไขคำแนะนำของมันครับ:
// AI ส่งงานรีวิวโค้ดเข้ามา
const { task_id } = coord.api.task.create({
workspace: "wsp_pr_reviews",
assignee: "agent:cursor#v1",
kind: "code_review"
});
// คุณไม่เห็นด้วยกับคำแนะนำ เลยทำการ Override
coord.api.decide.override({
workspace: "wsp_pr_reviews",
from: "human:me@local",
task_id,
rationale: "เป็น convention ของเฟรมเวิร์ก ไม่ใช่บั๊ก", // เหตุผลที่คุณแก้ไข
tags: ["false-positive"] // แท็กสำหรับจัดหมวดหมู่ข้อมูล
});
จุดที่มือใหม่มักจะพลาดคือการใส่เหตุผลแบบสั้นเกินไป เช่น "ไม่เอา" หรือ "แก้แล้ว" ซึ่งจะทำให้คุณงงในอีก 3 เดือนข้างหน้า จงฝึกเขียน Rationale (เหตุผลประกอบ) ให้ชัดเจนเสมอ เช่น บอกว่าทำไมถึงแก้ แก้เพื่ออะไร หรืออ้างอิงถึงเอกสารส่วนไหน สิ่งนี้จะทำให้คุณกลายเป็นโปรแกรมเมอร์ที่ทำงานอย่างมีหลักการและมีความเป็นมืออาชีพสูง
ทำไม CHAP ถึงเปลี่ยนวิธีทำงานของโปรแกรมเมอร์?
ในอดีต หากเราต้องการย้อนดูการตัดสินใจ เราอาจต้องนั่งไล่ดู Git Log หรือไล่หาคอมเมนต์ใน GitHub Pull Request ซึ่งมักจะไม่ได้บอกบริบทของการตัดสินใจที่ชัดเจน CHAP เข้ามาเปลี่ยนเกมด้วยการทำให้เหตุผลเหล่านั้นกลายเป็น Data Object (ข้อมูลที่มีโครงสร้าง) ที่คุณสามารถเขียนโปรแกรมเข้าไปค้นหา (Query) ได้
การใช้ CHAP มีข้อดีสำหรับมือใหม่ดังนี้:
- Traceability: สามารถย้อนรอยได้ว่า AI แนะนำอะไรและเราตัดสินใจอย่างไร
- Consistency: ทุกการตัดสินใจมีรูปแบบเดียวกันหมด ไม่ว่าจะกี่โปรเจกต์
- Verification: ช่วยให้เราทบทวนการตัดสินใจของตัวเองได้ว่าที่ผ่านมาเรา "เลือกถูก" หรือไม่
หากคุณกำลังฝึกเขียนโค้ดและเริ่มใช้ AI ช่วย ให้เริ่มลองบันทึกการตัดสินใจแบบนี้ดูครับ แม้ในช่วงแรกจะดูเหมือนเสียเวลาเพิ่มขึ้นเล็กน้อย แต่เมื่อคุณต้องทำงานในโปรเจกต์ขนาดใหญ่หรือต้องทำงานร่วมกับคนอื่น คุณจะพบว่า การมีหลักฐานการตัดสินใจที่ตรวจสอบได้ คือสิ่งที่ช่วยประหยัดเวลาและลดความเครียดได้มหาศาล
สรุป: เริ่มต้นใช้ CHAP เพื่อพัฒนาทักษะโปรแกรมเมอร์
การใช้ CHAP ไม่ได้เป็นเพียงการติดตั้ง Library ใหม่ แต่คือการปรับ Mindset ให้มองว่า "การตัดสินใจของมนุษย์คือส่วนหนึ่งของซอร์สโค้ด" เมื่อคุณเริ่มฝึกบันทึกเหตุผลในทุกการแก้ไข คุณจะค่อยๆ พัฒนาทักษะการคิดเชิงตรรกะ (Critical Thinking) ซึ่งเป็นทักษะที่แยกโปรแกรมเมอร์ทั่วไป ออกจากโปรแกรมเมอร์ที่องค์กรต้องการตัว
ตัวอย่างการนำไปใช้จริง: ในโปรเจกต์ถัดไปที่คุณฝึกทำ ให้ลองสร้าง chap.db ไว้ในเครื่อง เมื่อใดก็ตามที่คุณใช้ AI ช่วยรีวิวโค้ด แล้วคุณพบว่า AI แนะนำผิด หรือคุณเลือกที่จะทำต่างจากที่ AI บอก ให้ใช้คำสั่ง decide.override บันทึกเหตุผลเก็บไว้เสมอ ลองทำแบบนี้ให้ครบ 10 ครั้ง คุณจะเริ่มเห็นรูปแบบการทำงานของตัวเอง และเมื่อกลับมาอ่านบันทึกเหล่านี้ คุณจะพบว่าคุณเก่งขึ้นกว่าวันแรกที่เริ่มโปรเจกต์อย่างแน่นอนครับ
ที่มา: Collaborative Human Agent Protocol (CHAP) — Hacker News