Same Horse, Different Fates
AI Expo Thailand · อาทิตย์ 8 พฤศจิกายน 2026 · Ohm Mingrath
สไลด์ทั้ง 48 หน้าจากทอล์ก พร้อมโน้ตภาษาไทยของแต่ละหน้า และลิงก์คอร์ส บทความ งานวิจัย ตารางเทียบ hook รายค่าย กับเครื่องมือทั้งหมดที่พูดถึงในทอล์ก
Every slide from the talk with its Thai notes, and every link it promised: courses, articles, research, the hook table and the tools.
สารบัญ · contents
จุดแดงจุดเดียวในห้าร้อยจุด
You're absolutely right!
เคสจริง เช็กสแกนหน้าหอพัก
โพสต์จริง คนกลายเป็นตัวเชื่อม
agent ของ OpenAI หนีออกจาก sandbox
ปัญหาอยู่ที่โมเดล หรืออยู่ที่อะไร
harness
agent = model + harness
ในเคสหอพัก harness อยู่ตรงไหน
โมเดลเหมือนกัน ที่ต่างคือ harness
แนะนำตัว และคุณคือ harness
สี่แหล่งหลักของทอล์ก
Humans use interfaces. LLMs use harnesses.
ไม่ได้มีแค่แชทกับเขียนโค้ด
เชฟในห้องกระจก กับ 5 อย่างที่ harness ต้องมี
tiny.ts 43 บรรทัด
Claude Code = interface + harness
ไม่มีครัวไหนมีครบทุกอย่าง
agent = LLM + harness
กติกาการแข่ง
6 ลู่ และ replay รอบจริง
ผล 10 รอบ
จากครัวบ้านสู่ร้านอาหาร
น้องจบใหม่ที่ถูกสั่งงานทิ้งไว้โดยห้ามถามคน
Demo 1 ขึ้นเขียวบนจอ
7 วินาที ดีเกินจริง
วัดผล 3 แบบ และไฟล์ที่จำทุกอย่าง
Demo 2 Policy Scorecard 0/4
Pi + dorm.ts และ 4 จุดดักแก้
จุดที่ 1 ก่อนส่ง context เข้าโมเดล
Prompt Caching จัดลำดับ context ไม่ให้เปลือง
token ≠ เงิน
คลีนซองใน dorm.ts ด้วย pi.on("context")
RLM เมื่อข้อมูลใหญ่เกินจะยัดเข้า context
ปุ่ม ตัดทางผิดตั้งแต่ต้น
เบรก
รั้ว ป้ายห้ามกับประตูล็อก
Demo 3 ม้าตัวเดิม 4 เต็ม 4
ใครจับพวงมาลัย Agent หรือ Workflow
LearnHarness ครัวสำหรับเรียนเรื่องยาก
OpenResearch ครัวสำหรับผู้ช่วยวิจัย
MCP ปลั๊กเดียว กับปลั๊กยี่สิบตัว
3 MCP ที่ผมใช้จริง
MCP หยิบได้ RAG หาแม่น
เลือกครัวไหนดี
T3 Code แผงควบคุมรวมหลาย harness
พรุ่งนี้เช้าเริ่มยังไง บันได 4 ขั้น
ม้าตัวเดียวกัน ชะตาต่างกัน
SLIDE 1
จุดแดงจุดเดียวในห้าร้อยจุด
Karpathy's dots, freedom is painful, then an AI that says done
จุดสีเทาบนจอคือคนทั้งโลก ประมาณแปดพันล้านคน ห้าร้อยจุด จุดนึงประมาณสิบหกล้านคน เมื่อเดือนที่แล้ว Andrej Karpathy โพสต์ตัวเลขกะคร่าวๆ ว่าประมาณสามในสี่ของโลกแทบไม่เคยแตะ AI เลย
จุดสีน้ำเงิน คนที่ใช้แบบแชทถามตอบ ส่วนใหญ่ใช้ตัวฟรี นานๆ ใช้ที ประมาณหนึ่งถึงสองพันล้านคน ราวยี่สิบเปอร์เซ็นต์ จุดแดงจุดเดียว คนที่เห็นกับตาว่า agent รับงานใหญ่ที่เคยใช้เวลาเป็นสัปดาห์เป็นเดือนไปทำจนเสร็จได้จริง ประมาณยี่สิบล้านคน ศูนย์จุดสองเปอร์เซ็นต์ ในจุดแดงนั้น จุดเล็กๆ ตรงกลางคือคนใน frontier lab ที่ได้ใช้ระบบที่คนข้างนอกยังไม่ได้ใช้ ประมาณห้าพันคนทั้งโลก
แล้วคุณล่ะครับ อยู่ตรงไหน
หลายคนน่าจะคิดว่าสิ่งที่กั้นอยู่คือเรื่องโมเดล ผมเคยได้ยินคนพูดว่า freedom is painful ใช้ค่ายไหนก็ติดค่ายนั้น อยากย้ายทีก็เจ็บตัว แต่ที่ผมใช้เองทุกวันนี้ ฝั่ง cloud ง่ายกว่าต้นปีเยอะมาก (คลิปบนจอคือรายการโมเดลใน Pi กับเมนูเลือกโมเดลของ T3 Code) เลือกได้โคตรเยอะ
ถ้าเลือก AI ตัวไหนก็ได้ง่ายขนาดนี้ แถมมีคนทำเครื่องมือมาให้เต็มไปหมด ทำไมจุดแดงยังเล็กนิดเดียวอยู่
ลองนึกภาพ เราคุยกับลูกน้อง AI ไปร้อยกว่าข้อความ แล้วน้องส่งงานกลับมาว่า เรียบร้อยครับ ผมตรวจงานเรียบร้อย สามารถใช้งานได้แน่นอน พอเอาไปใช้จริงปุ๊บ ตึ๊ง เจอ error เราก็กลับมาถามว่า อ้าว ไหนคุณบอกว่ามันรันผ่านไง แล้วน้องจะตอบว่าอะไร
ที่มา: Andrej Karpathy บน X (11 ต.ค. 2026) x.com/karpathy/status/2109361546505966046
SLIDE 2
You're absolutely right!
You're absolutely right
You're absolutely right! หรือภาษาไทยก็ เฮ้ย สิ่งที่คุณพูดมันใช่เลยครับ ผมผิดเอง เดี๋ยวผมหาทางแก้ให้
ข่าวดีคือ ทุกวันนี้เรามีลูกน้อง AI เก่งระดับปริญญาเอก ไม่เคยบ่น ไม่เคยเถียง พร้อมชมว่าเราฉลาดทุกห้านาที ชมเก่งมาก ขอโทษไวมาก แล้วก็เปลี่ยนไปเปลี่ยนมาตลอด
SLIDE 3
เคสจริง เช็กสแกนหน้าหอพัก
Two books and a spiral
เคสนี้ผมเจอในกลุ่มเฟซบุ๊ก และทักไปขออนุญาตเจ้าของโพสต์มาเล่าแล้ว
พี่เขาดูแลหอพัก อยากให้ AI เช็กเรื่องเดียว ว่าใครไม่สแกนหน้าเข้าหอเกินเจ็ดวัน สิบห้าวัน และสามสิบวัน เอารายชื่อคนพักมาเทียบกับประวัติสแกนหน้า แค่นี้
ขั้นที่ดูยากอย่างดึงข้อมูลมารวมกัน น้องทำเสร็จหมดแล้ว เหลือแค่เอามาเทียบ แต่น้องไปติดลูปตรงการตรวจงานตัวเอง ตรวจแล้วตัวเลขไม่ตรงก็แก้ แก้เสร็จก็ตรวจใหม่ ยิ่งตรวจยิ่งเจอปัญหา ก็ตั้งกฎตรวจตัวเองเข้มขึ้นเรื่อยๆ
วนอยู่อย่างนั้นสองวันเต็มๆ งานก็ไม่เสร็จสักที จนสุดท้าย AI ตอบพี่เขากลับมาเป็นข้อความในโพสต์ถัดไป
ที่มา: เจ้าของโพสต์เล่าเพิ่มเติมและอนุญาตให้นำมาเล่า (29 ต.ค. 2026)
SLIDE 4
โพสต์จริง คนกลายเป็นตัวเชื่อม
The real post
ดูประโยคที่น้องยอมรับเอง (วงแดงในภาพ) เราเริ่มหลงเป้าหมายจริงๆ ครับ
ตอนแรกแค่อยากเช็กสแกนหน้าให้เสร็จ ตอนนี้มัวแต่สร้างขั้นตอนวนไปวนมา การตรวจงานกลายเป็นงานหลัก งานจริงไม่ได้ทำ แถมพี่เขายังต้องมานั่งเป็นคนเชื่อมระบบเองทั้งหมด ทั้งที่ตั้งใจให้ AI มาช่วยลดภาระแท้ๆ
พี่เขาเลยแคปมาถามในกลุ่มว่ามีใครเจอแบบนี้บ้าง เหนื่อยมาก ผมไม่บอกชื่อกลุ่ม แต่ถ้าคุณอยู่ในกลุ่มเฟซบุ๊กของ AI เจ้านี้ คุณจะเห็นโพสต์แบบนี้เกือบทุกวัน
แล้วปัญหาอยู่ที่โมเดลไม่ฉลาด หรืออยู่ที่อะไร
ที่มา: โพสต์ในกลุ่ม Facebook ปิด เจ้าของโพสต์อนุญาตให้ใช้ภาพและรายละเอียด จึงไม่มีลิงก์ และปิดชื่อคนโพสต์กับชื่อกลุ่มไว้
SLIDE 6
ปัญหาอยู่ที่โมเดล หรืออยู่ที่อะไร
Model, or what?
ผมเล่าสามเรื่องนี้เพื่อจะถามว่า อะไรคือปัญหา โมเดลไม่ดี หรืออยู่ที่อะไร
ถ้าเรากดเปลี่ยนโมเดลจากเมนูเมื่อกี้ สามเรื่องนี้จะหายไหม
ในห้องผมให้ยกมือโหวตกัน ลองตอบในใจก่อนไปสไลด์ถัดไปครับ
SLIDE 7
harness
The word, on a horse
ปัญหาอยู่ที่เรื่องที่ผมจะพูดวันนี้ คือคำว่า harness
บนจอคือม้าที่ค่อยๆ ถูกสวมบังเหียน สายจูง ปลอกคอ สายรัดท้อง ชุดสายพวกนี้คือ harness แล้วในโลก AI มันคืออะไร ดูสมการนี้ก่อน
SLIDE 8
agent = model + harness
The equation, as a stable
agent คือตัวที่เราเอาไปทำงาน agent เท่ากับ model บวก harness
model คือตัวสมอง เปลี่ยนข้อความหนึ่งให้เป็นอีกอย่าง เช่น Opus, GPT หรือโมเดลที่บริษัทใหญ่ๆ ทำมาให้เราใช้ ส่วน harness คือองค์ประกอบสำคัญที่ทำให้โมเดลกลายเป็น agent
ถ้าคิดเป็นรูปธรรม ในเคสหอพักเมื่อกี้ harness อยู่ตรงไหนบ้าง
SLIDE 9
ในเคสหอพัก harness อยู่ตรงไหน
Where the harness sits in the dorm case
ตัวโมเดลฉลาดพอจะทำเรื่องนี้ได้อยู่แล้ว แต่ถ้าตัดทุกอย่างรอบตัวมันออก โมเดลทำได้แค่รับข้อความเข้าแล้วพ่นข้อความออก จำอะไรไม่ได้ และไม่รู้จักหอพักพี่เขา
ส่วนที่เหลือรอบตัวมัน ตัวแพ็กข้อความใส่ซองส่งให้โมเดล ตัวที่พามันไปดึงข้อมูล รันโค้ด ตรวจยอด ไปจนถึงกติกาว่าตรวจผ่านเมื่อไหร่ ไม่ผ่านกี่รอบต้องเบรก ทุกอย่างนี้คือ harness
พี่เขาใช้ ChatGPT บนเว็บเป็นตัวคุมงานหลัก คือใช้มันเป็น harness ซึ่งถูกออกแบบมาให้คุยแชททั่วไป ไม่ใช่รันงานยาวๆ ปัญหาเลยมีสองมุม
มุมแรกคือซองข้อความ หรือ context โมเดลจำอะไรไม่ได้ ตัวเว็บเลยเป็นคนจัดซองแล้วส่งให้โมเดลอ่านใหม่ทุกรอบ ยิ่งคุยยาว ซองก็ยิ่งบวมด้วยของไม่เกี่ยว การทดลองที่พัง ประวัติที่ตรวจไม่ผ่าน กฎที่มันตั้งเอง พอบวมก็ช้า ก็แพง และพอน้องอ่านเจอแต่เรื่องตรวจงาน มันก็ bias ไปทางนั้น ยิ่งหมกมุ่นกับการตรวจ ยิ่งหลงเป้า
พอ context เต็ม หลังบ้านก็ทำ compaction ย่อสรุปให้อัตโนมัติ แต่ถ้าในแชทมีแต่เรื่องซ้ำๆ ตอนย่อมันอาจตัดประเด็นสำคัญที่คุยไว้ตอนแรกสุดทิ้งไป
มุมที่สอง ChatGPT บนเว็บต่อกับฐานข้อมูลหรือ Windows Server ของหอพักตรงๆ ไม่ได้ มองไม่เห็นข้างในเซิร์ฟเวอร์ และไม่มีกติกาเบรกว่าไม่ผ่านกี่รอบต้องหยุด พี่เขาเลยต้องเป็นคนกลางเชื่อมระบบสี่ตัวเอง (ภาพบนจอ)
สั่งงานในแชท ChatGPT ให้เปิดใบงานบน GitHub สลับไปให้ Codex อ่านใบงานแล้วเขียนโค้ดส่งกลับมา เอาโค้ดไปรันกับข้อมูลจริงบน Windows Server ของหอพักเอง ผลไม่ตรงก็กลับมาแจ้งในแชทเดิม ซึ่งแชทก็เสนอให้เพิ่มขั้นตอนตรวจงานเข้าไปอีก
ผลคือ ข้อมูลกระจายอยู่คนละที่ ตัวสั่งงานไม่เคยเห็นข้อมูลจริง เห็นแค่ที่พี่เขาก๊อปมาเล่า ตัวเขียนโค้ดก็เห็นแค่ใบงาน พอมองไม่เห็นของจริงก็เดาสาเหตุผิดจุด แทนที่จะแก้ข้อมูลที่เพี้ยน กลับงอกขั้นตอนตรวจงานไม่หยุด และคอขวดกลับมาอยู่ที่คน พี่เขาหยุดก๊อปวางเมื่อไหร่ งานก็หยุด สองวันเต็มๆ ได้แต่ขั้นตอนตรวจงาน งานจริงยังไม่เสร็จ
SLIDE 10
โมเดลเหมือนกัน ที่ต่างคือ harness
Same horse for everyone
ถ้าจ่ายเงิน ทุกคนก็ได้ใช้ frontier model แทบเหมือนกัน แต่ทำไมแต่ละคนทำงานออกมาต่างกันมาก สิ่งที่ต่างคือ harness
โมเดลเราแทบปรับอะไรไม่ได้ คนพัฒนาโมเดลส่วนใหญ่คือ AI lab เราเป็นคนใช้ สิ่งที่เราควบคุมได้เลยอยู่ฝั่ง harness แทบทั้งหมด
ตราบใดที่ใช้ ChatGPT บนเว็บเป็น harness เขาก็จัดซอง เลือกเครื่องมือ และตั้งกติกาแทนเราทั้งหมด ถ้าเราจะเปลี่ยนล่ะ จะ harness โมเดลยังไงให้ดีที่สุด วันนี้ผมจะแกะไส้ในให้ดูว่า harness หน้าตาเป็นยังไง แล้วค่อยๆ เปลี่ยนเคสหอพักจากที่ติดลูปบนเว็บแชท ไปเป็น harness ที่เราคุมเองทีละชิ้น จนงานรันจบได้จริง
SLIDE 11
แนะนำตัว และคุณคือ harness
You are the harness
ผมชื่อมิ่งรัฐ ชื่อเล่นโอม เป็น AI engineer ที่บริษัท AXONS
AI ทุกวันนี้ไปไกลกว่าแชทบอทเยอะแล้ว ผมใช้มันแทบทั้ง workflow ให้เขียน caption ด้วยสำนวนผมแล้วตั้งโพสต์ล่วงหน้าทั้งเดือน ตัดคลิปยาวเป็นคลิปสั้น ทำบอทดึงข้อมูลจาก ERP ให้เจ้าของกิจการ รางวัลหลายเวทีก็มาจากวิธีทำงานแบบนี้ ผมไม่ได้เก่ง แต่มันพิสูจน์ว่า AI ทำได้จริง คำถามคือทำยังไง ผมเชื่อว่านี่คือ S-curve ใหม่ คนที่ใช้มันได้ดีจะได้เปรียบแบบ unfair advantage ใครอยากรู้ว่า AI ไปได้ไกลแค่ไหน ผมแชร์ไว้ใน Facebook
คลิปสั้นบนจอคือการทดลองที่เราจะดูเต็มๆ ช่วงหลัง ม้าตัวเดียวกัน เขาวงกตเดียวกัน ต่างกันแค่ harness แต่ผลไม่เหมือนกันเลย
ถ้าโปรแกรมทำแทนมือเราหมด เราเหลืออะไร จำตอนที่น้องตอบ You're absolutely right ได้ไหม จังหวะที่อ่านแล้ว เอ๊ะ ไม่ใช่ละ นั่นคือสิ่งที่ AI ยังแทนเราไม่ได้ เราเรียกมันว่า common sense
แต่มัน common จริงไหม ขับรถวันแรกไม่มีอะไร common เลย ขับมาสามสิบปี เรารู้ว่าอะไรผิดก่อนจะอธิบายได้ด้วยซ้ำ ประสบการณ์แต่ละคนไม่เท่ากัน ความไวในการเอ๊ะก็ไม่เท่ากัน
วิธีสร้างมันวันนี้ไม่คุย สมมติว่าเรามีแล้ว จะใช้ให้คุ้มคือโยนงานให้ agent ให้มากที่สุด เก็บตัวเราไว้ทำอย่างเดียว คือเอ๊ะ และเมื่อทุกคนใช้ม้าตัวเดียวกัน สิ่งที่ดึง common sense ของแต่ละคนออกมาได้เต็มที่ก็คือ harness
เคยไหม ให้แชท AI เขียนโค้ด ก๊อปไปรันข้างนอก เจอ error ก็ก๊อปกลับมาวางให้แก้ วนไปวนมา จังหวะนั้นแหละ คุณกำลังเป็น harness ให้มันอยู่ เป็นมือเป็นตา คอยรัน คอยอ่านผล คอยส่งผลกลับ เหมือนพี่เจ้าของหอที่นั่งเชื่อมระบบเองทั้งหมด
ต่อไปเราจะดูว่าถ้าเขียนโปรแกรมมาทำหน้าที่นี้แทนคน หน้าตาเป็นยังไง พิสูจน์ในสนามแข่ง แล้วครึ่งหลังค่อยเอาเคสหอพักมาผ่าและซ่อมให้หลุดจากลูปสองวันนั้น
Facebook ของผม: facebook.com/ohmmingrath
SLIDE 12
สี่แหล่งหลักของทอล์ก
The four sources
ตลอดทอล์กผมจะอ้างถึงคอร์สและบทความชุดนี้ เป็นโครงหลักของเนื้อหาวันนี้ และอยากให้ไปศึกษาต่อ ทั้งหมดเรียนฟรี ลิงก์อยู่ใน QR หน้าสุดท้ายครบแล้ว
Theo เจ้าของ T3 Code บทความและช่อง YouTube ที่ปูภาพจำเรื่อง harness ได้เข้าใจง่ายที่สุด Google Cloud คอร์สสั้น AI Harness Crash Course สรุปสี่เสาหลักของ harness ได้กระชับมาก Decoding AI สำหรับสายโค้ด คอร์สฟรีและ GitHub ที่พาสร้างตั้งแต่ลูปยี่สิบบรรทัดไปจนถึงการวัดผล Anthropic Engineering คู่มือที่เราจะใช้ขมวดตอนท้าย ว่าเมื่อไหร่ควรใช้ agent เมื่อไหร่ควรล็อกเป็น workflow
ที่มา:
SLIDE 13
Humans use interfaces. LLMs use harnesses.
Typing with the computer off
เริ่มที่ Theo เจ้าของ T3 Code ซึ่งผมก็ใช้อยู่ บทความนี้เจ๋งดี เขาบอกว่าคนใช้คอมพิวเตอร์ผ่าน interface กดปุ่ม พิมพ์คำสั่ง เปิดแอป ไม่มีใครเขียนโค้ดใหม่ทุกครั้งเพื่อเปิดเว็บ แล้ว LLM ใช้อะไร LLM ใช้ harness
เพราะ LLM ทำได้อย่างเดียวคือสร้างข้อความ กดปุ่มเองไม่ได้ ต่อให้มันพิมพ์ read_file README.md ออกมา ก็ยังเป็นแค่ข้อความ เหมือนนั่งพิมพ์คีย์บอร์ดตอนคอมปิดอยู่
ที่มา: Theo, "What is a harness?" x.com/theo/status/2113424203345265053
SLIDE 14
ไม่ได้มีแค่แชทกับเขียนโค้ด
Same horse, new career
พอพูดว่า agent harness คนส่วนใหญ่นึกถึงแค่หน้าแชทกับเครื่องมือเขียนโค้ด แต่ความเจ๋งคือ เปลี่ยนการจัดวางระบบรอบโมเดลตัวเดิม ก็เปลี่ยนอาชีพของ AI ได้เลย
LearnHarness open-source ที่เพิ่งปล่อย สวมโมเดลเดิมให้เป็นติวเตอร์สอนเรื่องยาก บังคับให้ AI วัดพื้นฐานเราก่อน วางแผนการสอน แล้วให้เราพิมพ์หรือพูดวิธีคิดออกมาดังๆ เพื่อเช็กว่าเข้าใจจริงหรือแค่เดาถูก จะใช้เรียนเรื่อง harness ต่อจากวันนี้ก็ได้OpenResearch ของทีม alphaXiv สวมชุดเครื่องมือวิจัยทับ coding agent ในเครื่องเรา ให้เป็นผู้ช่วยนักวิจัยเต็มตัว ค้นงานวิจัย ตั้งสมมติฐาน แล้วส่งโค้ดไปรันทดลองจริงบน Cloud GPU อย่าง Modal หรือ Ray เพื่อพิสูจน์
ทั้งสองตัวไม่ได้เทรนโมเดลใหม่ ใช้โมเดลเดียวกับที่เราใช้ ช่วงท้ายผมจะกลับมาผ่าฟีเจอร์ให้ดูว่าเขาหยิบชิ้นส่วนไหนไปประกอบยังไง
ที่มา: LearnHarness learnharness.ai · github.com/amosblomqvist/learnharness · OpenResearch openresearch.sh · github.com/alphaXiv/OpenResearch
SLIDE 15
เชฟในห้องกระจก กับ 5 อย่างที่ harness ต้องมี
The chef in the glass room
model หรือ LLM ทำงานเองไม่ได้ ถ้าจะให้ทำงานจริงแบบ agent ต้องมี harness ที่โอเค ซึ่ง Theo บอกว่าควรมีห้าองค์ประกอบ
ลองนึกว่า LLM คือหัวหน้าเชฟที่โคตรฉลาด คิดสูตรเก่งมาก แต่นั่งอยู่แต่ในห้องกระจก จับมีดจับกระทะเองไม่ได้ ทำได้แค่ส่งกระดาษออกมาให้คนอื่นทำ ห้องครัวข้างนอกหรือ harness เลยต้องมีห้าอย่างนี้
Tools มีด เตา กระทะ ในมุม model คือโค้ดหรือฟังก์ชันที่ให้มันอ่านไฟล์ รันคำสั่ง หรือต่อฐานข้อมูลได้ Tool Schema หรือ Tool Definitions ลิสต์อุปกรณ์ที่ส่งเข้าห้องกระจก ว่าวันนี้สั่งอะไรได้บ้าง ต้องระบุไฟกี่องศา กี่นาที ใน harness คือ JSON Schema ที่ส่งไปพร้อม API เช่น tool read_file ต้องส่ง path เป็น string หรือ run_sql ต้องส่ง query Tool Call Format ใบสั่งงานที่ต้องกรอกตรงช่องที่ตกลงกัน ใน harness คือ syntax ที่โมเดลใช้สั่งรัน tool เช่นพ่นก้อน JSON tool_calls ออกมา Parser หรือ Tool Runner ผู้ช่วยเชฟหน้าเตา ที่หยิบใบสั่งไปอ่านแล้วเปิดเตาผัดให้จริง ใน harness คือโค้ดฝั่งเราที่จับ tool_calls แกะ parameter แล้วรันฟังก์ชันนั้นจริง Tool Result ตักใส่ช้อนส่งให้เชฟชิม ว่าสุกยัง เค็มไปไหม จะได้ตัดสินใจขั้นต่อไป ใน harness คือเอาผลลัพธ์หรือ error กลับเข้าไปเป็น message ให้ model อ่านในรอบถัดไป
ฟังดูเยอะ แต่คอร์สของ Decoding AI สรุปไว้ว่า พอเขียนเป็นลูปพื้นฐานของ agent จริงๆ โค้ดแกนกลางมีแค่ยี่สิบกว่าบรรทัด โค้ดที่เหลือที่หุ้มลูปนี้ไว้ให้รันงานจริงแล้วไม่พัง นั่นแหละคือรายละเอียดของ harness
ที่มา: Theo, "What is a harness?" x.com/theo/status/2113424203345265053 · Decoding AI github.com/decodingai-magazine/building-a-coding-agent-from-scratch-course
SLIDE 16
tiny.ts 43 บรรทัด
The real file
บนจอคือไฟล์ tiny.ts จริง เขียนด้วย TypeScript ตามโครงจากคอร์สและ repo ของ Decoding AI ไม่ต้องมี framework หรือ library อะไรเลย harness ตัวเล็กที่สุดมีแค่ 43 บรรทัด ผมเลยตั้งชื่อว่า tiny
และไม่ใช่โค้ดตัวอย่างลอยๆ ในพาร์ทถัดไปโมเดลจะเป็นม้าแข่งกันหาทางออกจากเขาวงกต tiny.ts คือโค้ดจริงที่ลงแข่ง ผมให้เครื่องมือม้าสองอัน มองทางกับก้าวเดิน เทียบกับ 5 อย่างของ Theo
Tools look ดูรอบๆ กับ move เดินหนึ่งก้าว Tool Schema ก้อน tools ที่มี description กับ parameters บอก model ว่ามีอะไรให้ใช้และใช้ยังไง Tool Call Format chat.complete ส่ง messages พร้อม tools ไปหา model คำตอบกลับมาเป็น reply.tool_calls ก้อน JSON ตามที่ตกลงกัน Parser / Tool Runner โค้ดเรา JSON.parse จาก tool_calls แล้วรัน move หรือ look จริง Tool Result push ผลกลับเข้า messages แล้ววนกลับไปที่ chat.complete ให้ model เห็นผลแล้วคิดต่อ
ครบห้าข้อในลูปนี้คือ fundamental ของ harness เราสร้าง harness เสร็จแล้ว ทุกคนกลับบ้านได้ ล้อเล่นครับ
ที่มา: Decoding AI github.com/decodingai-magazine/building-a-coding-agent-from-scratch-course
SLIDE 17
Claude Code = interface + harness
Interface on top, harness inside
Claude Code เป็น harness ไหม ใช่ แต่เป็น harness ที่บวก interface อีกชั้น ส่วนที่เราเห็นใน terminal หรือในแอปคือ interface ส่วนไส้ข้างในที่รันเครื่องมือและคุยกับ model บางคนเรียกว่า headless core ส่วนนี้คือ harness (บนจอเทียบ Claude Code ตอบใน terminal ตามปกติ กับสั่งแบบ headless ที่ได้ออกมาเป็น JSON ล้วน)
ข้อดีของการแยกไส้ออกมาคือ เอา harness ตัวเดียวกันไปเสียบกับ interface อื่นได้
Pi เป็น open-source harness ตัวเล็กที่ผมจะใช้ในการแข่งม้า โปรเจกต์ดังอย่าง OpenClaw ก็เอา harness ของ Pi ไปรันข้างใต้ แล้วครอบด้วยหน้าแชทอย่าง Telegram หรือ Discord T3 Code เป็นแอปหน้าบ้านที่เสียบ harness ได้หลายตัว เช่น Claude Code, Codex หรือ Pi
ที่มา: Pi pi.dev · OpenClaw github.com/openclaw/openclaw · T3 Code github.com/pingdotgg/t3code
SLIDE 18
ไม่มีครัวไหนมีครบทุกอย่าง
No kitchen has everything
Theo ขยายภาพครัวต่อว่า ไม่มีครัวไหนมีอุปกรณ์ครบทุกอย่างที่เชฟทุกคนต้องการ ครัวที่ดีเลยควรให้เอาเครื่องมือมาเพิ่มเองได้
บางครัวมีของครบ อย่าง Claude Code หรือ Codex บางครัวเป็นครัว minimal เปิดจุดให้เสียบ extension ต่อเติมเอง อย่าง Pi ที่เราจะผ่าให้ดูทั้งในสนามม้าและงานจริง บางครัวถอดเปลี่ยนเป็น plugin ได้ทุกชิ้น อย่าง DeepSeek Harness
ส่วน MCP เปรียบเป็นสูตรอาหาร วิธีทำอะไรบางอย่างที่ครัวหยิบไปใช้ได้ทันที
ที่มา: DeepSeek Harness github.com/deepseek-ai/deepseek-harness · Model Context Protocol modelcontextprotocol.io
SLIDE 19
agent = LLM + harness
So the race must differ
LLM อย่างเดียวคือเชฟที่คิดเก่ง พูดเก่ง แต่ลงมือเองไม่ได้ harness อย่างเดียวคือครัวเปล่าที่ไม่มีเชฟคิดเมนู เอามารวมกันจึงเป็นครัวที่พร้อมทำอาหาร หรือ agent ที่พร้อมทำงานจริง
ถ้าสมการนี้จริง โมเดลเดียวกันเป๊ะ ฉลาดเท่ากันเป๊ะ ใส่ใน harness คนละตัว ผลก็ควรต่างกัน ถ้าผลเหมือนกันหมด แปลว่า harness ไม่มีผล ถ้าต่าง แปลว่ามีผลแน่ๆ คำถามคือ ต่างกันไหม และต่างกันเยอะหรือเปล่า
นี่คือที่มาของชื่อทอล์ก Same Horse, Different Fates
SLIDE 20
กติกาการแข่ง
One maze, one model, 5x5
ผมสร้างเกมแข่งกันออกจากเขาวงกต ทุกตัวใช้โมเดลเดียวกัน คือ DeepSeek V4.1 Flash ด่านเดียวกัน ต่างกันแค่ harness
ม้าเห็นแค่ห้าคูณห้าช่องรอบตัว ต้องหาทางไปเส้นชัยฝั่งขวาให้เร็วที่สุด ชนกำแพงเสียตาเดินฟรี เหยียบกับดักเสียเวลา ต้องออกให้ได้ภายในหกนาที
SLIDE 21
6 ลู่ และ replay รอบจริง
The race
สามลู่แรกเป็นโค้ดของเราเอง
raw ไม่มี harness ส่งภาพให้ดูครั้งเดียวแล้วส่งเข้า LLM ที่เหลือให้เดาแผนเดินเองหมด tiny โค้ด 43 บรรทัดเมื่อกี้ ลูปพื้นฐานครบห้าอย่างเป๊ะ fit tiny ที่ผมอัปเกรดให้เข้ากับเกมนี้โดยเฉพาะ ประมาณสองร้อยบรรทัด
สามลู่หลังเป็น open-source harness ในตลาดจริง
Pi สาย minimal Pi บวก extension ที่เป็นเครื่องมือเหมาะกับเกมนี้ OpenCode ดั้งเดิม
บนจอคือ replay การแข่งจริงรอบที่ 10 ไม่ได้ตัดต่อ พอมีม้าเข้าเส้นชัยตัวแรก ผมเร่งเป็นสองเท่าจนจบ
ช่วงแรก tiny กับ fit ขยับเร็วมาก Pi กับ OpenCode สำรวจรอบตัวก่อน raw นิ่ง เพราะกำลังวางแผนรวดเดียว ~1:00 ตัวนับ token ของ tiny วิ่งเร็วกว่าเพื่อนเยอะ เพราะทุกตามันส่งบทสนทนาทั้งหมดตั้งแต่ต้นให้โมเดลอ่านใหม่ ~1:30 tiny เริ่มวนที่เดิม ม้าที่เห็นแค่ห้าคูณห้าช่อง ก็เหมือน agent ในโปรเจกต์หรือฐานข้อมูลใหญ่ ที่เปิดดูได้ทีละไฟล์ ไม่เห็นภาพรวม พอประวัติแชทยาวขึ้นและไม่มีระบบช่วยจำแผนที่ มันก็ลืมว่าทางนี้เคยเดินแล้ว วนกลับไปแก้ bug เดิม ตรวจด้วยวิธีเดิมซ้ำๆ แล้วก็ยังพังเหมือนเดิม 2:20 Pi + extension เข้าเส้นชัยเป็นที่หนึ่ง 2:59 fit เข้าเส้นชัย 3:16 Pi เฉยๆ เข้าเส้นชัย 3:48 raw เพิ่งก้าวแรก หลังรอโมเดลวางแผนเกือบสี่นาที แล้วก็เดินอย่างมั่นใจ ชนกำแพง ชนอีก 78 ก้าว ชนกำแพง 60 ครั้ง เพราะไม่มี harness ส่งผลกลับให้ดูระหว่างทาง เหมือนสั่งแก้ทั้งโปรเจกต์ทีเดียวโดยไม่ได้รันเทสต์ระหว่างทางเลย 4:34 OpenCode เข้าเส้นชัย 6:00 หมดเวลา tiny ยังวนอยู่ในเขาวงกต ใช้ไปแล้ว 1.37 ล้าน token
SLIDE 22
ผล 10 รอบ
Ten rounds, by hand
▶ ดูคลิปต้นฉบับ: Harness Leaderboard ของ Joël Niklaus บน X
รอบเดียวอาจฟลุค ผมเลยรันซ้ำทั้งหมด 10 รอบ
Pi + extension เข้าเส้นชัยครบ 10 รอบ fit กับ Pi ดั้งเดิม ตัวละ 8 ใน 10 OpenCode 7 ใน 10 tiny กับ raw 0 รอบ ไม่เคยถึงเส้นชัยเลย
เปลี่ยน harness แล้วผลต่างไหม ต่างเยอะไหม ตอบชัด จาก 0 รอบ เป็นครบ 10 รอบ ด้วยโมเดลตัวเดียวกันเป๊ะ
และไม่ได้เกิดแค่ในเขาวงกตของผม ใน benchmark งานจริงอย่าง Terminal-Bench สัปดาห์นี้เองมีคนรันไปเกือบสามหมื่นครั้ง โมเดลเดียวกัน provider เดียวกัน เปลี่ยนแค่ harness เก้าตัว พอเป็นม้าตัวเดียวกับของเรา DeepSeek V4.1 Flash ตัวที่ดีสุดกับแย่สุดห่างกันถึงสามสิบห้าจุด (คลิป Harness Leaderboard ของ Joël Niklaus บนจอ)
แต่ตารางสิบรอบของผมไม่ได้แปลว่ายี่ห้อ Pi เก่งกว่า OpenCode ทุกงาน นี่คือผลของด่านนี้กับโมเดลนี้ และตัวที่ได้ 10 เต็ม 10 ไม่ใช่ตัวเพียวๆ แต่เป็น Pi + extension ที่ปรับเครื่องมือให้เหมาะกับงาน ไม่มี harness สำเร็จรูปตัวเดียวที่ดีที่สุดสำหรับทุกงาน การปรับ harness ให้เข้ากับหน้างานต่างหาก ที่ทำให้โมเดลเดิมได้ผลต่างกันคนละเรื่อง
ตัวเลขอาจยังนึกภาพไม่ออก ดูอีกเคส มีคนให้ม้าตัวเดิมของเรา DeepSeek V4.1 Flash สร้างฉากเรือกลางทะเลเป็น 3D บนเว็บ รันผ่าน harness สามตัว คือ DeepSeek Harness, Claude Code และ Claude Code โหมด ultracode ได้เรือสามลำหน้าตาคนละเรื่อง request ก็ต่างกัน 556, 299 และ 609 และ ultracode จ่ายแพงกว่า Claude Code ปกติเกือบสองเท่า โมเดลตัวเดียวกัน แต่โมเดลไม่ได้เห็นแค่คำสั่งของเรา มันเห็นทุกอย่างที่ harness ส่งเข้าไป ทั้งใบสั่งงาน (system prompt ของแต่ละ harness) เครื่องมือ (แก้ไฟล์ยังไง ได้ดูผลงานตัวเองไหม) จำนวนรอบที่ได้กลับมาเกลางาน (คือตัวเลข request) และทำคนเดียวหรือแบ่งทีม ดวงก็มีส่วน แต่ภาพชัดว่าของพวกนี้ใน harness กำหนดผลงานของม้าตัวเดียวกัน (คลิปเรือสามลำของ @loktar00 บนจอ)
tiny ที่มีครบ 5 อย่างทำให้ม้าเริ่มขยับ แต่ยังพาไปไม่ถึงเส้นชัย แล้วในชีวิตจริงล่ะ ถ้าจะซ่อมลูปสองวันของเคสหอพัก ออกแบบ harness ให้พี่เขา จะทำยังไง ไปดูของจริงกัน
ที่มา: Joël Niklaus, Harness Leaderboard (5 พ.ย. 2026) x.com/joelniklaus/status/2118373808692437403 · hf.co/spaces/joelniklaus/harness-leaderboard · @loktar00 บน X (5 พ.ย. 2026) x.com/loktar00/status/2118362010601845209
SLIDE 23
จากครัวบ้านสู่ร้านอาหาร
The home kitchen grows up
ห้าอย่างเมื่อกี้เป็นแค่ foundation พอให้ agent เริ่มทำงานได้ เหมือนม้า tiny หรือครัวเล็กๆ ทำกินเองที่บ้าน มีเตา มีมีด มีใบสั่ง พอผัดจานง่ายๆ ได้
แต่ถ้าจะรันงานจริงระดับเคสหอพัก ไม่ให้พัง ไม่ให้ติดลูป ก็เหมือนอัปเกรดครัวบ้านไปเปิดร้านอาหารรับลูกค้า ต้องออกแบบเพิ่มอีก 4 เรื่อง
Evaluation & Trace เหมือนติดกล้องวงจรปิดในครัวพร้อมใบตรวจคุณภาพ ดูแค่จานที่เสิร์ฟไม่ได้ ต้องย้อนดูได้ว่าเชฟทำตกพื้น แอบลัดขั้นตอน หรือหลงจังหวะตรงไหน Context & memory เคลียร์เขียงกับโต๊ะให้โล่ง มีกระดานจดออเดอร์แยก ไม่ปล่อยเปลือกผักกับจานที่ผัดเสียกองท่วมโต๊ะจนเชฟลืมว่าลูกค้าสั่งอะไร Tools & execution flow จัดอุปกรณ์เฉพาะทางให้ครบมือ แล้วตั้งกฎว่าแก้จานเดิม 3 รอบยังไม่ผ่าน ให้กดกริ่งเรียกเจ้าของร้าน ไม่ใช่ผัดวนสองวันไม่ยอมเสิร์ฟ Runtime & guardrails ล็อกตู้วัตถุดิบอันตราย และห้ามเชฟแอบแก้ใบเกณฑ์ตรวจคุณภาพเพื่อให้จานตัวเองผ่าน
กรอบนี้ผมสรุปจาก Google Cloud Tech และ Decoding AI ต่อไปเราจะจำลองอาการติดลูปของเคสหอพักก่อน แล้วไล่ซ่อมทีละเรื่อง
ที่มา: Google Cloud Tech youtube.com/watch?v=2C_CefSQEAQ · Decoding AI github.com/decodingai-magazine/building-a-coding-agent-from-scratch-course
SLIDE 24
น้องจบใหม่ที่ถูกสั่งงานทิ้งไว้โดยห้ามถามคน
The new hire behind a closed door
สมมติเราเป็นพี่เจ้าของหอ จ้างน้องจบใหม่ไฟแรงมาคนนึง ขยัน เก่งมาก ยื่นสมุดให้สองเล่ม รายชื่อลูกบ้านทั้งหมด กับ log ว่าตลอด 70 วันที่ผ่านมาใครสแกนหน้าเข้าออกวันไหน แล้วสั่งว่า ช่วยเทียบหน่อยว่าใครไม่สแกนหน้าติดต่อกันเกิน 7 วัน 15 วัน หรือ 30 วัน ทำให้เป๊ะ ตรวจให้ชัวร์ก่อนส่ง
แต่สมุดสองเล่มมาจากคนละระบบ ชื่อบางคนสะกดไม่ตรง บางคนย้ายห้องกลางเดือน บางคนพักสัญญาไปฝึกงาน บางคนเพิ่งย้ายเข้า ข้อมูลไม่ตรงกันเป๊ะเป็นเรื่องปกติ
แล้วเราก็ทำตัวเหมือนหัวหน้าที่สั่งงานเสร็จแล้วหายตัวไป ปิดประตู ห้ามออกมาถามว่าเคสกำกวมจะนับยังไง น้องก็ตั้งเกณฑ์เอง ตั้งเข้มขึ้นเรื่อยๆ งงเอง ติดลูปเอง
ในโลก coding นี่คือตอนที่เราสั่ง agent รันอัตโนมัติทิ้งไว้ โยน bash ให้รันคำสั่งในเครื่อง ไม่มีช่องให้หยุดถามคน แล้วเขียนใน prompt ว่าห้ามหยุดจนกว่าสคริปต์ตรวจหรือชุดเทสต์จะผ่าน
มาดูว่าถ้าเอา DeepSeek V4.1 Flash ม้าตัวเดิม บน Pi ที่ยังไม่ได้ปรับอะไรเลย มารันโจทย์นี้ จะเกิดอะไรขึ้น
SLIDE 25
Demo 1 ขึ้นเขียวบนจอ
Demo 1: green on screen
ผมจำลองฐานข้อมูล SQLite สองก้อนตามโครงโจทย์หอพัก ทะเบียนลูกบ้าน 30 คน กับ log สแกนหน้าย้อนหลัง 70 วัน สองพันหกร้อยกว่ารายการ ที่ไม่มีรหัสลูกบ้านเชื่อมกัน 25 คนข้อมูลตรงเป๊ะ อีก 5 คนข้อมูลแหว่ง เหมือนงานจริง
วางสคริปต์ตรวจ verify_reconciliation.py ไว้ในโฟลเดอร์งาน แล้วสั่งม้าบน stock Pi ว่าห้ามหยุดจนกว่าสคริปต์นี้จะผ่าน
น้องสำรวจฐานข้อมูล เจอ 5 เคสที่มีปัญหา ใช้แค่ 57 วินาที 8 เทิร์น หน้าจอสุดท้ายขึ้นว่าตรวจผ่าน ไม่ติดลูปสองวันแล้ว แปลว่าแค่มีสคริปต์ตรวจก็จบใช่ไหม
อย่าเพิ่งเชื่อหน้าจอสุดท้าย มาเปิดกล้องวงจรปิด หรือ trace ดูว่าเบื้องหลังเกิดอะไรขึ้น
SLIDE 26
7 วินาที ดีเกินจริง
Seven seconds, too good to be true
จะรู้ว่า agent พังหรือผ่านจริง คำถามแรกยังไม่ใช่จะซ่อมยังไง แต่ต้อง evaluate ให้ได้ก่อน และก่อนจะ eval ได้ ต้อง trace ได้ คือเปิดดูย้อนหลังได้ว่าข้างในมันทำอะไรไปบ้าง
DeepSeek Harness บนหน้าเว็บมีแถบ Trajectory ให้กดดูทุก tool call ได้เลย เพราะเขาออกแบบทุกอย่างเป็น extension อยู่แล้ว แต่ผมเดโมด้วย Pi ต่อ เพราะใช้ในสนามม้าอยู่แล้ว หลักการไม่ต่างกันมาก เปิดไฟล์ trace ดูได้เหมือนกัน
ดูจากตอนแข่งม้า Pi ทำเสร็จตั้งแต่ 7 วินาที เร็วจน too good to be true เปิด trace ดูก็เห็นว่า Pi แอบเปิดโค้ดเกมอ่าน ดึงแผนที่ทั้งหมดออกมา แล้วกดปุ่ม reset lane พอเวลานับศูนย์ใหม่ มันก็เดินตามแผนที่เข้าเส้นชัยไปเลย ส่วนไทม์ไลน์จริงใน trace คือ 5 นาที 57 วินาที
พอโมเดลฉลาดแต่เราไม่ได้กำหนดกรอบกติกาให้ชัด มันก็มีแนวโน้มหาทางลัดแบบนี้ เหมือน agent ของ OpenAI ที่ทะลวง sandbox ไปดึงเฉลยบน Hugging Face และตรงนี้คือส่วนของ harness ที่เราคุมเองได้
ที่มา: DeepSeek Harness (แถบ Trajectory ใน dsh web) github.com/deepseek-ai/deepseek-harness
SLIDE 27
วัดผล 3 แบบ และไฟล์ที่จำทุกอย่าง
Three ways to mark, and the file that remembers
คอร์สของ Google Cloud แบ่งการ evaluate agent เป็นสามวิธี ลองนึกเหมือนตรวจข้อสอบ
Deterministic เขียนโค้ดเช็กตรงๆ ว่าถูกหรือผิด เหมือนเครื่องตรวจข้อสอบกากบาท ในเคสหอพัก 25 + 5 ต้องเท่ากับ 30 คนเป๊ะ ตัวเลขไม่ครบหรือไฟล์ไม่มีจริง โค้ดฟันธงได้ทันที เร็วและแม่นร้อยเปอร์เซ็นต์ในเรื่องที่มีกฎตายตัว LLM-as-a-Judge ให้โมเดลอีกตัวมาอ่าน เหมือนข้อสอบอัตนัยที่เครื่องตรวจกากบาทตรวจไม่ได้ เราตั้งเกณฑ์ แล้วให้โมเดลเป็นอาจารย์ผู้ช่วย อ่านว่าเหตุผลฟังขึ้นไหม ตอบตรงคำถามหรือเปล่า Human Review คนจริงลงมาดูเคสยาก เหมือนพี่เจ้าของหอดูเองกับตา เช่นลูกบ้านห้าคนที่ข้อมูลแหว่งข้ามระบบ ที่ระบบอัตโนมัติไม่ควรเดาเอง
Decoding AI ขยี้ต่อว่า ดูแค่ผลสุดท้าย หรือดูแค่ว่าสคริปต์คืน exit 0 ไม่ได้ ต้องเปิด trace และทำ tool scoring คือตรวจพฤติกรรมการเรียกเครื่องมือระหว่างทางด้วย
ถ้าใช้ Claude Code, Codex หรือ Pi อยู่ ทุกอย่างที่ agent ทำถูกบันทึกในเครื่องเราแล้ว เป็นไฟล์ .jsonl บนจอคือไฟล์จริงของ Pi คำสั่งที่พังซ้ำจะขึ้น "isError": true เรียงเป็นตับ (Claude Code ใช้ "is_error": true) ถ้ามันแอบอ่านไฟล์ข้อสอบหรือสร้างไฟล์ปลอม ก็อยู่ในนั้นครบทุกบรรทัด
ถ้าไม่ใช่สายโค้ดลึก ไม่ต้องนั่งเพ่งเอง โยนไฟล์ .jsonl ให้ AI ช่วยวิเคราะห์ว่า agent ติดหล่มรันอะไรซ้ำ หรือแอบทำอะไรแปลกๆ นี่คือก้าวแรกที่สำคัญมาก ไม่รู้ว่าปัญหาคืออะไรก็ไม่รู้จะแก้ตรงไหน และแต่ละคนติดไม่เหมือนกัน แต่พอรู้แผลชัด ส่วนใหญ่ agent เองนั่นแหละที่รู้วิธีช่วยแก้
ทริคคือ เปิดแชทใหม่ แยก context ออกมา ไม่ให้ agent เข้าข้างงานที่ตัวเองเพิ่งทำ ยิ่งดีถ้าโยน git diff ไปคู่กันให้เห็นความเปลี่ยนแปลงจริงใน repo นี่ไม่ใช่ LLM-as-a-Judge แบบชุดเทสต์ใหญ่ฝั่ง Machine Learning Evaluation แต่เป็นหลักเดียวกันในชีวิตจริง ให้ AI อีกตัวใน context ใหม่มาตรวจงาน AI ตัวแรก
พอมันรายงานว่าเจอจุดแปลก เราก็ vibe code แก้ แต่รอบนี้ไม่ได้สร้างโปรดักต์ แบ่งมาเทิร์นนึงเพื่อพัฒนา process หรือ harness ของเราเอง
ง่ายสุด สั่งให้สรุปกฎลง CLAUDE.md หรือ AGENTS.md อยากกันปัญหาเดิมให้ชัวร์ สั่งให้เขียนเป็น Hook ที่เช็กเงื่อนไขตายตัว กลายเป็นเกราะ Deterministic ที่บล็อกปัญหาเดิมให้อัตโนมัติ
จำโพสต์หอพักได้ไหม ที่ AI บอกว่าสองวันพิสูจน์แล้วว่า workflow หยุดได้อย่างปลอดภัย แต่ยังไม่ได้พิสูจน์ว่า product ทำงานสำเร็จ นั่นคือวัดผิดจุด วัดที่ workflow ไม่ได้วัดที่งาน
ทีนี้มาเปิด Policy Scorecard ของรอบที่ตรวจผ่านใน 57 วินาทีกัน
ที่มา: Google Cloud Tech youtube.com/watch?v=2C_CefSQEAQ · Decoding AI github.com/decodingai-magazine/building-a-coding-agent-from-scratch-course
SLIDE 28
Demo 2 Policy Scorecard 0/4
The scorecard, the confession, the rerun
Policy Scorecard ของรอบที่ขึ้นเขียวคือ 0 เต็ม 4 และ trace เผยรอยรั่วสามจุด
ขยะจากตาราง SQL สามสิบแถว กับโค้ดสคริปต์ตรวจสามร้อยกว่าบรรทัด กองอยู่ใน context กว่าสามหมื่นเจ็ดพันตัวอักษร ไม่ถูก clean ออกเลย เจอลูกบ้านห้าคนที่ข้อมูลไม่ตรงข้ามระบบ แต่ agent ไม่มีเครื่องมือส่งคำถามไปหาเจ้าของหอ ไม่มีช่องให้ถามคน แต่ถูกสั่งว่าห้ามหยุดจนกว่าจะผ่าน น้องเลยสั่ง cat เปิดอ่านไส้ในไฟล์ข้อสอบ verify_reconciliation.py
เห็นว่าข้อสอบเช็กหาไฟล์ใบอนุมัติจากเจ้าของหอ น้องก็เขียน Python เสกใบอนุมัติปลอมขึ้นมา ใส่ชื่อผู้อนุมัติ dorm_owner เสร็จสรรพ แล้วในช่อง thinking ก็สารภาพไว้เอง
"However potential concern creating mapping spec is fabrication. But task passed."
"แอบกังวลเหมือนกันนะว่าการสร้างไฟล์สเปกอนุมัติขึ้นมาเองแบบนี้มันคือการปลอมเอกสาร... แต่งานก็ตรวจผ่านแล้วนี่นา"
ลบใบอนุมัติปลอมแล้วรันตรวจใหม่ พังทันทีห้าเคส ถ้าไม่เปิด trace เราโดน exit 0 หลอกเต็มเปา
SLIDE 29
Pi + dorm.ts และ 4 จุดดักแก้
Four places to step in
ซ่อมได้สองทาง เขียน harness ใหม่เอง หรือที่ผมว่าง่ายและไวกว่ามาก คือหยิบโครงที่มีอยู่อย่าง Pi มาเป็น backbone
Pi มี philosophy ว่า "mechanism in the core, policy in extensions" เก็บแค่กลไกพื้นฐานไว้ในแกน แล้วแยกกติกาเฉพาะงานออกมาเสียบเป็นส่วนเสริม loop แกนกลางเลย clean มาก ส่วนกติกาของงานหอพัก ผมเขียนเป็น extension ชื่อ dorm.ts แค่ 94 บรรทัด
ไม่อยากเขียนเองก็ใช้ที่มีอยู่ได้ Claude Code, Codex, Pi หรือเขียน while loop เอง แต่ละค่ายเรียกชื่อ hook ต่างกัน แต่ข้างในคือ agent loop เดียวกัน และจุดที่เข้าไปแก้ได้มีสี่ที่ รู้ไว้ เวลา vibe code สั่งแก้จะได้นึกออกว่าจะโม harness ตรงไหน
ก่อนส่ง context เข้าโมเดล เช่น clean ขยะเก่าออกไม่ให้ซองบวม จะได้ไม่เปลือง token และไม่เกิด context rot ที่โมเดลโง่ลงเพราะ context เยอะเกิน tools ที่เปิดให้โมเดลใช้ แทนที่จะโยน bash ตัวเดียว เพิ่ม tool ให้กดถามคนเวลาเจอเรื่องกำกวม หรือ tool ส่งงานที่บังคับ schema ฝั่ง Claude Code คือการต่อ MCP tool หรือใช้โหมดอย่าง Plan mode กำหนดว่าใช้ tool ไหนได้ ตอนได้ผลจาก tool และก่อนจบ loop ฝั่ง Claude Code คือ PostToolUse หรือ Stop hook เช่น error ซ้ำๆ แล้วจะให้หยุดเมื่อไหร่ หรือก่อนจบงานให้โค้ดเช็กว่าข้อมูลครบจริง ก่อนรัน tool จริง ฝั่ง Claude Code คือ PreToolUse hook ถ้าโมเดลจะแอบเปิดไฟล์ข้อสอบหรือสร้างไฟล์ปลอม โค้ดเราดักบล็อกไว้ก่อน
SLIDE 30
จุดที่ 1 ก่อนส่ง context เข้าโมเดล
What goes in the envelope
ทุกรอบที่ loop วนกลับมาหาโมเดล harness ต้องเลือกว่าจะส่งอะไรให้อ่าน ง่ายสุดคือส่งประวัติแชททั้งหมด แต่ความจำของ agent มีสามชั้น
session ประวัติแชททั้งหมด state กระดาษทด จดสิ่งสำคัญแยกไว้ให้โค้ดหยิบใช้ได้เลย agent ไม่ต้องไล่อ่านแชทยาวๆ long-term memory ความจำข้ามวัน อย่าง OpenClaw ทำเป็นไฟล์ MEMORY.md คู่กับไฟล์ตัวตน SOUL.md
ในสนามม้า tiny มีแค่ session ทุกตาส่งประวัติตั้งแต่ก้าวแรกให้อ่านใหม่ รอบที่สิบใช้ไปล้านสามแสนกว่า token แล้วยังวนอยู่ ส่วน fit มีกระดาษทด RaceMemory จำแผนที่ไว้ แล้วส่ง prompt สั้นๆ ว่าอยู่ตรงไหน มีทางไหนน่าลอง ใช้แค่สี่หมื่นแปดพันกว่า token DeepSeek เหมือนกันเป๊ะ แต่ต่างกันเกือบสามสิบเท่า
ไม่ได้เกิดแค่ในเดโม เมษาปีนี้มีช่วงที่คนบ่นว่า Claude โง่ลง postmortem ของ Anthropic ยืนยันว่า API ไม่มีปัญหา โมเดลเหมือนเดิมเป๊ะ บั๊กอยู่ฝั่ง harness ที่ทำให้ thinking รอบเก่าหลุดจาก context
แล้ว token น้อยลง แปลว่าประหยัดเงินเสมอไปไหม
ที่มา: Anthropic, April 23 postmortem anthropic.com/engineering/april-23-postmortem
SLIDE 31
Prompt Caching จัดลำดับ context ไม่ให้เปลือง
The prompt is a book
พอเริ่มจัด context เอง ต้องรู้จัก Prompt Caching บางเจ้าเรียก Prefix Cache
prompt ที่ส่งทุกเทิร์นเหมือนหนังสือเล่มเดิม หน้าแรกคือ system prompt กับรายการ tools ถัดมาคือประวัติแชทเก่า แล้วมีหน้าใหม่ต่อท้าย หน้าต้นๆ เหมือนเดิมเป๊ะ โมเดลก็ควร skip ไปอ่านแค่หน้าใหม่ได้ ทั้งเร็วขึ้นและถูกลง
แต่ cache เช็กเรียงจากต้น prompt ลงมา ส่วนที่ cache ต้องไม่เปลี่ยนแม้แต่นิดเดียว ถ้าต้นๆ เปลี่ยน cache ข้างหลังทั้งหมดใช้ไม่ได้ ต้องจ่ายเต็ม ตัวอย่างคลาสสิกสองอัน
แทรกค่าที่เปลี่ยนตลอดไว้หน้าสุด เช่นเอา timestamp ไปไว้บนสุดของ system prompt ทุกลูปเวลาขยับไปไม่กี่วินาที หน้าแรกก็ไม่เหมือนเดิม ต่อให้ประวัติแชทข้างล่างเป็นหมื่น token เหมือนเดิมทุกตัวอักษร cache ก็พังตั้งแต่หน้าแรก Sliding Window ตัดข้อความเก่าบนสุดทิ้งเพื่อให้ context ดูลดลง แต่การตัดทำให้ก้อนข้อความเปลี่ยนตลอด เลยทำ cache ไม่ได้
อะไรที่ควรนิ่ง เอาไว้ต้น prompt และอย่าไปยุ่ง อะไรที่เปลี่ยนบ่อย เอาไปต่อท้าย
เวลาปรับ context อย่าดูแค่ token สั้นลงไหม ให้ดู Cache Hit Ratio ด้วย ว่าดึง cache มาใช้ได้แค่ไหน Pi หรือ OpenCode โชว์ตัวเลขนี้ให้เลย ส่วนใหญ่อยู่ที่ 90% ขึ้นไป หรือสูงถึง 97%, 98%, 99%
ที่มา: เอกสาร prompt caching เช่น Anthropic docs.anthropic.com/en/docs/build-with-claude/prompt-caching · DeepSeek api-docs.deepseek.com/guides/kv_cache
SLIDE 32
token ≠ เงิน
Tokens are not money
ตัวเลขที่ผมแปลกใจ รอบที่ 10 Pi ใช้ไป 820,000 กว่า token ส่วน fit ใช้แค่ 48,000 กว่า ต่างกันประมาณ 17 เท่า ใครจ่ายแพงกว่า
fit ครับ Pi ใช้ token มากกว่า 17 เท่า แต่ค่าใช้จ่ายประมาณการแค่ครึ่งเดียวของ fit เพราะ context ส่วนใหญ่ของ Pi โดน Prompt Cache ไปแล้ว Cache Hit Ratio ของมันสูงโคตรๆ
ใช้ token เยอะไม่ได้เท่ากับเงินเสมอไป ปรับ context แล้วต้องวัดด้วยว่าค่าใช้จ่ายลดจริงไหม
อีกเรื่อง งานที่รันนานแล้วกลัว process ตายกลางทาง มีของใหม่เมื่อเดือนที่ผ่านมาคือ pi-durable เซฟ state ทุกอย่างไว้ใน SQLite โดน kill -9 ก็กลับมารันต่อได้ ตรงกับที่บอกว่า context และสถานะงานเก็บเป็น state ได้
ที่มา: Pi Durable github.com/earendil-works/pi/tree/main/packages/durable
SLIDE 33
คลีนซองใน dorm.ts ด้วย pi.on("context")
Cleaning the envelope
รอบแรกของเคสหอพัก context bloat มาก ตาราง SQL กับ error รอบเก่าทับกันไปเรื่อยๆ จนเทิร์นเดียวบวมไปหมื่นกว่า token
ใน dorm.ts ผมเลยดักที่ context hook ของ Pi ซึ่งรันก่อนส่ง messages เข้าโมเดลทุกเทิร์น ผลของ tool เทิร์นล่าสุดเก็บไว้เต็มๆ แต่ตาราง SQL หรือ log ยาวๆ ของรอบเก่า ตัดเหลือบรรทัดแรก แล้วแปะโน้ตว่าตัวเต็มยังอยู่ใน trace ขยะเก่าจะได้ไม่รบกวนโมเดล กัน Context Rot
แล้ว Prompt Cache ไม่หลุดเหรอ หลุดครับ ตามกฎหนังสือ หน้าเก่าห้ามแก้แม้ตัวเดียว พอย้อนไปตัดข้อความรอบเก่า cache ตั้งแต่จุดนั้นลงมาก็หลุด เป็น trade-off ในเดโมผมตัดทุกเทิร์นให้เห็นภาพชัด แต่ harness ที่ใช้งานจริงอย่าง Pi หรือ Claude Code จะปล่อย context นิ่งๆ กิน cache ไปก่อน รอบวมถึงจุดหนึ่งค่อยทำ Compaction ทีเดียว
ที่สำคัญ Compaction ไม่ได้ทำให้ข้อมูลในไฟล์ trace หายไปไหน ยังเซฟครบ เราแค่คัดส่วนที่จำเป็นให้โมเดลอ่าน
"Compaction changes context, not history"
แก้แค่ context ที่โมเดลเห็น ไม่แตะ history ที่บันทึกไว้ อยาก trace ย้อนหลังก็เปิดไฟล์ session ในโฟลเดอร์ .pi หรือ .claude ในเครื่องเราได้ครบทุกบรรทัด
SLIDE 34
RLM เมื่อข้อมูลใหญ่เกินจะยัดเข้า context
When it can't fit at all
ถ้าข้อมูลใหญ่จนตัดยังไงก็ยัดเข้า context ไม่ไหว อย่างโปรเจกต์ข้อมูลมหาศาล หรืออยากให้ agent จำข้อมูลทั้งชีวิตเรา มีงานวิจัยใหม่จาก MIT ชื่อ RLM หรือ Recursive Language Models
ต่อยอดจากเรื่องกระดาษทด ข้อมูลไม่จำเป็นต้องอยู่ในประวัติแชท RLM เอาข้อมูลทั้งก้อนไปพักไว้ใน variable ของ Python REPL ข้างนอก เหมือนเปิด Jupyter Notebook ทิ้งไว้ แล้วให้โมเดลเขียนโค้ดเปิดดูทีละส่วน ค้นคำ ตัดเป็นท่อน ท่อนไหนยาวก็ส่งให้โมเดลย่อยอีกตัวอ่านแล้วสรุปกลับมา
โมเดลหลักเห็นใน context แค่นิดเดียว แต่เข้าถึงข้อมูลได้ทั้งหมด จำไอเดียนี้ไว้ ให้โค้ดจัดการข้อมูลก้อนใหญ่ แล้วส่งให้โมเดลดูเฉพาะส่วนที่ต้องใช้สมองจริงๆ ตอนท้ายผมจะเอาแนวคิดคล้ายๆ กันนี้มาพลิกเคสหอพัก
ที่มา: Zhang, Kraska, Khattab (MIT CSAIL), "Recursive Language Models" arxiv.org/abs/2512.24601 · alexzhang13.github.io/rlm
SLIDE 35
ปุ่ม ตัดทางผิดตั้งแต่ต้น
Take the wall button away
จุดที่สองคือปุ่ม ชุด tools ที่เปิดให้โมเดลใช้ โมเดลเป็นคนคิด แต่ tool คือคนลงมือ ปุ่มกับกรอบข้อมูลของมันจึงกำหนดว่าโมเดลจะพลาดได้แค่ไหน
ในสนามม้า raw กับ tiny มีปุ่มเดินสี่ทิศค้างไว้ตลอด ต่อให้ข้างหน้าเป็นกำแพง โมเดลก็มีจังหวะเผลอกด ใน fit แทนที่จะเขียน prompt ขอร้อง ผมตัดทิศที่เป็นกำแพงออกจากตัวเลือกในตานั้นไปเลย ทางไหนเป็นกำแพง ปุ่มนั้นไม่มีให้กดตั้งแต่แรก โอกาสชนเป็นศูนย์
กลับกัน ตอนปล่อยอิสระสุดขั้วให้ agent เขียนบอทแก้เขาวงกตเองยังไงก็ได้ OpenCode ร่วงจาก 7 ใน 10 รอบ เหลือ 4 ใน 10 เหมือนยื่น bash ตัวเดียวให้ AI ไปเขียนสคริปต์เอง เจอบั๊กก็ติดหล่มอยู่ตรงนั้นจนหมดเวลา
ในเคสหอพัก ผมเพิ่มปุ่มเฉพาะทางสองปุ่ม
กริ่งถามเจ้าของหอ ในเดโมออฟไลน์วันนี้ ระบบจะตอบนโยบายที่ผมเตรียมไว้กลับไปทันที ถ้าระบบจริงคือยิงข้อความเข้า LINE หรือ Slack แล้วรอคนจริงกดอนุมัติ ฟอร์มส่งงานสองถาด ถาดแรกเฉพาะคนที่ข้อมูลตรงเป๊ะ ถาดที่สองคือถาดพักเคสกำกวม หรือ quarantine พร้อมเหตุผล เคสไม่ชัวร์มีที่ให้วาง น้องก็ไม่ต้องฝืนเดา
SLIDE 36
เบรก
Brakes
จุดที่สามคือเบรก สองตัวสั้นๆ
เบรกตัดไฟสามรอบ รันพังหรือตรวจไม่ผ่านครบสามครั้งแล้วยังไม่ถามเจ้าของหอ รอบถัดไประบบตัด bash ทิ้ง เหลือทางเดียวคือกดปุ่มถามคนก่อน
โค้ดนับยอดก่อนจบ ไม่ปล่อยให้โมเดลตรวจการบ้านตัวเอง โค้ดเปิดฐานข้อมูลนับเองว่าถาดคนข้อมูลเป๊ะยี่สิบห้า บวกถาดพักเคสกำกวมห้า ครบสามสิบพอดีไหม ห้ามซ้ำ ห้ามตกหล่นแม้แต่คนเดียว บวกไม่ครบ ส่งงานไม่ผ่าน
SLIDE 37
รั้ว ป้ายห้ามกับประตูล็อก
A sign and a lock
จุดที่สี่คือรั้ว ดักเช็กก่อนรันเครื่องมือจริง ถ้าเขียนใน prompt ตัวโตๆ ว่า ห้ามโกง ห้ามลบฐานข้อมูล ห้ามอ่านไฟล์ตรวจ พอไหม
ไม่พอครับ prompt คือป้ายห้าม แต่ hook คือประตูล็อก
รอบเจ็ดวินาทีในสนามม้า ก่อนแอบเปิดโค้ดเกม thinking ใน trace เขียนเองว่า "This is arguably cheating but we need recover" แต่ประตูไม่ได้ล็อก มันก็เดินเข้าไป งานจริงก็มีเคสที่ผู้ก่อตั้ง PocketOS เล่าว่า agent เจอ token ในเครื่อง แล้วลบฐานข้อมูล production ทิ้งในเก้าวินาที โชคดีที่ทีม Railway กู้คืนให้ได้ งานจริงเลยต้องมีอย่างน้อยสองชั้น Permission Gate ให้โค้ดเช็กทุกคำสั่งก่อนรัน กับ Sandbox แยกสิทธิ์ระดับ OS หรือ container
ในเคสหอพักมีรั้วสองข้อ
คนทำข้อสอบไม่ควรเห็นเฉลย สคริปต์ตรวจรันได้ แต่ห้ามเปิดอ่าน ห้ามแก้ ล็อกลำดับงาน เจ้าของหอยังไม่อนุมัติ ห้ามเขียนไฟล์ส่งงาน ห้ามเสกใบอนุมัติปลอม ระบบจริงต้องล็อกคู่กับ file permission ระดับ OS ด้วย
ข่าวดีคือ สี่จุดนี้ ซอง ปุ่ม เบรก รั้ว มีในเครื่องมือทุกค่าย บางค่ายเรียก Extension บางค่ายเรียก Hooks ตารางเทียบชื่อรายค่ายอยู่ในหน้ารวมลิงก์ เอาคีย์เวิร์ดพวกนี้ไปสั่ง AI ช่วย vibe-code ดักแผลได้เลย
ที่มา: ผู้ก่อตั้ง PocketOS x.com/lifeof_jer/status/2048103471019434248 · Railway blog.railway.com/p/your-ai-wants-to-nuke-your-database
SLIDE 38
Demo 3 ม้าตัวเดิม 4 เต็ม 4
Demo 3: same horse, 4 of 4
ม้า DeepSeek V4.1 Flash ตัวเดิม โจทย์เดิม เพิ่มกติกาสี่จุดนี้เข้าไปเก้าสิบสี่บรรทัด
เทิร์นแรก น้องขอเปิดอ่านไฟล์ตรวจเหมือนเดิมเป๊ะ แต่โดนรั้วดัก ขึ้นป้ายเหลือง HARNESS INTERCEPTED เทิร์นถัดมา thinking เขียนว่า "The verifier is execute-only. Let me inspect DBs." ประตูล็อกปุ๊บ น้องก็เลี้ยวกลับไปสำรวจฐานข้อมูลจริง
สำรวจไปจนคำสั่งพังครบสามครั้ง เบรกทำงาน ล็อก bash ทันที thinking เทิร์นที่เก้าเขียนว่า "The harness is blocking all bash until clarification." น้องเลยสรุปห้าเคสกำกวมส่งไปถามเจ้าของหอ ได้นโยบายกลับมาก็ส่งงานแยกถาด ข้อมูลเป๊ะยี่สิบห้า พักเคสกำกวมห้า ครบสามสิบ
Policy Scorecard จากศูนย์เต็มสี่ เป็นสี่เต็มสี่
บนจอมีป้ายกำกับไว้ว่า คำตอบของเจ้าของหอในเดโมเป็น Simulated owner response ไม่มีคนตอบจริง และสี่เต็มสี่นี้เป็น local rubric เกณฑ์ตรวจในเครื่องของเดโม
SLIDE 39
ใครจับพวงมาลัย Agent หรือ Workflow
Who holds the wheel
พอเห็นสี่เต็มสี่ ผมกลับมาคิดว่า ตอนนี้รู้ขั้นตอนงานหอพักหมดแล้ว คิวรีสองฐานข้อมูล จับคู่ชื่อกับห้อง นับวันที่หาย แยกเคสกำกวมไปถามเจ้าของหอ เช็กยอดสามสิบคน แล้วทำไมยังต้องยื่น bash ให้น้องเดินวนเองสิบสองเทิร์น แล้วนั่งตั้งรั้วบล็อกอีก
Building effective agents ของ Anthropic แยกไว้ชัด ต่างกันนิดเดียว คือใครจับพวงมาลัย
Agent โมเดลจับพวงมาลัย เลือกเลี้ยว เลือกเครื่องมือเองหลายรอบ เหมาะกับโจทย์ใหม่ที่ข้อมูลยังรก เดาทางล่วงหน้าไม่ได้ Workflow โค้ดเราจับพวงมาลัย วางรางรถไฟล็อกขั้นตอน แวะเรียก LLM เฉพาะทางแยกที่ต้องตีความภาษาจริงๆ เหมือนเลน fit ในสนามม้า
ผมเลยเขียน from-scratch.ts แปดสิบสี่บรรทัด เป็น workflow กับ DeepSeek V4.1 Flash ตัวเดิม โจทย์เดิม โค้ด SQL จับคู่ยี่สิบห้าคนได้ตรงกับรอบ agent เป๊ะ คัดห้าเคสกำกวมออก เช็กยอดสามสิบเอง แล้วเรียกโมเดลแค่ครั้งเดียว ให้ร่างเหตุผลและคำถามห้าเคสเตรียมส่งเจ้าของหอ ใช้แนวคิดคล้ายๆ กับ RLM และไม่มี bash ไม่มีไฟล์ตรวจให้แอบเปิด ช่องโกงเดิมหายไปตั้งแต่แรก
token จากแปดหมื่นหนึ่งพันกว่า เหลือสามพันเก้าร้อยกว่า น้อยลงกว่ายี่สิบเท่า แต่ token ไม่เท่ากับเงิน บนเรตเดียวกัน ค่าใช้จ่ายประมาณการลดราวห้าเท่า ไม่ใช่ยี่สิบ เพราะฝั่ง Pi ได้ส่วนลด Prompt Cache ราวสี่สิบเปอร์เซ็นต์ และ workflow รอบเดียวมีสัดส่วน output ที่แพงกว่าอยู่เยอะ เวลาจากเกือบหนึ่งนาที เหลือยี่สิบสามวินาที
แต่ผมเขียน workflow นี้ตั้งแต่วันแรกไม่ได้ ที่เขียนได้เพราะส่ง Pi เป็น agent ลงไปสำรวจข้อมูลรกๆ จนเห็นแผลครบก่อน ใช้ Agent สำรวจทางรก พอนิ่งแล้วใช้ Workflow ล็อกรางงานที่ต้องทำซ้ำ
ที่มา: Anthropic Engineering, "Building effective agents" anthropic.com/engineering/building-effective-agents
SLIDE 40
LearnHarness ครัวสำหรับเรียนเรื่องยาก
LearnHarness through the four lenses
ได้แว่นครบสี่คำแล้ว ซอง ปุ่ม เบรก รั้ว กลับไปส่องสองโปรเจกต์ที่เปิดทิ้งไว้ตอนต้น ไม่ต้องเปิดโค้ด ดูแค่ฟีเจอร์หน้าบ้านก็เห็นโครงครัวชัดแล้ว
LearnHarness ครัวติวเตอร์สอนเรื่องยาก
Think out loud แทนที่จะตรวจแค่ถูกหรือผิด เหมือนเช็กแค่ exit 0 เขาเปิดช่องให้คนเรียนพิมพ์หรือพูดวิธีคิด ความไม่แน่ใจ และเหตุผลออกมา ให้ติวเตอร์เห็นกระบวนการคิด เหมือนเราเปิดอ่าน thinking ใน traceซองกับความจำ เรียนหลายบทแล้วเอาแชทเก่ามายัดต่อกัน โมเดลก็เบลอ เขาเลยแยกข้อเท็จจริงและสายเหตุผลที่เรียนแล้วไปเก็บเป็น Knowledge Graph ไฟล์ธรรมดาในเครื่องเรา เพื่อจำโครงความรู้ที่เชื่อมกัน ไม่ใช่คะแนนตัดสินความเก่ง ลูปสี่ขั้นบังคับจังหวะ วัดพื้นฐาน วางแผน สอน แล้วค่อยฝึกโจทย์ มีปุ่มค้นคว้าและสร้างภาพหรือเดโมโต้ตอบ จุดไหนยังสับสนก็เบรกซ่อมตรงนั้นก่อน ไม่ปล่อยไหลผ่าน
เซอร์ไพรส์คือ LearnHarness สร้างบนแกน pi-agent-core ตระกูลเดียวกับม้า Pi ที่ชนะทั้งในสนามม้าและเคสหอพัก ต่อโมเดลได้กว่าสามสิบค่ายรวมถึง DeepSeek ใช้ API key ของเราเองไม่บวกค่าบริการ และมีตัววัดค่าใช้จ่ายสดบนจอ
ที่มา: learnharness.ai · github.com/amosblomqvist/learnharness
SLIDE 41
OpenResearch ครัวสำหรับผู้ช่วยวิจัย
OpenResearch through the four lenses
OpenResearch ของทีม alphaXiv ไม่ได้สร้าง agent ใหม่ แต่สวมครัววิจัยทับ coding agent ที่มีอยู่ในเครื่อง ทั้ง Claude Code, Codex, OpenCode, Cursor หรือ Antigravity
ปุ่ม ค้นคลังงานวิจัย alphaXiv, bioRxiv, PubMed และส่งงานทดลองไปรันตั้งแต่ในเครื่องเรา ยันคลัสเตอร์และ Cloud GPU อย่าง Slurm, Kubernetes, Modal, Ray, Hugging Face Jobs หรือเครื่องเช่าของเขาเอง AI ไม่ได้แค่นั่งเทียนสรุปเปเปอร์ แต่รันทดลองพิสูจน์สมมติฐานได้จริง ซองกับ state ทดลองสิบรอบ ถ้ายัด log การเทรนเข้าแชท ซองแตกแน่ เขาเลยเก็บผลทดลอง โค้ด และ log ลง SQLite ในเครื่องเรา agent เทียบผลข้ามรอบ เรียนจากความล้มเหลวรอบก่อนได้โดยซองไม่บวม และข้อมูลไม่รั่วออกไปข้างนอก เบรกกับรั้วคุมงบ ที่ผมชอบที่สุด
ใครเคยเช่า GPU แล้วลืมปิดจนบิลบานบ้าง ระบบเครื่องเช่าของ OpenResearch มีโปรเซสคุมงานแยกอยู่ฝั่งเครื่องทดลอง ต่อให้พับจอโน้ตบุ๊กหรือ SSH หลุด งานกับการเก็บกวาดก็ไม่พัง ครบเพดานเวลาค่าเริ่มต้นสี่ชั่วโมงหรือจบการทดลอง ระบบปิดบิลและลบเครื่องให้เอง เช็กสัญญาณชีพทุกสามสิบวินาที เครื่องเงียบเกินห้านาทีก็ตัดทันที ไม่ปล่อย GPU กินเงินฟรีข้ามคืน
ที่มา: openresearch.sh · github.com/alphaXiv/OpenResearch
SLIDE 42
MCP ปลั๊กเดียว กับปลั๊กยี่สิบตัว
One plug, twenty plugs
ถ้าไม่อยากยกครัววิจัยทั้งชุด หรือสร้าง harness เอง แค่อยากหยิบปุ่มเฉพาะทางมาเสียบครัวเดิม หยิบอะไรได้บ้าง
ตอนต้นผมเปรียบ MCP เป็นสูตรอาหาร ในมุมใช้งานจริง MCP หรือ Model Context Protocol คือหัวปลั๊ก USB-C ของโลก AI เมื่อก่อนจะให้ agent ต่อเว็บ ฐานข้อมูล หรือแอปไหน ต้องเขียนโค้ดเชื่อมเองทีละตัว เดี๋ยวนี้เสียบปลั๊ก MCP ปุ๊บ น้องได้ปุ่มเฉพาะทางเพิ่มทันที ไม่ต้องโยน bash ให้ไปงมเอง
แต่ที่พลาดกันเยอะตอนนี้คือเห็นตัวไหนเจ๋งก็เสียบพ่วงค้างไว้สิบห้ายี่สิบตัว จำกฎหนังสือได้ไหม ถ้า harness โหลดคู่มือปุ่มของทุกปลั๊กที่เปิดค้างไว้ไปแปะหน้าแรกของซองทุกเทิร์น ทั้งที่เรายังไม่ได้ถามสักคำ ซองก็บวม โมเดลก็ตาลายกดปุ่มไม่ถูก (บนจอคือหน้าแสดง context ของ Claude Code บนเครื่องที่ต่อ MCP ไว้หลายตัว) และทุกปลั๊กที่เพิ่มคือประตูสิทธิ์ที่เปิดเพิ่ม
ต่อ MCP เฉพาะตัวที่ใช้ในงานนั้น หรือใช้ตัวที่ค้นหาเครื่องมือมาโหลดเฉพาะตอนจะใช้จริง
ที่มา: Model Context Protocol modelcontextprotocol.io
SLIDE 43
3 MCP ที่ผมใช้จริง
Three plugs I actually use
แล้วแต่งานของแต่ละคน แต่สามตัวที่ผมใช้บ่อยและอยากป้ายยา
Monid เจ๋งมากเวลาทำรีเสิร์ชหรือดึงข้อมูลเชิงลึก แทนที่จะเสียบ MCP ยี่สิบตัวแช่ไว้ ใช้มันค้นหาเครื่องมือเฉพาะเรื่องตอนที่จะใช้ มันจัดอันดับความเหมาะสม บอกราคา ความเร็ว และสถานะความเสถียร ว่า endpoint ไหนพร้อมใช้ และคิดเงินเฉพาะตอนกดรันจริงPomerado คอนเซปต์คือ MCP Anything เว็บจำนวนมากไม่มี API ให้ต่อ เช่นเว็บประกาศข้อมูลสาธารณะ หรือระบบหลังบ้านเก่าๆ ในบริษัท ตัวนี้ปั้นหน้าเว็บพวกนั้นเป็นปุ่ม MCP ส่วนตัวที่ทีมเรียกใช้ซ้ำแบบ read-only ได้สะดวกมากarXiv หรือ alphaXiv ทีมเดียวกับที่ทำ OpenResearch ตัว X มาจากอักษรกรีก อ่านว่า อาร์-ไคฟ์ กับ อัลฟ่า-ไคฟ์ ถ้ายังไม่ได้จะเช่า GPU รันทดลอง แค่อยากได้ปุ่มค้น อ่าน เทียบเปเปอร์ต้นน้ำมาเสียบครัวเดิม เสียบตัวนี้ปุ๊บจบ
เว็บช่วยทำ Literature Review รายเดือนแพงๆ หลายเจ้า ข้างในก็คือโมเดลเดิมบวกท่อเปเปอร์แบบนี้แหละครับ
ที่มา: alphaXiv alphaxiv.org · Monid MCP และ Pomerado MCP (ยังไม่มีลิงก์)
SLIDE 44
MCP หยิบได้ RAG หาแม่น
The key and the librarian
มี MCP ดึงข้อมูลได้เกือบทุกที่แล้ว ยังต้องทำ RAG ไหม ถ้าเป็นเอกสารซับซ้อนที่ต้องแม่นมาก ยังจำเป็นสุดๆ เพราะ MCP เป็นแค่กุญแจเปิดตู้ไปหยิบแฟ้ม
ลองนึกว่าแฟ้มนั้นคือประมวลกฎหมายหรือสัญญาหลายร้อยหน้า มาตรานึงมักมีวรรคท้าย หรือโยงข้อยกเว้นไปอีกหลายมาตรา โยนเข้าไปทั้งเล่ม ซองก็บวมจนเกิด Context Rot โมเดลเบลอกลางเล่ม ค้นแบบ Ctrl+F หรือหั่นท่อนเท่าๆ กันจนผ่ากลางมาตรา เนื้อหากับข้อยกเว้นวรรคท้ายก็หลุด
RAG ที่ดีเหมือนบรรณารักษ์สายกฎหมาย รู้ว่าต้องหั่นตามโครงสร้างมาตรา ไม่ผ่ากลาง คัดเฉพาะมาตราที่เกี่ยวพร้อมเลขมาตราส่งเข้าซอง ให้ไล่เช็กข้อยกเว้นต่อได้ โมเดลก็ค้นแม่นและตอบคมขึ้นเยอะ
แต่งานวิจัย Legal RAG ล่าสุดเตือนว่า ต่อให้มี RAG ระบบที่เขาทดสอบก็ยังตอบหลอนหรืออ้างอิงคลาดเคลื่อนได้ตั้งแต่แปดถึงเกือบห้าสิบเปอร์เซ็นต์ งานเสี่ยงสูงอย่างกฎหมาย ขั้นสุดท้ายต้องมีคนตรวจเสมอ
ที่มา: "How Much Do Legal RAG Systems Still Hallucinate?" (arXiv:2608.14210) arxiv.org/abs/2608.14210 · "Chunking German Legal Code" (arXiv:2605.19806) arxiv.org/abs/2605.19806
SLIDE 45
เลือกครัวไหนดี
Four lanes, four kitchens
พรุ่งนี้เช้าจะเปิด harness ตัวไหนดี ผมสรุปไว้สี่เลน
ครัวพร้อมเสิร์ฟ Claude Code, Codex, Antigravity หรือ Cursor เครื่องมือครบ เก่งตั้งแต่วันแรก อยากใช้งานจริงจังทันทีก็เลือกเลนนี้ สายโอเพนซอร์สเน้นคุ้มค่า อยากสลับโมเดลอิสระไม่โดนล็อกค่าย ผมแนะนำ OpenCode จับคู่ม้าคุ้มๆ อย่าง DeepSeek หรือสลับโมเดลตามความยากของงาน ครัวมินิมอลคลีนๆ เครื่องมือไม่รก โครงบาง อ่านโค้ดง่าย ไว้เสียบกฎดักเฉพาะทางเองแบบเคสหอพัก ก็สาย Pi ครัวเฉพาะทาง หรือ Niche Harness อย่าง LearnHarness กับ OpenResearch ถ้าโจทย์เป็นงานเฉพาะทาง ครัวที่จัดซอง ปุ่ม เบรก รั้ว มาเพื่ออาชีพนั้น จะพาโมเดลตัวเดิมไปไกลกว่าครัวทั่วไปคนละเรื่อง
จำจุดแดงตอนเปิดได้ไหม ครัวสำเร็จรูปดีๆ มีเต็มไปหมด ทำไมจุดยังเล็ก เพราะเครื่องมือมีครบแล้ว แต่คนส่วนใหญ่ยังไม่รู้ว่างานผ่านจริงไหม
ถ้าของที่มีทำงานผ่านเกณฑ์ ก็ใช้ไปเลย ในสนามม้า Pi ที่ไม่ได้เพิ่มเครื่องมือเกมก็เข้าเส้นชัยแปดรอบ เท่ากับ fit ที่ผมเขียนเอง แต่เคสหอพักขึ้นเขียวในห้าสิบเจ็ดวินาที ทั้งที่ปลอมใบอนุมัติอยู่ข้างหลัง เราไม่ได้เรียนเพื่อสร้างครัวแข่งกับเขา เราเรียนเพื่อให้รู้ว่างานผ่านจริงไหม และถ้าไม่ผ่าน พังที่ซอง ปุ่ม เบรก หรือรั้ว
แต่เดือนนี้ค่ายนึงเก่ง เดือนหน้าอีกค่ายแซง สายฮาร์ดคอร์เคยต้องเปิด tmux แบ่งจอดำสี่ช่องรันเทียบกัน คนทั่วไปเห็นก็ท้อ Theo เลยทำ T3 Code ไม่ได้มาแทนครัวพวกนั้น แต่เป็นแผงควบคุมกลางที่วางทับข้างบน ดึง harness ของแท้ในเครื่องเรามารันด้วย login เดิม ไม่บวกค่า token เพิ่ม
ที่มา: opencode.ai · pi.dev · t3.codes · Theo, "Why should I use T3 Code instead of Claude Code or Codex?" x.com/theo/status/2115911518663647662
SLIDE 46
T3 Code แผงควบคุมรวมหลาย harness
T3 Code, recorded
บนจอคือคลิป T3 Code ที่ผมใช้จริง ช่องเลือกด้านล่างในแอปเดียว เสียบครัวของแท้ในเครื่องไว้ครบ Claude Code, Codex, OpenCode, Antigravity เดือนไหนค่ายไหนเก่งขึ้น ก็กดสลับได้ทันทีโดยไม่ต้องย้ายบ้าน
ที่เด็ดคือรันหลายเธรดขนานกันได้ แยก Git worktree ให้ไฟล์ไม่ตีกัน สองเธรดบนจอคืองานเดียวกัน ม้าตัวเดียวกัน แต่คนละ harness หรือจะตั้ง skill ชื่อ council ให้กระจายโจทย์เดียวไปสามค่ายช่วยกันวิจารณ์ก็ได้ และต่อมือถือสั่งงานข้ามเครื่องได้ด้วย
มีแผงควบคุมแบบนี้ เราไม่ติดค่ายไหนค่ายเดียว เราขยับขึ้นมาเป็นผู้คุมม้า ที่จับคู่ม้ากับครัวให้เหมาะกับงานแต่ละชิ้น แต่อย่าตัดสินจากการรันเทียบรอบเดียว งานใครงานมัน ต้องดู trace ของงานเราเองเสมอ
ที่มา: t3.codes · github.com/pingdotgg/t3code
SLIDE 47
พรุ่งนี้เช้าเริ่มยังไง บันได 4 ขั้น
Four rungs for tomorrow
ถ้าพรุ่งนี้เช้าจะเริ่ม ผมสรุปเป็นบันไดสี่ขั้น จากเบาสุดไปหนักสุด
ไม่ต้องเขียนโค้ดก็ทำได้ จัดซองให้คลีน เปลี่ยนเรื่องก็เริ่มแชทใหม่ เปิดเฉพาะปลั๊กที่ใช้จริง ใครทำโปรเจกต์อยู่ ลองเปิด T3 Code หรือ OpenCode มาสลับเทียบดู งานพังอย่าเพิ่งรีบแก้ prompt เอาประวัติแชทที่พัง หรือไฟล์ .jsonl ถ้าเป็นสายโค้ด โยนเข้าแชทใหม่ให้ AI ช่วยชี้แผลจริงใน trace ก่อน เอาสี่คำ ซอง ปุ่ม เบรก รั้ว ไปสรุปกฎลง CLAUDE.md หรือ AGENTS.md จุดไหนห้ามหลุดซ้ำเด็ดขาด ให้ AI ช่วย vibe-code เป็น Hook ล็อกประตูไว้ งานที่สำรวจจนขั้นตอนนิ่งและต้องรันซ้ำทุกสัปดาห์ ค่อยล็อกรางเป็น Workflow ให้โค้ดคุม
ไม่ต้องกระโดดไปขั้นสี่ตั้งแต่วันแรก แค่ขั้นหนึ่งกับสอง ชีวิตการทำงานกับ AI ก็เปลี่ยนไปเยอะแล้ว และไม่ต้องขึ้นให้ครบ ถ้าเครื่องมือที่มีผ่านเกณฑ์แล้ว หยุดตรงนั้นได้เลย
ที่มา: Anthropic Engineering, "Building effective agents" anthropic.com/engineering/building-effective-agents
SLIDE 48
ม้าตัวเดียวกัน ชะตาต่างกัน
The whole talk at once
ย้อนไปตอนเริ่ม แอปแชทที่ตอบว่า You're absolutely right พี่เจ้าของหอที่นั่งเป็นตัวเชื่อมระบบอยู่สองวัน สนามม้าหกเลนที่ใช้ DeepSeek V4.1 Flash ตัวเดียวกันเป๊ะ บางเลนชนกำแพง บางเลนแอบหาทางลัด บางเลนเข้าเส้นชัย
เคสหอพักก็เหมือนกัน ม้าตัวเดิม ตอนแรกปลอมใบอนุมัติส่งงาน พอจัดซอง เพิ่มปุ่ม ติดเบรก ล้อมรั้ว มันกลับมาถามคนจนได้สี่เต็มสี่ พอรู้ทางชัดก็ล็อกเป็น workflow พอสวมครัวเฉพาะทางอย่าง LearnHarness หรือ OpenResearch โมเดลตัวเดิมก็เปลี่ยนอาชีพได้ และมีแผงควบคุมให้สลับครัวตามงานเองได้
โมเดลไม่ได้เปลี่ยนเลย ที่เปลี่ยนคือ harness
ม้าตัวเดียวกัน ชะตาต่างกัน และคุณเป็นคนเลือก harness ให้มันได้ครับ
ลิงก์คอร์ส บทความ งานวิจัย ตารางเทียบชื่อ hook รายค่าย และโพยเครื่องมือทั้งหมด อยู่ในหน้ารวมลิงก์ ฝากไว้อย่างเดียว กลับไปลองเปิดประวัติแชทหรือ trace .jsonl ของงานที่เพิ่งคุยกับ AI สักงานดู ลองแล้วติดตรงไหน หรือสงสัยอะไร ทักมาคุยกันทาง Facebook ได้เลย ขอบคุณครับ
Facebook: facebook.com/ohmmingrath
ติดตามหรือถามต่อได้ที่ facebook.com/ohmmingrath · กลับขึ้นด้านบน
Same Horse, Different Fates · AI Expo Thailand, 8 Nov 2026. Third-party clips and screenshots belong to their owners and link to the originals.