งาน ANA ปิดการทดสอบแล้ว บทความนี้สรุปว่าทดสอบอะไรไปบ้าง ทดสอบอย่างไร และผลที่ได้น่าสนใจแค่ไหนแบบตรงไปตรงมา
ชั้นที่ 1: test suite 83 ข้อ
มีเทสต์อัตโนมัติ 83 ข้อ ผ่านทั้งหมด ครอบคลุมฟีเจอร์หลัก ส่วนที่น่าสนใจที่สุดคือกลุ่มภาษาธรรมชาติ:
- C16 พิมพ์ชื่องานภาษาไทยแล้วระบบแยกกำหนดส่งกับเวลาออก พร้อมทำความสะอาดชื่อให้ ถ้ากำกวมจะถามกลับ (409) ก่อนสร้าง ไม่เดาเอาเอง
- C17 งานที่เกิดซ้ำพอทำเสร็จ รอบถัดไปจะถูกสร้างอัตโนมัติพร้อมความเชื่อมโยง และทำซ้ำแค่ไหนก็ไม่เกิดงานซ้อน
- C18 ทุกการกระทำกับงาน โน้ต และนัดหมาย จะถูกบันทึกเป็น activity log ย้อนดูได้ว่าใครทำอะไรกับชิ้นไหน
- C19/C20 หน้า dashboard บอกความสามารถของ agent และแสดงคำใบ้เมื่อข้อมูลน้อย แถมแนะนำวันที่จากข้อความในชื่องานเก่า
เทสต์กลุ่มนี้สำคัญเพราะมันคือเรื่อง "ความไว้ใจ" ถ้า AI แยกวันที่ผิดแล้วสร้างงานผิดเลย ระบบแบบนี้เอาไปใช้จริงไม่ได้ การถามกลับเมื่อไม่แน่ใจจึงเป็นพฤติกรรมที่ถูกต้อง
ชั้นที่ 2: สถานการณ์จำลองเต็มรอบ
รันWorkflowสมมติทั้งเส้นบนกระดานใหม่ จากบอร์ดเปล่า v1 ถึง v9:
- จดโน้ตหนึ่งใบ
- agent เสนอแผน (proposal) แตกออกเป็น 3 งาน
- อนุมัติ เกิดงาน 3 ชิ้นพร้อม link ย้อนกลับ
- พิมพ์งานภาษาไทยแบบกำกวม ระบบถามกลับ ตอบยืนยันแล้วสร้างงานเกิดซ้ำรายสัปดาห์
- ทำงานเสร็จ รอบถัดไปเกิดอัตโนมัติ
- สร้างนัดหมาย โยงกับงานที่ต้องเตรียมตัว
จบที่ 5 งาน 1 นัดหมาย 1 โน้ต และ 5 ความเชื่อมโยง โดยทำผ่าน API ทั้งหมดโดยไม่แก้โค้ดเลย
ผลคือวงจร proposal-approve กับ graph links ทำงานร่วมกันได้จริง ไม่ใช่แค่ฟีเจอร์แยกชิ้นที่เทสต์ผ่านเป็นข้อๆ
ชั้นที่ 3: ทดสอบพาขึ้น serverless
โจทย์ที่ท้าทายที่สุดคือเอาแอปที่เกิดมาเพื่อรันบนเครื่องตัวเอง (ผูก localhost คุย tmux เก็บไฟล์) ไปรันบน Vercel ที่เป็น serverless ทั้งที่รู้ว่าเข้ากันไม่ได้ เพื่อดูว่าอะไรรอดและอะไรพัง
ผลคือรอดเกินคาด หน้าเว็บกับ API หลักใช้งานได้จริง ทั้งสร้างงาน ทำเสร็จ จดโน้ต และสร้างนัดหมาย โดย state ค้างข้าม request ได้ ส่วนที่พังตามคาดคือส่วนที่ต้องใช้ tmux (ฉีดแชทกับ mirror จอ) ซึ่งใช้บน serverless ไม่ได้โดยโครงสร้าง จึงออกแบบให้ route พวกนั้นตอบ 501 อย่างชัดเจนแทนที่จะพังเงียบ ส่วน state ที่อยู่บน /tmp จะรีเซ็ตเมื่อ cold start จึงต้องต่อ database ถ้าจะใช้จริง
สรุปว่าน่าสนใจไหม
น่าสนใจสามเรื่อง:
- วงจรคุยแล้วแอปเปลี่ยนใช้ได้จริง ไม่ใช่สไลด์ขายฝัน มี proposal approve diff และ bump version ครบเป็นระบบ ไม่ใช่แค่สั่งแล้วลุ้น
- AI ที่ถามกลับเมื่อไม่แน่ใจ พฤติกรรมเล็กๆ นี้คือเส้นแบ่งระหว่างของเล่นกับของใช้จริง
- รู้ขอบเขตตัวเองชัด อะไรรันบน serverless ไม่ได้ก็บอกชัดด้วย 501 อะไรต้องมี database ถึงรอดก็บอกชัด ไม่หลอกว่าใช้ได้ทั้งหมด
ข้อควรทราบก่อนใช้คือ ANA ผูกกับเครื่องตัวเองโดยออกแบบ ถ้าอยากได้ของที่เปิดจากที่ไหนก็ได้ ต้องยอมเสียบางความสามารถทิ้งตามข้อ 3 ข้างบน