<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Copaw on Code &amp; Community</title><link>https://neng-lab.com/tags/copaw/</link><description>Recent content in Copaw on Code &amp; Community</description><generator>Hugo -- gohugo.io</generator><language>th-th</language><managingEditor>jitaret@gmail.com (เหน่ง)</managingEditor><webMaster>jitaret@gmail.com (เหน่ง)</webMaster><lastBuildDate>Tue, 14 Apr 2026 10:00:00 +0700</lastBuildDate><atom:link href="https://neng-lab.com/tags/copaw/index.xml" rel="self" type="application/rss+xml"/><item><title>Harness Engineering ตอนที่ 5: Multi-Agent System - มีเพื่อนตรวจสอบ</title><link>https://neng-lab.com/posts/harness-part-5/</link><pubDate>Tue, 14 Apr 2026 10:00:00 +0700</pubDate><author>jitaret@gmail.com (เหน่ง)</author><guid>https://neng-lab.com/posts/harness-part-5/</guid><description>&lt;img src="https://neng-lab.com/" alt="Featured image of post Harness Engineering ตอนที่ 5: Multi-Agent System - มีเพื่อนตรวจสอบ" /&gt;&lt;h1 id="harness-engineering-ตอนท-5-multi-agent-system---มเพอนตรวจสอบ"&gt;&lt;a href="#harness-engineering-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97-5-multi-agent-system---%e0%b8%a1%e0%b9%80%e0%b8%9e%e0%b8%ad%e0%b8%99%e0%b8%95%e0%b8%a3%e0%b8%a7%e0%b8%88%e0%b8%aa%e0%b8%ad%e0%b8%9a" class="header-anchor"&gt;&lt;/a&gt;Harness Engineering ตอนที่ 5: Multi-Agent System - มีเพื่อนตรวจสอบ
&lt;/h1&gt;&lt;h2 id="สวนนำ-ทำไม-ai-ตองม-เพอน"&gt;&lt;a href="#%e0%b8%aa%e0%b8%a7%e0%b8%99%e0%b8%99%e0%b8%b3-%e0%b8%97%e0%b8%b3%e0%b9%84%e0%b8%a1-ai-%e0%b8%95%e0%b8%ad%e0%b8%87%e0%b8%a1-%e0%b9%80%e0%b8%9e%e0%b8%ad%e0%b8%99" class="header-anchor"&gt;&lt;/a&gt;ส่วนนำ: ทำไม AI ต้องมี &amp;ldquo;เพื่อน&amp;rdquo;?
&lt;/h2&gt;&lt;p&gt;ลองนึกภาพว่าคุณกำลังสร้างบ้านหลังหนึ่ง คุณจะจ้างช่างคนเดียวให้ทำทุกอย่าง — ตั้งเสา เดินสายไฟ ติดกระเบื้อง ทาสี — หรือจ้างทีมช่างที่แต่ละคนเชี่ยวชาญเฉพาะทาง?&lt;/p&gt;
&lt;p&gt;คำตอบชัดเจนอยู่แล้วใช่ไหมครับ?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ทีมช่างที่เชี่ยวชาญเฉพาะทางทำงานเร็วกว่า ดีกว่า และมีโอกาสผิดพลาดน้อยกว่า&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;นี่แหละคือเหตุผลที่ &lt;strong&gt;Multi-Agent System&lt;/strong&gt; กำลังเป็นที่นิยมในโลก AI แต่คำถามคือ — ถ้าให้ AI หลายตัวทำงานพร้อมกัน เราจะควบคุมพวกมันอย่างไรให้ไม่ชนกัน ไม่ทำงานซ้ำซ้อน และไม่ทำให้ระบบพังทั้งหมด?&lt;/p&gt;
&lt;p&gt;ในตอนที่ 4 เราได้เรียนรู้ว่า &lt;strong&gt;Tools &amp;amp; Permissions&lt;/strong&gt; คือ &amp;ldquo;ล็อคประตู&amp;rdquo; ที่กำหนดขอบเขตให้ AI ตัวเดียว ในตอนที่ 5 นี้ เราจะมาดูกันว่า เมื่อมี AI หลายตัวทำงานร่วมกัน เราต้องมี &lt;strong&gt;&amp;ldquo;กฎบ้าน&amp;rdquo;&lt;/strong&gt; อะไรบ้าง&lt;/p&gt;
&lt;h2 id="multi-agent-system-คออะไร"&gt;&lt;a href="#multi-agent-system-%e0%b8%84%e0%b8%ad%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%a3" class="header-anchor"&gt;&lt;/a&gt;Multi-Agent System คืออะไร?
&lt;/h2&gt;&lt;h3 id="คำจำกดความ"&gt;&lt;a href="#%e0%b8%84%e0%b8%b3%e0%b8%88%e0%b8%b3%e0%b8%81%e0%b8%94%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1" class="header-anchor"&gt;&lt;/a&gt;คำจำกัดความ
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Multi-Agent System (MAS)&lt;/strong&gt; คือระบบที่มี AI Agent หลายตัวทำงานร่วมกันเพื่อบรรลุเป้าหมายเดียวกัน แต่ละตัวอาจมีบทบาท ความรู้ และ Tools ที่แตกต่างกัน&lt;/p&gt;
&lt;p&gt;ลองเปรียบเทียบให้เห็นภาพ:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;ระบบ&lt;/th&gt;
 &lt;th&gt;ลักษณะ&lt;/th&gt;
 &lt;th&gt;ตัวอย่าง&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Single Agent&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;AI ตัวเดียวทำทุกอย่าง&lt;/td&gt;
 &lt;td&gt;ChatGPT, Claude&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Multi-Agent&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;AI หลายตัวทำงานร่วมกัน&lt;/td&gt;
 &lt;td&gt;OpenClaw Sub-agents, CoPaw, Hermes Agent&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Swarm&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;AI จำนวนมากทำงานแบบกระจาย&lt;/td&gt;
 &lt;td&gt;AutoGen, CrewAI&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="ทำไมตองใชหลาย-agent"&gt;&lt;a href="#%e0%b8%97%e0%b8%b3%e0%b9%84%e0%b8%a1%e0%b8%95%e0%b8%ad%e0%b8%87%e0%b9%83%e0%b8%8a%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2-agent" class="header-anchor"&gt;&lt;/a&gt;ทำไมต้องใช้หลาย Agent?
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;1. ความเชี่ยวชาญเฉพาะทาง (Specialization)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Writer Agent เขียนบทความได้ดี&lt;/li&gt;
&lt;li&gt;Researcher Agent หาข้อมูลได้เร็ว&lt;/li&gt;
&lt;li&gt;Reviewer Agent ตรวจสอบความถูกต้องได้ละเอียด&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. ทำงานขนานได้ (Parallelization)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ส่งงานไปให้ 3 Agent ทำพร้อมกัน&lt;/li&gt;
&lt;li&gt;ลดเวลาจาก 30 นาที เหลือ 10 นาที&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. ตรวจสอบและถ่วงดุล (Checks &amp;amp; Balances)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agent ตัวหนึ่งสร้าง → Agent อีกตัวตรวจ&lt;/li&gt;
&lt;li&gt;ลดความผิดพลาดที่เกิดจาก bias ของ Agent เดียว&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class="alert alert-tip"&gt;
 &lt;div class="alert-header"&gt;
 &lt;span class="alert-icon"&gt;💡&lt;/span&gt;
 &lt;span class="alert-title"&gt;คำแนะนำ&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="alert-body"&gt;
 &lt;p&gt;อย่าใช้ Multi-Agent เพราะ &amp;ldquo;ดูเท่&amp;rdquo; ใช้เมื่องานซับซ้อนจริงๆ และสามารถแบ่งหน้าที่ได้ชัดเจน&lt;/p&gt;
 &lt;/div&gt;
 &lt;/blockquote&gt;
