- LLM agent เป็นโครงสร้างเทคโนโลยีที่ควรได้ลองลงมือทำเอง มากกว่าจะเข้าใจแค่ในเชิงแนวคิด เพื่อให้สัมผัสกลไกการทำงานได้จริง
- ใช้โค้ด Python เพียงไม่กี่สิบบรรทัดก็สามารถสร้างเอเจนต์แบบโต้ตอบด้วย OpenAI Responses API ได้ และหากเพิ่มความสามารถ tool call เข้าไป ก็จะทำให้ทำงานแบบอัตโนมัติได้
- หัวใจของเอเจนต์คือ ลูปการเรียกใช้งานซ้ำกับ LLM ที่ไม่มีสถานะ และการจัดการบริบทการสนทนา (context) ด้วยตนเองเพื่อรองรับการสนทนาหลายรอบ
- Context Engineering เป็นปัญหาในระดับงานเขียนโปรแกรมจริง ที่ต้องออกแบบการปรับอินพุต เอาต์พุต และคำอธิบายเครื่องมือให้เหมาะสมภายใต้ข้อจำกัดของโทเค็น
- การออกแบบเอเจนต์ในปัจจุบันยังเป็น พื้นที่ปัญหาด้านวิศวกรรมซอฟต์แวร์แบบเปิด ที่นักพัฒนารายบุคคลก็สามารถลองแนวทางใหม่ ๆ ผ่านการทดลองได้
ความเรียบง่ายของการเขียนเอเจนต์
- LLM agent สามารถสร้างได้ด้วย OpenAI Responses API เพียงตัวเดียว โดยไม่ต้องมีการตั้งค่าซับซ้อน
- ในโค้ดตัวอย่างใช้ลิสต์
context สำหรับเก็บบทสนทนาระหว่างผู้ใช้กับโมเดล แล้วเรียกซ้ำเพื่อสร้างคำตอบแบบโต้ตอบคล้าย ChatGPT
- สามารถสร้างสองบริบทที่มี “บุคลิกดี” และ “บุคลิกแย่” เพื่อจำลอง การสนทนาแบบหลายบุคลิก ได้
- LLM ไม่มีสถานะ และความต่อเนื่องของบทสนทนาจะคงอยู่ผ่าน อาร์เรย์ของสตริง (
context) ที่ผู้ใช้เป็นผู้จัดการเอง
- เพียงโครงสร้างเรียบง่ายแบบนี้ก็รองรับ การสนทนาหลายรอบ ได้ และช่วยให้เข้าใจหลักการทำงานของ LLM จากการลงมือทำจริง
การผสานเครื่องมือ (tool) และการทำงานแบบอัตโนมัติ
- เพิ่มฟังก์ชัน ping เป็นเครื่องมือให้เอเจนต์ เพื่อตรวจสอบสถานะการเชื่อมต่อเครือข่าย
- OpenAI API ต้องการการนิยามเครื่องมือในรูปแบบ JSON และเมื่อ LLM ขอเรียกใช้เครื่องมือ โค้ด Python ก็จะรันเครื่องมือนั้นแล้วส่งผลลัพธ์กลับไป
- แม้ไม่มีคำสั่งชัดเจน LLM ก็สามารถ ping หลายโฮสต์ (
google.com, www.google.com, 8.8.8.8) โดยอัตโนมัติได้
- สิ่งนี้แสดงให้เห็นว่า เพียงมี “สิทธิ์ใช้เครื่องมือ” LLM ก็สามารถ ตัดสินใจเชิงอัตโนมัติ ได้
- ลูปทั้งหมดมีโครงสร้างเพียง “ขอเรียกเครื่องมือ → รัน → ส่งผลลัพธ์กลับ” ทำให้สร้าง เอเจนต์อัตโนมัติได้โดยไม่ต้องมีลอจิกควบคุมที่ซับซ้อน
การใช้งานจริงและคำวิจารณ์ต่อ MCP
- แม้โค้ดตัวอย่างจะเรียบง่าย แต่หากผสาน เครื่องมือเพิ่มเติม (เช่น traceroute) หรือ การเก็บ context บน SQLite ก็สามารถขยายไปใช้งานจริงได้
- MCP (Multi-Context Protocol) เป็นเพียงอินเทอร์เฟซปลั๊กอินของ Claude Code หรือ Cursor ไม่ใช่เทคโนโลยีที่จำเป็น
- หากจัดการ API โดยตรง ก็สามารถสร้างฟังก์ชันแบบเดียวกันได้โดยไม่ต้องใช้ MCP
- MCP มีประโยชน์เฉพาะในสภาพแวดล้อมที่ไม่มีสิทธิ์ควบคุมโค้ด และอาจ จำกัดความยืดหยุ่นของสถาปัตยกรรมเอเจนต์ ได้ด้วยซ้ำ
- แม้ความปลอดภัยของ LLM จะซับซ้อน แต่ก็สามารถออกแบบโครงสร้างที่ปลอดภัยได้ผ่าน การแยก context และการจำกัดเครื่องมือ
ความสำคัญของ Context Engineering
- “Prompt Engineering” เป็นแนวคิดที่ถูกพูดเกินจริง แต่ Context Engineering คือปัญหาการเขียนโปรแกรมจริง
- จำนวนโทเค็นใน context window มีจำกัด และทั้งอินพุต เอาต์พุต และคำอธิบายเครื่องมือล้วนใช้พื้นที่
- หากเกินขีดจำกัดนี้ คุณภาพคำตอบของโมเดลจะเริ่มไม่เสถียร
- วิธีแก้คือสร้าง sub-agent ที่มี context และเครื่องมือแตกต่างกัน แล้วออกแบบให้สรุปและแลกเปลี่ยนข้อมูลกัน
- โครงสร้างลักษณะนี้สามารถขยายเป็นการทดลองได้หลายแบบ เช่น เครือข่ายเอเจนต์แบบต้นไม้ หรือ การบีบอัดด้วยสรุปแบบเรียลไทม์
- แม้เป็นแนวคิดซับซ้อน แต่ก็ยัง เรียบง่ายพอจะลงมือทำได้ภายใน 30 นาที
ปัญหาวิศวกรรมแบบเปิดและคุณค่าของการทดลอง
- ปัจจุบันมีสตาร์ตอัปจำนวนมากกำลังพัฒนา เอเจนต์สำหรับตรวจจับช่องโหว่ และนักพัฒนารายบุคคลก็สามารถทดลองแบบเดียวกันได้
- การออกแบบเอเจนต์ยังมี โจทย์วิศวกรรมที่ยังไม่คลี่คลาย เช่น
- การหาสมดุลระหว่างความไม่เป็นเชิงกำหนดกับการเขียนโปรแกรมแบบมีโครงสร้าง
- การยืนยันความจริงของข้อมูล (ground truth) และการป้องกันการจบลูปเร็วเกินไป
- รูปแบบการแลกเปลี่ยนข้อมูลระหว่างเอเจนต์หลายขั้น (JSON, SQL, Markdown ฯลฯ)
- การจัดสรรโทเค็นและการควบคุมต้นทุน
- ปัญหาเหล่านี้ไม่จำเป็นต้องอาศัยงานวิจัยขนาดใหญ่ แต่เป็น พื้นที่ที่แม้แต่การทดลองรายบุคคลก็สำรวจได้ และแต่ละรอบทดลองใช้เวลาเพียงไม่กี่สิบนาที
- โดยสรุปแล้ว ประสบการณ์จากการลองสร้างเอเจนต์ด้วยตัวเอง คือจุดเริ่มต้นของการเข้าใจเทคโนโลยี LLM
2 ความคิดเห็น
ความคิดเห็นจาก Hacker News
มีหลายอย่างที่อยากทำมาก อยากสร้าง CPU จาก NAND gate บนเบรดบอร์ดด้วยตัวเอง และอยากลองทำ CDN ด้วย Rust แต่ไม่มีเวลา
เลยลองสร้าง LLM ตามบทสอนของ Karpathy แทน แล้วรู้สึกว่าการค่อย ๆ ทดลอง แบบนี้ค่อนข้างดีทีเดียว
ทุกครั้งที่รู้สึกว่า ‘เสร็จแล้ว’ ก็จะเหมือนว่า เส้นชัยยิ่งถอยห่างออกไป สุดท้ายคนแบบพวกเราคงเป็นพวกที่ไม่เคยพอใจอย่างแท้จริง
ในตัวอย่างใช้ GPT-5 แต่ query interface นั้นอยู่ในระดับ มาตรฐานอุตสาหกรรม ไปแล้ว
เช่น ถ้าเชื่อมกับ OpenRouter.ai ก็สามารถสลับโมเดลและผู้ให้บริการระหว่างรันไทม์ได้ง่าย
มีโมเดลฟรีให้ใช้ด้วย (เช่น DeepSeek) แม้จะช้าและมีข้อจำกัด แต่ก็ยอดเยี่ยมสำหรับการทดลอง
เมื่อไม่กี่เดือนก่อนลองสร้าง เอเจนต์ เองด้วย Ruby สนุกมาก
ลอจิกหลักมีแค่สี่บรรทัด และในเชิงแนวคิดเรียบง่ายจนน่าทึ่ง
เมื่อ 2 ปีก่อนเคยสร้างเอเจนต์ด้วย PHP แค่ 25 บรรทัด ตอนนั้นยังไม่มี tool calling แต่ก็ทำงานได้ดีพอสมควร
สำหรับฉัน LLM ให้ความรู้สึกเหมือน เครื่องมือจัดการข้อความแบบ UNIX อย่าง
sedหรือawk— คือให้ input กับคำสั่ง แล้วมันก็คืน output ออกมาถ้านำการเรียก LLM แบบนี้มาประกอบกัน แล้วทำเป็นลูปหรือแตกแขนง ก็จะกลายเป็นระบบที่ทรงพลังมาก
โค้ดที่เกี่ยวข้อง: hubcap, llm
ได้แรงบันดาลใจอย่างมากจาก บทความของ Simon Willison
ส่วนที่พูดถึงการสร้างทางเลือกแทน Claude Code เองนั้นโดนใจมาก การสร้าง coding agent ที่พัฒนาตัวเองได้ เป็นประสบการณ์ที่แทบเหมือนเวทมนตร์
สามารถสลับโมเดลได้อย่างอิสระ และถ้าใช้โมเดลเร็วอย่าง Cerebras ก็จะรู้สึกถึงความต่างอย่างชัดเจนแม้แต่ในเครื่องมือเรียกใช้แบบโต้ตอบ
ถ้าเพิ่มความจำ การรู้จำเสียง ฯลฯ เข้าไป ก็จะยิ่งมีประสิทธิภาพมากขึ้น ใช้เวลาแค่ไม่กี่นาทีก็ทำได้และสนุกมาก
โมเดลของ Google คุณภาพต่ำ และโมเดลของ Mistral ถึงจะเร็วแต่บางครั้งกลับไปตอบสนองต่อข้อความ
เลยมีบางครั้งที่มันถอดสิ่งที่ฉันพูดออกมาเป็น กระแสสำนึก ของ LLM แทน
ตอนแรกสร้างขึ้นมาเพื่อทำความเข้าใจโครงสร้างภายใน แต่พอพบว่ามันเรียบง่ายกว่าที่คิด ตอนนี้ก็เริ่มเพิ่มฟีเจอร์ที่อยากได้เองแล้ว
ใส่ฟีเจอร์ได้เร็วกว่าโปรดักต์ระดับทีมเสียอีก เอเจนต์มี โครงสร้างที่เรียบง่ายจนน่าทึ่ง
เลยสงสัยว่านี่เป็นแบบใช้โมเดลโลคัลหรือเปล่า
อ่านบทความนี้แล้วทำให้อยากกลับไปสร้าง ปรัชญา Unix ใหม่ — เครื่องมือที่ทำสิ่งเดียวแต่ทำได้ดี
นอกจากจะทำให้เอเจนต์เรียบง่ายแล้ว ยังช่วยเพิ่มความปลอดภัยด้วย
มันอาจไม่สมบูรณ์เท่าระบบ telemetry ที่มนุษย์สร้างขึ้นเอง แต่สามารถไปถึง ระดับการใช้งานได้จริง 90% ได้ง่ายกว่ามาก
ขนาดที่เหมาะสมที่สุดของ LLM น่าจะอยู่ตรงกลาง ระหว่างนี้กับเครื่องมือ Unix แบบดั้งเดิม
มีคำถามว่า “จำเป็นต้องสร้างเอเจนต์จริงหรือ?”
ในเมื่อผู้ให้บริการ AI แทบทั้งหมดกำลังขาดทุน ก็เลยสงสัยว่าจะมี โมเดลรายได้ที่ยั่งยืน ได้จริงหรือไม่
ตรรกะก็คล้ายกับการยกเรื่อง Astral ขาดทุนขึ้นมาเพียงเพราะไม่อยากใช้ Python
ที่ต้องใช้เงินก็เพราะต้นทุนการฝึกโมเดลถัดไปสูงมาก แต่ ขั้นตอนการอนุมานยังทำกำไรได้
ส่วนของ context engineering โดนใจมากเป็นพิเศษ
ฉันกำลังสร้างผู้ช่วยส่วนตัวอยู่ ซึ่งมี ความจำ การติดตามงาน และความสามารถในการแก้ปัญหา มากกว่าเอเจนต์ทั่วไป
ออกแบบให้เอเจนต์หลายตัวคุยกันเพื่อแก้ปัญหา โดยเอเจนต์ตัวแรกทำหน้าที่เป็น ผู้กำกับดูแลงานจัดการงาน
ยิ่งทำลึกลงไปเท่าไร กระบวนการนี้ก็ยิ่งกลายเป็น ปัญหาเชิงวิศวกรรม มากขึ้นเท่านั้น
รายละเอียดอยู่ใน โพสต์บล็อกของฉัน
ทุกคนชอบสร้างเอเจนต์ แต่ ไม่ชอบดีบัก
ตอนแรกมันทำงานได้เหมือนเวทมนตร์ แต่พอนานไป ความล้มเหลวเชิงความน่าจะเป็น ก็เริ่มสะสมและทำให้เกิดปัญหาที่ทำซ้ำได้ยาก
แต่ละขั้นใช้เวลา 0.5 วินาที ดังนั้นถ้าจะหาว่าพลาดตรงไหน ก็ต้องรอครั้งละ 10–20 นาที
และยังย้อนกลับไปรันสถานการณ์เก่า ๆ เพื่อยืนยันว่าไม่มีอะไรพังด้วย
ลองสร้าง MCP จากโค้ดที่ให้มาแล้ว: gurddy-mcp.fly.dev
ดูซอร์สโค้ดได้ที่ GitHub repository