คืนนั้นกำลังประกอบความจำให้ Agent ตัวหนึ่ง อยากให้มันจำเรื่องที่คุยกันข้ามวันได้ ไม่ใช่ลืมทุกครั้งที่ปิดหน้าต่าง พอไปเจอ Backend สำเร็จรูปตัวหนึ่งที่ต่อผ่าน MCP ได้ในบรรทัดเดียว มีมาให้ครบทั้งที่เก็บข้อมูล ระบบสมาชิก ที่เก็บไฟล์ ก็ต่อเข้าไปเลยตอนตีสอง ขึ้นคำว่า Connected เรียบร้อย รู้สึกเหมือนคืนนี้ได้ติดอาวุธให้ Agent เพิ่มอีกชิ้น
คืนถัดมานั่งไล่ดูว่าตอนนี้ Agent ต่อเครื่องมือไว้กี่ตัวแล้ว นับไปนับมาห้าสิบกว่าตัว ตั้งแต่ตัวคุมเบราว์เซอร์ ตัวต่อ Discord ไปจนถึงตัว Backend ที่เพิ่งภูมิใจเมื่อคืน เลยลองวัดของจริงดูว่าในงานที่ผ่านมา Agent หยิบตัวไหนมาใช้บ้าง
ผลที่ออกมาทำให้หยุดคิด จากห้าสิบกว่าตัว มีแค่ 6 ตัว ที่ถูกเรียกใช้จริง ที่เหลือต่อค้างไว้เฉย ๆ รวมถึงตัว Backend ที่เพิ่งต่อเมื่อคืน มันไม่เคยถูกเรียกสักครั้งเดียว
ปฏิกิริยาแรกคืออยากเก็บไว้ก่อน เผื่อวันหน้าได้ใช้ ต่อทิ้งไว้เฉย ๆ คงไม่เสียหายอะไรนี่ แต่ตรงนี้แหละที่เข้าใจผิด เครื่องมือที่ต่อไว้กับ AI มันไม่ได้ฟรี
ช่วงที่ 1คืนที่ต่อเข้า กับคืนที่ถอดออก
ย้อนกลับไปที่คืนนั้น สิ่งที่ทำให้ต่อ Backend ตัวนั้นเข้าไปแทบจะทันที คือมันต่อง่ายเหลือเกิน คำสั่งเดียวจบ ของมาครบ ตอนนั้นในหัวคิดแค่ว่า "มีไว้ก่อน เผื่อความจำของ Agent ต้องใช้" ไม่ได้ถามตัวเองสักคำว่าตอนนี้มันต้องใช้จริงไหม
พอมา audit คืนถัดมา ภาพถึงชัด ตัวที่ถูกเรียกใช้จริงมีอยู่ไม่กี่ตัว ตัวคุมเบราว์เซอร์ ตัวต่อ Discord ตัวจัดการความจำที่รันเองอยู่แล้ว นอกนั้นเป็นของที่ต่อไว้ "เผื่อ" ทั้งนั้น และตัวที่เผื่อไว้ส่วนใหญ่ ก็ไม่เคยถึงคิวได้ใช้
เลยถอด Backend ตัวนั้นออก พร้อมตัวอื่นที่ไม่เคยยิงอีกหลายตัว ใช้เวลาไม่ถึงนาที ที่จริงมันไม่ได้ทำอะไรผิดเลยสักนิด มันแค่ไม่ได้ทำอะไรเลยต่างหาก
ช่วงที่ 2ทำไม "ต่อไว้เฉย ๆ" ถึงติดลบ
ทุกครั้งที่ AI จะทำงานหนึ่งชิ้น มันต้องอ่านรายการเครื่องมือทั้งหมดที่ต่อไว้ก่อน ว่ามีอะไรให้หยิบใช้บ้าง เครื่องมือห้าสิบตัวก็คือคำอธิบายห้าสิบชุดที่ถูกยัดเข้าไปใน context window ทุกรอบ ไม่ว่าจะได้ใช้หรือไม่ ตัวที่ไม่เคยยิงเลยก็ยังกินที่อยู่ดี
ต้นทุนแฝงตรงนี้มีสองชั้นซ้อนกัน ชั้นแรกคือ ที่ในความจำ (Token Overhead) พื้นที่ที่เครื่องมือไม่ได้ใช้กินไป คือพื้นที่ที่ควรเหลือไว้ให้เนื้องานจริง ชั้นที่สองหนักกว่า คือ ความสับสนในการเลือก (Tool Confusion) มีเครื่องมือหน้าที่คล้าย ๆ กันวางซ้อนกันห้าตัว โอกาสที่ AI หยิบผิดตัวก็มากขึ้นตามไปด้วย การตัดสินใจช้าลงและพลาดง่ายขึ้น เครื่องมือที่ไม่ได้ใช้จึงไม่ได้เป็นกลาง มันคอยรบกวนการตัดสินใจอยู่เงียบ ๆ ทุกเทิร์น
นี่คือจุดที่คนพลาดกันบ่อย เรามองว่า "ต่อเครื่องมือเพิ่ม = เก่งขึ้น" เลยสะสมไว้เรื่อย ๆ จนกลายเป็นอาการบ้าหอบฟาง (Tool Bloat) แต่ของพวกนี้ไม่เหมือนของในลิ้นชักที่เก็บไว้แล้วไม่กินอะไร มันเก็บค่าเช่าทุกครั้งที่ AI ขยับตัว การมีเครื่องมือเยอะ ไม่เท่ากับมีความสามารถเยอะ บางทีมันแปลว่าให้ AI แบกของที่ไม่ได้ใช้ไปเปล่า ๆ ต่างหาก
เรื่อง Backend คืนนั้นยังมีหางอีกนิด สุดท้ายความจำของ Agent ไปลงตัวกับ stack ที่เรารันเองคนละตัว ไม่ใช่ตัวสำเร็จรูปที่ต่อมา แปลว่ามันเป็นตัวเลือกที่ทั้งแพ้ตั้งแต่ตอนออกแบบ และไม่เคยถูกเรียกใช้เลยด้วยซ้ำ ค้างอยู่เฉย ๆ จนถึงคืนที่ไป audit เจอ
ช่วงที่ 3ลองวัดของตัวเอง
กฎข้อเดียวที่ต้องจำ
ถ้าจะจำอย่างเดียวจากบทความนี้ ขอให้เป็นข้อนี้ อย่านับว่าต่อไว้กี่ตัว นับว่า AI หยิบไปใช้จริงกี่ตัว ที่เหลือเป็นแค่รายละเอียดของการทำให้เห็นตัวเลขนั้น
เช็กลิสต์ audit เร็ว ๆ
- แยกให้ออกระหว่าง "ต่อไว้" กับ "ถูกเรียก" ลิสต์เครื่องมือที่ต่อไว้ดูเหมือนใช้งานเยอะ แต่ของจริงคือจำนวนครั้งที่มันถูกหยิบมาใช้ สองอย่างนี้ห่างกันได้หลายสิบเท่า
- เปิด log ของจริงดู ไม่ใช่เดาว่าตัวไหนน่าจะได้ใช้ ไล่จากร่องรอยการเรียกใช้จริงในงานที่ผ่านมา
- ตัวไหนไม่เคยยิงเลยในรอบหลาย ๆ งาน ให้ถอด ถอดแล้วไม่ได้หายไปไหน วันหน้าอยากได้คืนก็ต่อใหม่ได้ในบรรทัดเดียว เก็บสำรองไว้ก่อนถอดให้สบายใจ
- ของแถมที่เครื่องมือแอบสร้างทิ้งไว้ก็เก็บกวาดด้วย บางตัวพอต่อแล้วทิ้งไฟล์ตั้งค่าไว้เต็มไปหมด ตัวเองไปแล้วแต่ขยะยังอยู่
ส่วนวิธีวัดแบบเป๊ะ ๆ ว่าตัวไหนยิงจริงกี่ครั้ง เรานับจากร่องรอยตรงที่มันถูกเรียกใช้ ไม่ใช่นับจากที่มันถูกพูดถึงลอย ๆ สองวิธีนี้ให้ตัวเลขต่างกันได้หลายสิบเท่า (เคยเจอเองว่าวิธีนับแบบหลวมเป่าตัวเลขพองขึ้นราว 50 เท่า) ตรงนี้คือส่วนที่เรากำลังทำให้เป็นขั้นตอนซ้ำได้จริง interface ข้างนอกคงที่ ส่วนวิธีนับข้างในสับเปลี่ยนได้ รายละเอียดการดึง log มาวัดอัตราการเรียกใช้จริง (execution rate) มันต่างกันไปตาม stack ที่ใช้ เลยขอยกไปเจาะแยกในพาร์ท Implementation ต่างหาก
ลองหยิบ Agent หรือเครื่องมือ AI ที่ใช้อยู่มาดูสักตัว นับว่าต่ออะไรไว้บ้าง แล้วลองนึกตามจริงว่าอาทิตย์ที่ผ่านมาได้แตะตัวไหนจริง ๆ ช่องว่างระหว่างสองจำนวนนั้นแหละ คือต้นทุนที่จ่ายอยู่โดยไม่รู้ตัว