&lt;h2 id="โครงสราง-multi-agent-ทพบบอย"&gt;&lt;a href="#%e0%b9%82%e0%b8%84%e0%b8%a3%e0%b8%87%e0%b8%aa%e0%b8%a3%e0%b8%b2%e0%b8%87-multi-agent-%e0%b8%97%e0%b8%9e%e0%b8%9a%e0%b8%9a%e0%b8%ad%e0%b8%a2" class="header-anchor"&gt;&lt;/a&gt;โครงสร้าง Multi-Agent ที่พบบ่อย
&lt;/h2&gt;&lt;h3 id="1-hierarchical-pattern---ลกนองมหวหนา"&gt;&lt;a href="#1-hierarchical-pattern---%e0%b8%a5%e0%b8%81%e0%b8%99%e0%b8%ad%e0%b8%87%e0%b8%a1%e0%b8%ab%e0%b8%a7%e0%b8%ab%e0%b8%99%e0%b8%b2" class="header-anchor"&gt;&lt;/a&gt;1. Hierarchical Pattern - ลูกน้องมีหัวหน้า
&lt;/h3&gt;&lt;p&gt;โครงสร้างแบบลำดับชั้น มี Agent หลักคอยสั่งการ Agent รอง:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;┌─────────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;│ Manager Agent │ ← ตัดสินใจ ประสานงาน รวมผล
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;└────────┬────────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; ┌────┴────┬────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; ▼ ▼ ▼
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;┌───────┐ ┌───────┐ ┌───────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;│Writer │ │Research│ │Review │ ← ทำงานเฉพาะทาง
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;│Agent │ │Agent │ │Agent │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;└───────┘ └───────┘ └───────┘
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;ข้อดี:&lt;/strong&gt; ควบคุมง่าย ไม่ชนกัน
&lt;strong&gt;ข้อเสีย:&lt;/strong&gt; เป็นคอขวดถ้า Manager ช้า&lt;/p&gt;
&lt;h3 id="2-peer-to-peer-pattern---เพอนรวมงาน"&gt;&lt;a href="#2-peer-to-peer-pattern---%e0%b9%80%e0%b8%9e%e0%b8%ad%e0%b8%99%e0%b8%a3%e0%b8%a7%e0%b8%a1%e0%b8%87%e0%b8%b2%e0%b8%99" class="header-anchor"&gt;&lt;/a&gt;2. Peer-to-Peer Pattern - เพื่อนร่วมงาน
&lt;/h3&gt;&lt;p&gt;Agent ทุกตัวเท่าเทียมกัน คุยกันโดยตรง:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt; ┌───────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; │Agent A│ ←──→ Agent B
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt; └───┬───┘ ↑↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt; ↑↓ ┌───────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt; ┌───────┐ ←──┤Agent C│
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt; │Agent D│ └───────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt; └───────┘
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;ข้อดี:&lt;/strong&gt; ยืดหยุ่น ไม่พึ่งตัวกลาง
&lt;strong&gt;ข้อเสีย:&lt;/strong&gt; ซับซ้อน ติดตามยาก&lt;/p&gt;
&lt;h3 id="3-pipeline-pattern---สายพาน"&gt;&lt;a href="#3-pipeline-pattern---%e0%b8%aa%e0%b8%b2%e0%b8%a2%e0%b8%9e%e0%b8%b2%e0%b8%99" class="header-anchor"&gt;&lt;/a&gt;3. Pipeline Pattern - สายพาน
&lt;/h3&gt;&lt;p&gt;งานไหลจาก Agent หนึ่งไปอีกตัว ตามลำดับ:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;Research → Draft → Review → Publish
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;Agent Agent Agent Agent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;ข้อดี:&lt;/strong&gt; ชัดเจน ตรวจสอบง่าย
&lt;strong&gt;ข้อเสีย:&lt;/strong&gt; ถ้าตัวหนึ่งพัง ทั้งสายพานหยุด&lt;/p&gt;
&lt;h3 id="4-subagent-pattern---agent-ขางใน-agent"&gt;&lt;a href="#4-subagent-pattern---agent-%e0%b8%82%e0%b8%b2%e0%b8%87%e0%b9%83%e0%b8%99-agent" class="header-anchor"&gt;&lt;/a&gt;4. Subagent Pattern - Agent ข้างใน Agent
&lt;/h3&gt;&lt;p&gt;Agent หลัก spawn Agent ย่อยออกมาทำงานชั่วคราว:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;Main Agent
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; └── Subagent 1 (จัดการ Task A)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt; └── Subagent 2 (จัดการ Task B)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt; └── Subagent 3 (จัดการ Task C)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;ข้อดี:&lt;/strong&gt; ประหยัด context แยกงานได้ชัด
&lt;strong&gt;ข้อเสีย:&lt;/strong&gt; ต้องจัดการ lifecycle ของ subagent ให้ดี&lt;/p&gt;
&lt;h2 id="แพลตฟอรมทใช-multi-agent-จรง"&gt;&lt;a href="#%e0%b9%81%e0%b8%9e%e0%b8%a5%e0%b8%95%e0%b8%9f%e0%b8%ad%e0%b8%a3%e0%b8%a1%e0%b8%97%e0%b9%83%e0%b8%8a-multi-agent-%e0%b8%88%e0%b8%a3%e0%b8%87" class="header-anchor"&gt;&lt;/a&gt;แพลตฟอร์มที่ใช้ Multi-Agent จริง
&lt;/h2&gt;&lt;h3 id="openclaw-sub-agent-pattern"&gt;&lt;a href="#openclaw-sub-agent-pattern" class="header-anchor"&gt;&lt;/a&gt;OpenClaw: Sub-agent Pattern
&lt;/h3&gt;&lt;p&gt;OpenClaw ใช้รูปแบบ &lt;strong&gt;Main Agent → Specialist Agents&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ใน OpenClaw มี Specialist Agents หลายตัว:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;- writer : เขียนเนื้อหา
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;- researcher : หาข้อมูล
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;- reviewer : ตรวจสอบ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;- coder : เขียนโค้ด
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;วิธีทำงาน:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Main Agent วิเคราะห์คำขอจากผู้ใช้&lt;/li&gt;
&lt;li&gt;เลือก Specialist Agent ที่เหมาะสม&lt;/li&gt;
&lt;li&gt;รอผลลัพธ์กลับมา&lt;/li&gt;
&lt;li&gt;ส่งต่อให้ Reviewer Agent (ถ้าจำเป็น)&lt;/li&gt;
&lt;li&gt;สรุปผลตอบผู้ใช้&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;การตั้งค่า Harness ใน OpenClaw:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;agents&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;manager&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;router&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;allowed_agents&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;writer&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;researcher&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;reviewer&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;writer&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;content_creation&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;tools&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;file:write&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;web:search&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;sandbox&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;reviewer&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;quality_check&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;tools&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;file:read&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;read_only&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="copaw-agentscope-framework"&gt;&lt;a href="#copaw-agentscope-framework" class="header-anchor"&gt;&lt;/a&gt;CoPaw: AgentScope Framework
&lt;/h3&gt;&lt;p&gt;CoPaw สร้างบน &lt;strong&gt;AgentScope&lt;/strong&gt; ซึ่งออกแบบมาสำหรับ Multi-Agent โดยเฉพาะ:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ตัวอย่าง AgentScope&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;agentscope&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@agentscope.agents.agent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PlannerAgent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;reply&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@agentscope.agents.agent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ExecutorAgent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;reply&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# รันแบบ Pipeline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;planner&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;PlannerAgent&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;executor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ExecutorAgent&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;executor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;planner&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;จุดเด่นของ CoPaw:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;รองรับหลาย channels พร้อมกัน (Telegram, Discord, DingTalk, Feishu)&lt;/li&gt;
&lt;li&gt;Agent แต่ละตัวมี memory ร่วมผ่าน vector database&lt;/li&gt;
&lt;li&gt;มี gateway คอยจัดการ routing อัตโนมัติ&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="hermes-agent-isolated-subagents"&gt;&lt;a href="#hermes-agent-isolated-subagents" class="header-anchor"&gt;&lt;/a&gt;Hermes Agent: Isolated Subagents
&lt;/h3&gt;&lt;p&gt;Hermes Agent ใช้ &lt;strong&gt;spawn isolated subagents&lt;/strong&gt; สำหรับ parallel workstreams:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ใน Hermes สามารถ spawn subagent ได้&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;hermes agent spawn --task &lt;span class="s2"&gt;&amp;#34;research topic A&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;hermes agent spawn --task &lt;span class="s2"&gt;&amp;#34;research topic B&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;hermes agent spawn --task &lt;span class="s2"&gt;&amp;#34;research topic C&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;จุดเด่น:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;แต่ละ subagent มี context แยกกัน&lt;/li&gt;
&lt;li&gt;ใช้ &lt;code&gt;execute_code&lt;/code&gt; เพื่อ collapse multi-step pipelines&lt;/li&gt;
&lt;li&gt;รองรับ MCP servers สำหรับต่อขยาย tools&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ความเสยงของ-multi-agent-system"&gt;&lt;a href="#%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1%e0%b9%80%e0%b8%aa%e0%b8%a2%e0%b8%87%e0%b8%82%e0%b8%ad%e0%b8%87-multi-agent-system" class="header-anchor"&gt;&lt;/a&gt;ความเสี่ยงของ Multi-Agent System
&lt;/h2&gt;&lt;p&gt;เมื่อมี AI หลายตัวทำงานร่วมกัน ความเสี่ยงไม่ได้เพิ่มแค่ทวีคูล — มันอาจเพิ่มแบบ &lt;strong&gt;เอ็กซ์โพเนนเชียล&lt;/strong&gt;!&lt;/p&gt;
&lt;h3 id="1-coordination-failure---ชนกน"&gt;&lt;a href="#1-coordination-failure---%e0%b8%8a%e0%b8%99%e0%b8%81%e0%b8%99" class="header-anchor"&gt;&lt;/a&gt;1. Coordination Failure - &amp;ldquo;ชนกัน&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;Agent A สั่งให้ลบไฟล์ ขณะที่ Agent B กำลังอ่านไฟล์นั้นอยู่&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ผลลัพธ์:&lt;/strong&gt; ระบบ crash&lt;/p&gt;
&lt;h3 id="2-goal-drift---เปาหมายเบยง"&gt;&lt;a href="#2-goal-drift---%e0%b9%80%e0%b8%9b%e0%b8%b2%e0%b8%ab%e0%b8%a1%e0%b8%b2%e0%b8%a2%e0%b9%80%e0%b8%9a%e0%b8%a2%e0%b8%87" class="header-anchor"&gt;&lt;/a&gt;2. Goal Drift - &amp;ldquo;เป้าหมายเบี่ยง&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;Agent ตัวหนึ่งตีความเป้าหมายผิด แล้ว Agent ตัวอื่นๆ ก็ทำตามไปด้วย&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ผลลัพธ์:&lt;/strong&gt; งานเพี้ยนไปหมด&lt;/p&gt;
&lt;h3 id="3-echo-chamber---หองสะทอนเสยง"&gt;&lt;a href="#3-echo-chamber---%e0%b8%ab%e0%b8%ad%e0%b8%87%e0%b8%aa%e0%b8%b0%e0%b8%97%e0%b8%ad%e0%b8%99%e0%b9%80%e0%b8%aa%e0%b8%a2%e0%b8%87" class="header-anchor"&gt;&lt;/a&gt;3. Echo Chamber - &amp;ldquo;ห้องสะท้อนเสียง&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;Agent หลายตัวมี bias เหมือนกัน ตรวจสอบกันเองแต่ไม่เห็นข้อบกพร่อง&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ผลลัพธ์:&lt;/strong&gt; ความผิดพลาดผ่านการตรวจสอบ&lt;/p&gt;
&lt;h3 id="4-resource-contention---แยงกนใช"&gt;&lt;a href="#4-resource-contention---%e0%b9%81%e0%b8%a2%e0%b8%87%e0%b8%81%e0%b8%99%e0%b9%83%e0%b8%8a" class="header-anchor"&gt;&lt;/a&gt;4. Resource Contention - &amp;ldquo;แย่งกันใช้&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;Agent หลายตัวพยายามเขียนไฟล์เดียวกันพร้อมกัน&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ผลลัพธ์:&lt;/strong&gt; ข้อมูลเสียหาย&lt;/p&gt;
&lt;h3 id="5-cascading-failures---ลกโซหลด-อกครง"&gt;&lt;a href="#5-cascading-failures---%e0%b8%a5%e0%b8%81%e0%b9%82%e0%b8%8b%e0%b8%ab%e0%b8%a5%e0%b8%94-%e0%b8%ad%e0%b8%81%e0%b8%84%e0%b8%a3%e0%b8%87" class="header-anchor"&gt;&lt;/a&gt;5. Cascading Failures - &amp;ldquo;ลูกโซ่หลุด&amp;rdquo; (อีกครั้ง)
&lt;/h3&gt;&lt;p&gt;Agent ตัวหนึ่งผิดพลาด → ส่งข้อมูลผิดไปให้อีกตัว → ลามไปทั้งระบบ&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ผลลัพธ์:&lt;/strong&gt; ความเสียหายรุนแรง&lt;/p&gt;
&lt;h2 id="best-practices-สำหรบ-multi-agent-harness"&gt;&lt;a href="#best-practices-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%9a-multi-agent-harness" class="header-anchor"&gt;&lt;/a&gt;Best Practices สำหรับ Multi-Agent Harness
&lt;/h2&gt;&lt;h3 id="1--clear-role-definition---กำหนดบทบาทใหชด"&gt;&lt;a href="#1--clear-role-definition---%e0%b8%81%e0%b8%b3%e0%b8%ab%e0%b8%99%e0%b8%94%e0%b8%9a%e0%b8%97%e0%b8%9a%e0%b8%b2%e0%b8%97%e0%b9%83%e0%b8%ab%e0%b8%8a%e0%b8%94" class="header-anchor"&gt;&lt;/a&gt;1. 🎯 Clear Role Definition - กำหนดบทบาทให้ชัด
&lt;/h3&gt;&lt;p&gt;ทุก Agent ต้องรู้ว่าตัวเองทำอะไร ไม่ทำอะไร และไม่ยุ่งเรื่องของ Agent อื่น&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ตัวอย่าง Role ที่ชัดเจน:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Planner Agent
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; หน้าที่: วางแผนและแบ่งงาน
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; ทำได้: สร้าง checklist, เลือก agent ที่เหมาะสม
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; ห้ามทำ: รันโค้ด, เขียนเนื้อหาโดยตรง
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Writer Agent
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; หน้าที่: สร้างเนื้อหาตามแผน
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; ทำได้: เขียนไฟล์, ค้นหาข้อมูล
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; ห้ามทำ: ตัดสินใจเองว่าจะเขียนอะไร
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Reviewer Agent
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; หน้าที่: ตรวจสอบคุณภาพ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; ทำได้: อ่านไฟล์, ให้ feedback
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; ห้ามทำ: แก้ไขไฟล์โดยตรง
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2--standardized-communication---ภาษากลาง"&gt;&lt;a href="#2--standardized-communication---%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b8%81%e0%b8%a5%e0%b8%b2%e0%b8%87" class="header-anchor"&gt;&lt;/a&gt;2. 🗣️ Standardized Communication - ภาษากลาง
&lt;/h3&gt;&lt;p&gt;Agent ทุกตัวต้องสื่อสารด้วยรูปแบบเดียวกัน&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ตัวอย่าง Message Format:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;from&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;writer_agent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;to&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;reviewer_agent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;task_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;article-2026-001&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;deliverable&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;...&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;ready_for_review&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3--shared-state-management---บอรดกลาง"&gt;&lt;a href="#3--shared-state-management---%e0%b8%9a%e0%b8%ad%e0%b8%a3%e0%b8%94%e0%b8%81%e0%b8%a5%e0%b8%b2%e0%b8%87" class="header-anchor"&gt;&lt;/a&gt;3. 📝 Shared State Management - บอร์ดกลาง
&lt;/h3&gt;&lt;p&gt;Agent ทุกตัวต้องเห็นสถานะงานเดียวกัน&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;เครื่องมือที่ใช้:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shared Memory&lt;/strong&gt;: vector database หรือ knowledge graph&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task Board&lt;/strong&gt;: บอร์ดที่แสดงสถานะแต่ละ task&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Version Control&lt;/strong&gt;: เก็บทุกการเปลี่ยนแปลงแบบมี history&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;task_board&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;task_001&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;in_progress&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;owner&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;writer_agent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;dependencies&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;research_001&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;last_updated&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2026-04-14T10:00:00Z&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4--isolation-boundaries---กำแพงกน"&gt;&lt;a href="#4--isolation-boundaries---%e0%b8%81%e0%b8%b3%e0%b9%81%e0%b8%9e%e0%b8%87%e0%b8%81%e0%b8%99" class="header-anchor"&gt;&lt;/a&gt;4. 🔒 Isolation Boundaries - กำแพงกั้น
&lt;/h3&gt;&lt;p&gt;แต่ละ Agent ต้องทำงานในขอบเขตของตัวเอง&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;วิธีทำ:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sandbox ต่อ Agent&lt;/strong&gt;: แยก file system ให้แต่ละ agent&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool Restrictions&lt;/strong&gt;: agent ตัวหนึ่งใช้ได้ไม่ใช่ว่าอีกตัวใช้ได้&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network Segmentation&lt;/strong&gt;: จำกัด egress/ingress ต่อ agent&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Docker Compose สำหรับ Multi-Agent&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;services&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ai-agent&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;./workspace/writer:/workspace&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;network_mode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;none &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# ไม่มี internet&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;researcher&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ai-agent&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;./workspace/research:/workspace&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;networks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;limited-net&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="5--validation-gate---ดานตรวจ"&gt;&lt;a href="#5--validation-gate---%e0%b8%94%e0%b8%b2%e0%b8%99%e0%b8%95%e0%b8%a3%e0%b8%a7%e0%b8%88" class="header-anchor"&gt;&lt;/a&gt;5. 🧪 Validation Gate - ด่านตรวจ
&lt;/h3&gt;&lt;p&gt;ก่อนส่งผลลัพธ์ออกไป ต้องผ่านการตรวจสอบ&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Checklist ก่อน Deliver:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; ผลลัพธ์ตรงตาม format ที่กำหนด&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; ไม่มีข้อมูลลับรั่วไหล&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; ไม่มีคำสั่งอันตราย&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; มีการอ้างอิงที่ถูกต้อง&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; ผ่านการตรวจสอบจาก Reviewer Agent&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="6--timeout--circuit-breaker---ปองกนแฮงค"&gt;&lt;a href="#6--timeout--circuit-breaker---%e0%b8%9b%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b8%99%e0%b9%81%e0%b8%ae%e0%b8%87%e0%b8%84" class="header-anchor"&gt;&lt;/a&gt;6. ⏱️ Timeout &amp;amp; Circuit Breaker - ป้องกันแฮงค์
&lt;/h3&gt;&lt;p&gt;ถ้า Agent ตัวหนึ่งทำงานนานเกินไป ต้องมีกลไกหยุด&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;orchestration&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;timeout_per_agent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;max_retries&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;circuit_breaker&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;failure_threshold&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;recovery_time&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="7--human-in-the-loop---คนตรวจสอบจดสำคญ"&gt;&lt;a href="#7--human-in-the-loop---%e0%b8%84%e0%b8%99%e0%b8%95%e0%b8%a3%e0%b8%a7%e0%b8%88%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%88%e0%b8%94%e0%b8%aa%e0%b8%b3%e0%b8%84%e0%b8%8d" class="header-anchor"&gt;&lt;/a&gt;7. 👤 Human-in-the-Loop - คนตรวจสอบจุดสำคัญ
&lt;/h3&gt;&lt;p&gt;อย่าปล่อยให้ Multi-Agent ทำงานโดยไม่มีคนดูเลย&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;จุดที่ควรมีคนตรวจ:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ก่อน deploy ผลลัพธ์สุดท้าย&lt;/li&gt;
&lt;li&gt;เมื่อ Agent ตัวหนึ่ง reject ผลงานของอีกตัว&lt;/li&gt;
&lt;li&gt;เมื่อมีการร้องขอ permissions ที่สูงขึ้น&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ตารางเปรยบเทยบแพลตฟอรม"&gt;&lt;a href="#%e0%b8%95%e0%b8%b2%e0%b8%a3%e0%b8%b2%e0%b8%87%e0%b9%80%e0%b8%9b%e0%b8%a3%e0%b8%a2%e0%b8%9a%e0%b9%80%e0%b8%97%e0%b8%a2%e0%b8%9a%e0%b9%81%e0%b8%9e%e0%b8%a5%e0%b8%95%e0%b8%9f%e0%b8%ad%e0%b8%a3%e0%b8%a1" class="header-anchor"&gt;&lt;/a&gt;ตารางเปรียบเทียบแพลตฟอร์ม
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;ฟีเจอร์&lt;/th&gt;
 &lt;th&gt;OpenClaw&lt;/th&gt;
 &lt;th&gt;CoPaw&lt;/th&gt;
 &lt;th&gt;Hermes Agent&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Pattern&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Sub-agents&lt;/td&gt;
 &lt;td&gt;AgentScope&lt;/td&gt;
 &lt;td&gt;Isolated Subagents&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Parallel&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;จำกัด&lt;/td&gt;
 &lt;td&gt;เต็มรูปแบบ&lt;/td&gt;
 &lt;td&gt;Spawn ได้ไม่จำกัด&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Memory&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Shared vector DB&lt;/td&gt;
 &lt;td&gt;Shared memory&lt;/td&gt;
 &lt;td&gt;Cross-session recall&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Channels&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;8+&lt;/td&gt;
 &lt;td&gt;10+&lt;/td&gt;
 &lt;td&gt;15+&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Sandbox&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;มี&lt;/td&gt;
 &lt;td&gt;มี&lt;/td&gt;
 &lt;td&gt;มี&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MCP&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;ไม่มี&lt;/td&gt;
 &lt;td&gt;ไม่มี&lt;/td&gt;
 &lt;td&gt;รองรับ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Voice&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;ไม่มี&lt;/td&gt;
 &lt;td&gt;มี&lt;/td&gt;
 &lt;td&gt;มี&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="สรปบทความ"&gt;&lt;a href="#%e0%b8%aa%e0%b8%a3%e0%b8%9b%e0%b8%9a%e0%b8%97%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1" class="header-anchor"&gt;&lt;/a&gt;สรุปบทความ
