ข้ามไปเนื้อหาหลัก

สร้าง Web Search Agent Harness เองจากศูนย์ แล้วมาเช็กดูว่าสมศักดิ์ศรีชื่อนี้จริงไหม

เบื้องหลังการพัฒนาผู้ช่วยค้นหาข้อมูลสไตล์ Perplexity ด้วย Bun และ React 19 พร้อมทบทวนนิยามคำว่า Agent Harness แบบตรงไปตรงมา

เรียบเรียงโดย AI
Inewgen
31 Jul 2026ที่มา: Dev.to3 นาทีอ่าน (0 ครั้ง)อัปเดตล่าสุด 04 Aug 2026
แชร์
สร้าง Web Search Agent Harness เองจากศูนย์ แล้วมาเช็กดูว่าสมศักดิ์ศรีชื่อนี้จริงไหม

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • นักพัฒนาลงมือสร้างระบบค้นหาเว็บสไตล์ Perplexity ด้วยตัวเองจากศูนย์
  • ตั้งคำถามกับตัวเองว่าโปรเจกต์นี้สมควรใช้คำว่า Agent Harness จริงหรือไม่
  • เจาะลึกโครงสร้างระบบที่ใช้ Bun, React 19, Tavily และ OpenRouter
  • เผยแผนการพัฒนาเวอร์ชัน v1 ในอนาคตบน GitHub

นักพัฒนาซอฟต์แวร์รายหนึ่งตั้งใจสร้างผู้ช่วยค้นหาข้อมูลที่มีลักษณะคล้ายกับ Perplexity โดยต้องการระบบที่ผู้ใช้พิมพ์คำถามเข้าไป จากนั้นระบบจะพิจารณาเองว่าจะออกไปค้นหาข้อมูลจากเว็บในช่วงกลางของการตอบคำถามหรือไม่ และส่งกลับมาพร้อมคำตอบจริงที่มีการอ้างอิงเป็นตัวเลขให้คลิกได้ ไม่ใช่แค่แชทบอตธรรมดาที่แปะไอคอนรูปแว่นขยาย แต่เป็นระบบที่รู้จักคิดวิเคราะห์ว่าจำเป็นต้องหาข้อมูลเพิ่มก่อนตอบหรือไม่

เขาจึงลงมือพัฒนาขึ้นมาโดยใช้ Bun เป็นแบ็กเอนด์, React 19 สำหรับหน้าบ้าน, ใช้บริการ Tavily สำหรับค้นหาข้อมูล, OpenRouter สำหรับเชื่อมต่อโมเดล และใช้ฐานข้อมูล Postgres รองรับด้านล่าง หลังจากใช้เวลาพัฒนาไปสองสามสัปดาห์ ระบบก็สามารถทำงานได้จริง ทั้งการสตรีมคำตอบ, แหล่งที่มาที่คลิกได้ และรองรับคำถามต่อเนื่อง

แต่ก่อนที่จะเผยแพร่บทความนี้ พร้อมกับใส่ชื่อหัวข้อว่า agent harness เขาหยุดคิดขึ้นมาว่า สิ่งที่ทำอยู่มันคือสิ่งนั้นจริงๆ หรือเป็นแค่คำศัพท์ฮิตแปะทับลงไปบนคำสั่ง fetch ธรรมดาที่พ่วงด้วย system prompt หน้าตาดีกันแน่

code editor terminal programming workspace

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ในตอนแรกเกือบจะเขียนบทความแนวอวดอ้างว่าได้สร้าง multi-tool agentic harness ที่มีระบบสังเกตการณ์เต็มรูปแบบและมีระบบสลับผู้ให้บริการอัตโนมัติเมื่อเกิดข้อผิดพลาด แต่ความจริงคือมันมีเครื่องมือแค่ตัวเดียว มีเส้นทางเรียกใช้โมเดลเดียว และไม่มีระบบลองทำซ้ำอัตโนมัติหากการเรียกใช้เครื่องมือเกิดล่มกลางคัน

ก่อนที่จะเผยแพร่บทความ เขาจึงย้อนกลับไปตรวจสอบโค้ดในไฟล์ agent-loop.ts และ agent-runner.ts เสมือนว่ากำลังตรวจ PR ให้คนอื่น แล้วตั้งคำถามพื้นฐานว่า อะไรกันแน่ที่ทำให้สิ่งๆ หนึ่งกลายเป็น harness แทนที่จะเป็นแค่สคคริปต์เรียก API ธรรมดา

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

ในทางวิศวกรรมซอฟต์แวร์ คำว่า Agent Harness คือโครงสร้างโค้ดที่อยู่รอบตัวโมเดล LLM ทำหน้าที่ควบคุมจังหวะการเรียกใช้เครื่องมือ จัดการการรับส่งข้อมูล รักษาบริบทของบทสนทนาให้อยู่ในร่องในรอย และแปลงข้อมูลดิบให้หน้าเว็บนำไปแสดงผลได้ ไม่ใช่ตัวโมเดลเอง การทำความเข้าใจขอบเขตนี้ช่วยให้นักพัฒนาไม่หลงไปกับคำโฆษณาชวนเชื่อและสร้างซอฟต์แวร์ที่ตอบโจทย์การใช้งานจริงได้แม่นยำขึ้น

นิยามของตัวสคฟอลฟ์ดิ้งนี้ประกอบด้วยการจัดการลูปการทำงานและการตัดสินใจ โดยเมื่อตรวจสอบทีละบรรทัดแล้ว สรุปได้ว่าโปรเจกต์นี้เป็น harness ของจริง แต่เป็นขนาดเล็กที่มีเครื่องมือเดียวคือ web_search แบบเต็มตัว ส่วนเวอร์ชันที่รองรับหลายเครื่องมือ เช่น การเข้าถึงไฟล์ การรันโค้ด หรือระบบสำรองผู้ให้บริการ ถือเป็นวิศวกรรมอีกระดับที่ยังไปไม่ถึง

ประเด็นสำคัญที่เปลี่ยน LLM ที่มีคำสั่งธรรมดาให้กลายเป็นเอเจนต์ มีรายละเอียดดังนี้:

  • ให้โมเดลเป็นผู้ตัดสินใจเองว่าจำเป็นต้องใช้ข้อมูลสดใหม่เมื่อใด
  • แยกแยะระหว่างคำถามใหม่กับคำถามต่อเนื่องเพื่อประหยัดเวลาและทรัพยากร
  • ควบคุมลูปการทำงานให้อยู่ภายในโครงสร้างที่ตรวจสอบได้

สถาปัตยกรรมระบบประกอบด้วยส่วนประกอบสำคัญดังนี้:

  • รันไทม์: Bun, Express 5
  • เอเจนต์: @earendil-works/pi-ai ร่วมกับ OpenRouter
  • การค้นหา: Tavily API
  • ฐานข้อมูล: PostgreSQL ร่วมกับ Prisma 7
  • การยืนยันตัวตน: Supabase (JWT)
  • ส่วนหน้า: React 19, Vite 8, assistant-ui, Tailwind CSS 4

โปรเจกต์นี้ถูกออกแบบให้เป็นเวอร์ชัน v0 ตั้งแต่แรก และมีแผนงานที่ชัดเจนสำหรับเวอร์ชัน v1 โดยโค้ดทั้งหมดถูกเปิดให้ศึกษาบน GitHub ที่ repository ชื่อ Saurabhsing21/Lumina รวมถึงเอกสารเกี่ยวกับลูปการทำงานในโฟลเดอร์ docs/AGENT_LOOP.md

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้