&lt;/h2&gt;&lt;p&gt;มาถึงตอนจบแล้วครับ! สรุปสิ่งที่ได้เรียนรู้วันนี้:&lt;/p&gt;
&lt;h3 id="สงทไดเรยนร"&gt;&lt;a href="#%e0%b8%aa%e0%b8%87%e0%b8%97%e0%b9%84%e0%b8%94%e0%b9%80%e0%b8%a3%e0%b8%a2%e0%b8%99%e0%b8%a3" class="header-anchor"&gt;&lt;/a&gt;สิ่งที่ได้เรียนรู้:
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Multi-Agent System คืออะไร&lt;/strong&gt; — ระบบที่มี AI หลายตัวทำงานร่วมกัน แต่ละตัวมีบทบาทเฉพาะทาง&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;โครงสร้างหลัก 4 แบบ:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hierarchical — มีหัวหน้าคอยสั่งการ&lt;/li&gt;
&lt;li&gt;Peer-to-Peer — เท่าเทียมกัน&lt;/li&gt;
&lt;li&gt;Pipeline — งานไหลตามลำดับ&lt;/li&gt;
&lt;li&gt;Subagent — Agent ข้างใน Agent&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;แพลตฟอร์มจริง:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt; — Main Agent → Specialist Agents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CoPaw&lt;/strong&gt; — AgentScope framework, multi-channel&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt; — Spawn isolated subagents, MCP support&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ความเสี่ยงหลัก:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Coordination Failure, Goal Drift, Echo Chamber&lt;/li&gt;
&lt;li&gt;Resource Contention, Cascading Failures&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Best Practices 7 ข้อ:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clear Role Definition&lt;/li&gt;
&lt;li&gt;Standardized Communication&lt;/li&gt;
&lt;li&gt;Shared State Management&lt;/li&gt;
&lt;li&gt;Isolation Boundaries&lt;/li&gt;
&lt;li&gt;Validation Gate&lt;/li&gt;
&lt;li&gt;Timeout &amp;amp; Circuit Breaker&lt;/li&gt;
&lt;li&gt;Human-in-the-Loop&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="การนำไปใช"&gt;&lt;a href="#%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%99%e0%b8%b3%e0%b9%84%e0%b8%9b%e0%b9%83%e0%b8%8a" class="header-anchor"&gt;&lt;/a&gt;การนำไปใช้:
&lt;/h3&gt;&lt;p&gt;จากประสบการณ์ของเหน่ง:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;เริ่มจาก &lt;strong&gt;Single Agent&lt;/strong&gt; ก่อน ค่อยๆ เพิ่มเมื่องานซับซ้อนขึ้น&lt;/li&gt;
&lt;li&gt;กำหนด &lt;strong&gt;role ให้ชัดเจน&lt;/strong&gt; ก่อน deploy&lt;/li&gt;
&lt;li&gt;ใช้ &lt;strong&gt;sandbox แยก&lt;/strong&gt; สำหรับแต่ละ agent&lt;/li&gt;
&lt;li&gt;มี &lt;strong&gt;validation gate&lt;/strong&gt; ก่อนส่งผลลัพธ์ออกไป&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;บทความนี้เป็นส่วนหนึ่งของซีรีส์ &amp;ldquo;Harness Engineering&amp;rdquo; ซึ่งสำรวจแนวคิดและเทคนิคในการใช้ AI ให้เกิดประสิทธิภาพสูงสุด&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;ตอนที่ 1: &lt;a class="link" href="https://neng-lab.com/posts/harness-part-1/" &gt;Harness Engineering ตอนที่ 1: ทำไม AI ต้องมี Harness?&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;ตอนที่ 2: &lt;a class="link" href="https://neng-lab.com/posts/harness-part-2/" &gt;Harness Engineering ตอนที่ 2: Prompt คือ Control Plane (ไม่ใช่ Input Box)&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;ตอนที่ 3: &lt;a class="link" href="https://neng-lab.com/posts/harness-part-3/" &gt;Harness Engineering ตอนที่ 3: Query Loop - หัวใจของระบบ&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;ตอนที่ 4: &lt;a class="link" href="https://neng-lab.com/posts/harness-part-4/" &gt;Harness Engineering ตอนที่ 4: Tools &amp;amp; Permissions - กำหนดขอบเขต AI&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;ตอนที่ 5: &lt;a class="link" href="https://neng-lab.com/posts/harness-part-5/" &gt;Harness Engineering ตอนที่ 5: Multi-Agent System - มีเพื่อนตรวจสอบ&lt;/a&gt; (บทความนี้)&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;บทความนี้เป็นส่วนหนึ่งของซีรีส์ Harness Engineering จาก Code &amp;amp; Community Blog&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-อางอง"&gt;&lt;a href="#-%e0%b8%ad%e0%b8%b2%e0%b8%87%e0%b8%ad%e0%b8%87" class="header-anchor"&gt;&lt;/a&gt;📚 อ้างอิง
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;OWASP. (2026). &lt;em&gt;OWASP Top 10 for Agentic Applications 2026&lt;/em&gt;. &lt;a class="link" href="https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026" target="_blank" rel="noopener"
 &gt;https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AgentScope Team. (2026). &lt;em&gt;AgentScope Documentation — Multi-Agent Programming&lt;/em&gt;. &lt;a class="link" href="https://agentscope.readthedocs.io/" target="_blank" rel="noopener"
 &gt;https://agentscope.readthedocs.io/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nous Research. (2026). &lt;em&gt;Hermes Agent Documentation&lt;/em&gt;. &lt;a class="link" href="https://hermes-agent.nousresearch.com/docs" target="_blank" rel="noopener"
 &gt;https://hermes-agent.nousresearch.com/docs&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;OpenClaw. (2026). &lt;em&gt;OpenClaw Documentation — Sub-agent Pattern&lt;/em&gt;. &lt;a class="link" href="https://docs.openclaw.ai/" target="_blank" rel="noopener"
 &gt;https://docs.openclaw.ai/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Anthropic. (2025). &lt;em&gt;Building Effective Multi-Agent Systems&lt;/em&gt;. &lt;a class="link" href="https://www.anthropic.com/engineering/multi-agent" target="_blank" rel="noopener"
 &gt;https://www.anthropic.com/engineering/multi-agent&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Microsoft Research. (2025). &lt;em&gt;AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation&lt;/em&gt;. &lt;a class="link" href="https://arxiv.org/abs/2308.08155" target="_blank" rel="noopener"
 &gt;https://arxiv.org/abs/2308.08155&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Google DeepMind. (2025). &lt;em&gt;Multi-Agent Reinforcement Learning: Fundamentals and Recent Advances&lt;/em&gt;. &lt;a class="link" href="https://deepmind.google/discover/blog/" target="_blank" rel="noopener"
 &gt;https://deepmind.google/discover/blog/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chip Huyen. (2025). &lt;em&gt;AI Engineering&lt;/em&gt; (O&amp;rsquo;Reilly). บทที่ 9: Multi-Agent Systems and Orchestration.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Martin Fowler. (2025). &lt;em&gt;Patterns for Distributed Systems&lt;/em&gt;. &lt;a class="link" href="https://martinfowler.com/articles/patterns-of-distributed-systems.html" target="_blank" rel="noopener"
 &gt;https://martinfowler.com/articles/patterns-of-distributed-systems.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Amazon Web Services. (2025). &lt;em&gt;Best Practices for Multi-Agent AI Architectures&lt;/em&gt;. &lt;a class="link" href="https://aws.amazon.com/blogs/machine-learning/" target="_blank" rel="noopener"
 &gt;https://aws.amazon.com/blogs/machine-learning/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item></channel></rss>