<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Anthropic &#8211; Few Steps &#8211; ก้าวสั้นๆ แต่ไปเรื่อยๆ</title>
	<atom:link href="https://myifew.com/tag/anthropic/feed/" rel="self" type="application/rss+xml" />
	<link>https://myifew.com</link>
	<description></description>
	<lastBuildDate>Thu, 09 Jul 2026 16:18:26 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://myifew.com/wp-content/uploads/2018/07/cropped-logo6-ts-32x32.png</url>
	<title>Anthropic &#8211; Few Steps &#8211; ก้าวสั้นๆ แต่ไปเรื่อยๆ</title>
	<link>https://myifew.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>วิธีใช้ Fable 5 แบบประหยัด Token</title>
		<link>https://myifew.com/7793/how-optimize-token-use-fable5-advisor/</link>
					<comments>https://myifew.com/7793/how-optimize-token-use-fable5-advisor/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Thu, 09 Jul 2026 16:18:24 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AI Agent]]></category>
		<category><![CDATA[Anthropic]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[Fable 5]]></category>
		<category><![CDATA[Token Optimization]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=7793</guid>

					<description><![CDATA[ผมไปเจอโพสต์ของ ClaudeDevs เรื่องการใช้ Fable 5 เป็น advisor ให้ Sonnet 5 ทำงานหลัก แล้วรู้สึกว่านี่คือ pattern ที่ตอบโจทย์ agent workload มาก เพราะเราไม่จำเป็นต้องเอาโมเดลแพงที่สุดไปเผา token กับงานอ่าน/ทำทุกบรรทัด]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">โพสต์ใน X ของ ClaudeDevs ที่พูดถึง pattern การใช้ Fable 5 แบบประหยัด token ผมรู้สึกว่าน่าสนใจมาก เพราะมันแตะปัญหาที่คนทำ AI agent เจอกันจริงๆ คือถ้าเราใช้โมเดลฉลาดสุดทำทุกอย่าง ทั้งคิด อ่านไฟล์ อ่านเว็บ เรียก tool แก้โค้ด รัน test และสรุปผล จะใช้โทเค็นเยอะมาก (ต้นทุนสูงมาก) ทั้งที่หลาย step ไม่ได้ต้องใช้ความฉลาดระดับสูงตลอดเวลา</p>



<p class="wp-block-paragraph">แนวคิดที่ Anthropic ยกมาคือ ให้ Sonnet 5 เป็น executor ทำงานหลักใน loop ปกติ แล้วให้ Fable 5 เป็น advisor ที่ถูกเรียกเฉพาะตอนต้องใช้ judgment สูง เช่น วางแผน ตัดสินใจ architecture แก้ทางเมื่อเริ่มหลุด หรือ review ก่อนจบงาน ผมว่ามันเป็น pattern ที่ practical มาก เพราะมันไม่ได้พยายามลดคุณภาพด้วยการใช้โมเดลเล็กอย่างเดียว แต่ใช้โมเดลฉลาดให้ถูกจังหวะมากกว่า</p>



<span id="more-7793"></span>



<p class="wp-block-paragraph"><em>หมายเหตุ: บทความนี้ฟิวส์กับเอเจ้นชมพูช่วยกันเรียบเรียง โดยอิงจาก<a href="https://x.com/claudedevs/status/2074606058128224365" target="_blank" rel="noreferrer noopener">โพสต์ของ ClaudeDevs บน X</a>, เอกสาร Advisor tool ของ Anthropic และ Claude Cookbook แล้วนำมาตีความเป็นแนวทางใช้งานจริงสำหรับคนทำ AI agent / coding agent</em></p>



<p class="wp-block-paragraph">ต้นทางของเรื่องนี้สรุปไว้สั้นมากว่า หนึ่งใน pattern ที่ Anthropic ใช้กับ Fable 5 คือ “ใช้ Fable 5 เป็น advisor” โดย executor อย่าง Sonnet 5 จะเรียก Fable 5 เพื่อขอคำแนะนำ ดังนั้นการทำงานส่วนใหญ่จะใช้ token ไปกับ executor ที่ Sonnet 5 ทำมากกว่า</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1992" height="872" src="https://myifew.com/wp-content/uploads/2026/07/fable5-advisor-pattern.jpg" alt="Fable 5 advisor pattern จากโพสต์ ClaudeDevs" class="wp-image-7791" srcset="https://myifew.com/wp-content/uploads/2026/07/fable5-advisor-pattern.jpg 1992w, https://myifew.com/wp-content/uploads/2026/07/fable5-advisor-pattern-1024x448.jpg 1024w, https://myifew.com/wp-content/uploads/2026/07/fable5-advisor-pattern-1200x525.jpg 1200w, https://myifew.com/wp-content/uploads/2026/07/fable5-advisor-pattern-768x336.jpg 768w, https://myifew.com/wp-content/uploads/2026/07/fable5-advisor-pattern-1536x672.jpg 1536w, https://myifew.com/wp-content/uploads/2026/07/fable5-advisor-pattern-542x237.jpg 542w, https://myifew.com/wp-content/uploads/2026/07/fable5-advisor-pattern-1084x475.jpg 1084w, https://myifew.com/wp-content/uploads/2026/07/fable5-advisor-pattern-792x347.jpg 792w, https://myifew.com/wp-content/uploads/2026/07/fable5-advisor-pattern-1230x538.jpg 1230w" sizes="(max-width: 1992px) 100vw, 1992px" /><figcaption class="wp-element-caption">ภาพจากโพสต์ ClaudeDevs: Sonnet 5 ทำหน้าที่ executor ใน main loop และเรียก Fable 5 เป็น advisor แบบ on-demand</figcaption></figure>



<h2 class="wp-block-heading">ต้องเข้าใจก่อนว่า agent workload ไม่ต้องใช้โมเดลฉลาดทุกงาน</h2>



<p class="wp-block-paragraph">เวลาพูดถึง AI coding agent หรือ agent ที่ทำงานหลาย step ผมคิดว่าหลายคนมักติดกับดักว่า “ใช้โมเดลฉลาดสุดไปเลยจะได้จบ” ซึ่งจริงในบางงาน แต่ไม่จริงเสมอไป โดยเฉพาะงานยาวๆ ที่มี token จำนวนมากถูกใช้ไปกับงาน mechanical มากกว่า reasoning</p>



<p class="wp-block-paragraph">ในงานหนึ่งๆ มักมี 2 ส่วนปนกัน:</p>



<ul class="wp-block-list">
<li><strong>ส่วนที่ต้องคิดจริง:</strong> แตกโจทย์, ตีความ requirement, เลือก architecture, ประเมิน trade-off, หาทางออกตอนติดปัญหา</li>



<li><strong>ส่วนที่ต้องทำเยอะ:</strong> อ่านไฟล์, อ่านเว็บ, grep โค้ด, ดู log, แก้ไฟล์, รัน test, สรุป output จาก tool</li>
</ul>



<p class="wp-block-paragraph">ถ้าใช้โมเดลระดับ frontier ทำทั้งสองส่วนทั้งหมด ก็โครตจะเปลือง token เลยครับ เพราะถูกใช้ไปกับงานทั่วไปที่ไม่ต้องการ frontier reasoning ทุกบรรทัด เช่น อ่านหน้าเว็บยาวๆ หรือไล่ log หลายพันบรรทัด ตรงนี้เองที่ทำให้ค่าใช้จ่ายสูงโดยไม่จำเป็น</p>



<p class="wp-block-paragraph">ผมขอเปรียบให้เห็นภาพง่ายๆ เหมือนเอา senior engineer ไปนั่งอ่าน log ทุกบรรทัดเอง ซึ่งงานเขาควรเข้ามาตอนวางทิศทาง ตรวจจุดเสี่ยง หรือช่วยตัดสินใจเรื่องที่ถ้าผิดแล้วจะเสียเวลาเยอะ ส่วนงานอ่าน/เก็บข้อมูล/ทำตามขั้นตอนให้คนที่เร็วกว่าและต้นทุนต่ำกว่าช่วยทำได้</p>



<p class="wp-block-paragraph">หรือเทียบในงานก่อสร้าง ก็เหมือนเอาวิศะไปก่ออิฐฉาบปูนแทนคนงานก่อสร้าง แทนที่วิศวะจะออกแบบ วางแผน และคนงานจะเป็นคนทำ</p>



<figure class="wp-block-image size-large"><img alt="" decoding="async" width="1200" height="622" src="https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ-1200x622.jpg" alt="" class="wp-image-7797" srcset="https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ-1200x622.jpg 1200w, https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ-1024x531.jpg 1024w, https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ-768x398.jpg 768w, https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ-1536x797.jpg 1536w, https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ-2048x1062.jpg 2048w, https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ-542x281.jpg 542w, https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ-1084x562.jpg 1084w, https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ-792x411.jpg 792w, https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ-1230x638.jpg 1230w, https://myifew.com/wp-content/uploads/2026/07/HMp6DWEa4AE10vQ.jpg 2194w" sizes="(max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">วิธ๊พื้นฐานหน่อย คือ ใช้ Fable 5 ทำหน้าที่วางแผน แล้วมอบหมายงานให้ worker Sonnet 5 ทำ</figcaption></figure>



<h2 class="wp-block-heading">เแนวคิด: Sonnet 5 เป็นคนทำงานหลัก ส่วน Fable 5 เป็นคนให้คำปรึกษา</h2>



<p class="wp-block-paragraph">จาก diagram ในโพสต์ของ ClaudeDevs โครงสร้างคือ Sonnet 5 ทำหน้าที่ executor และรัน main loop ทุก turn ส่วน Fable 5 เป็น advisor ที่ถูกเรียกผ่าน tool call เฉพาะเมื่อจำเป็น พูดง่ายๆ คือ Sonnet ทำงานหนัก แต่ Fable ช่วยคิดตอนที่ต้องคิดอย่างมีเหตุมีผล</p>



<p class="wp-block-paragraph">เอกสาร <a href="https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool" target="_blank" rel="noreferrer noopener">Advisor tool ของ Anthropic</a> อธิบายแนวคิดนี้ว่า executor model ที่เร็วกว่า/ต้นทุนต่ำกว่า สามารถ consult advisor model ที่ฉลาดกว่า mid-generation ได้ โดย advisor จะเห็น conversation transcript ทั้งหมด แล้วส่งคำแนะนำกลับมาให้ executor ทำงานต่อ</p>



<p class="wp-block-paragraph">จุดที่ผมว่าสำคัญคือ advisor ไม่ได้มาแทน executor แต่เป็นเหมือน reviewer หรือ architect ที่ถูกเรียกในจังหวะที่ควรเรียก ทำให้เรายังได้คุณภาพจากโมเดลใหญ่ในการตัดสินใจสำคัญๆ แต่ไม่ต้องจ่ายราคาโมเดลใหญ่กับทุกการทำงานง่ายๆ หลายงาน</p>



<h2 class="wp-block-heading">แล้ว Advisor tool ทำงานยังไง?</h2>



<p class="wp-block-paragraph">เมื่อเราเพิ่ม advisor tool เข้าไปใน <code>tools</code> array แล้ว ตัว executor จะตัดสินใจเองว่าจะเรียก advisor เมื่อไรเหมือน tool อื่นๆ แต่การ call นี้เกิดฝั่ง server ภายใน request เดียว ไม่ใช่ client ต้อง orchestration เองหลายรอบ</p>



<ul class="wp-block-list">
<li>executor สร้าง <code>server_tool_use</code> ชื่อ <code>advisor</code></li>



<li>server ส่ง transcript ทั้งหมดให้ advisor model</li>



<li>advisor ส่งคำแนะนำกลับมาเป็น <code>advisor_tool_result</code></li>



<li>executor ใช้คำแนะนำนี้ทำงานต่อจนจบ</li>
</ul>



<p class="wp-block-paragraph">ตัวอย่างแบบย่อจากเอกสาร Anthropic:</p>



<pre class="wp-block-code"><code>client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    betas=&#91;"advisor-tool-2026-03-01"],
    tools=&#91;
        {
            "type": "advisor_20260301",
            "name": "advisor",
            "model": "claude-opus-4-8",
        }
    ],
    messages=&#91;
        {
            "role": "user",
            "content": "Build a concurrent worker pool in Go with graceful shutdown.",
        }
    ],
)</code></pre>



<p class="wp-block-paragraph">ถ้านำ concept นี้มาเทียบกับโพสต์ Fable 5 ภาพในหัวจะประมาณนี้:</p>



<pre class="wp-block-code"><code>tools=&#91;
    {
        "type": "advisor_20260301",
        "name": "advisor",
        "model": "claude-fable-5",
        "max_tokens": 2048,
        "max_uses": 2,
    }
]</code></pre>



<p class="wp-block-paragraph">ตรงนี้ <code>max_tokens</code> กับ <code>max_uses</code> สำคัญมาก เพราะถ้าเปิด advisor ไว้แบบไม่จำกัด มันอาจกลายเป็น “เรียกโมเดลแพงบ่อยขึ้น” แทนที่จะช่วยประหยัด token</p>



<figure class="wp-block-image size-large"><img alt="" decoding="async" width="1200" height="1072" src="https://myifew.com/wp-content/uploads/2026/07/HMp4vKMakAAEa3Q-1200x1072.jpg" alt="" class="wp-image-7796" srcset="https://myifew.com/wp-content/uploads/2026/07/HMp4vKMakAAEa3Q-1200x1072.jpg 1200w, https://myifew.com/wp-content/uploads/2026/07/HMp4vKMakAAEa3Q-1024x915.jpg 1024w, https://myifew.com/wp-content/uploads/2026/07/HMp4vKMakAAEa3Q-768x686.jpg 768w, https://myifew.com/wp-content/uploads/2026/07/HMp4vKMakAAEa3Q-542x484.jpg 542w, https://myifew.com/wp-content/uploads/2026/07/HMp4vKMakAAEa3Q-1084x968.jpg 1084w, https://myifew.com/wp-content/uploads/2026/07/HMp4vKMakAAEa3Q-792x707.jpg 792w, https://myifew.com/wp-content/uploads/2026/07/HMp4vKMakAAEa3Q-1230x1099.jpg 1230w, https://myifew.com/wp-content/uploads/2026/07/HMp4vKMakAAEa3Q.jpg 1274w" sizes="(max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">การใช้ Sonnet 5 เป็น Excutor แล้วมี Fable 5 เป็น advisor ทำคะแนนได้ 92% จากการใช้ Fable 5 อย่างเดียว แต่จะใช้เงินแค่ 63% เมื่อเทียบกับใช้ Fable 5 อย่างเดียวเช่นกัน</figcaption></figure>



<h2 class="wp-block-heading">วิธีใช้ให้ประหยัด token จริง</h2>



<h3 class="wp-block-heading">1. ให้ executor อ่านบริบทก่อน แล้วค่อยเรียก advisor</h3>



<p class="wp-block-paragraph">ผมคิดว่าเราไม่ควรเรียก Fable 5 ตั้งแต่ครั้งแรกที่ยังไม่รู้อะไรเลย เพราะคำแนะนำจะกว้างเกินไป วิธีที่ดีกว่าคือให้ Sonnet 5 อ่านทำความเข้าใจบริบทแรกของเราก่อน เช่น requirement, โครง repo, error log หรือไฟล์หลัก แล้วค่อยเรียก Fable 5 เพื่อช่วยวางแผน</p>



<h3 class="wp-block-heading">2. ใช้ advisor ในจุดที่ตัดสินใจผิดแล้วแพง</h3>



<p class="wp-block-paragraph">จุดที่คุ้มจะเรียก advisor คือจุดที่ถ้าคิดผิดแล้วต้องแก้งานเยอะ เช่น:</p>



<ul class="wp-block-list">
<li>เลือก architecture หรือ migration strategy</li>



<li>ตีความ requirement ที่กำกวม</li>



<li>เจอ test fail ซ้ำๆ แล้วแนวทางเดิมแก้ไม่ได้ หรือไม่ครอบคลุม</li>



<li>ก่อนจบงาน เพื่อ review ว่าหลุด security, edge case หรือ test อะไรไหม</li>
</ul>



<h3 class="wp-block-heading">3. จำกัดจำนวนครั้งด้วย <code>max_uses</code></h3>



<p class="wp-block-paragraph">ถ้างานหนึ่งควรเรียก advisor แค่ 1–2 ครั้ง ก็ตั้ง <code>max_uses</code> ไว้เลย จะช่วยไม่ให้ executor เรียก advisor ถี่เกินไปใน request เดียว</p>



<h3 class="wp-block-heading">4. จำกัดคำตอบของ advisor ด้วย <code>max_tokens</code></h3>



<p class="wp-block-paragraph">เอกสาร Anthropic แนะนำจุดเริ่มต้นที่ <code>max_tokens: 2048</code> สำหรับ advisor output cap โดยระบุว่าในการทดสอบของเขา การตั้ง cap นี้ลด output ของ advisor ได้มากเมื่อเทียบกับการไม่ตั้ง และยังไม่เห็นว่าคุณภาพลดลงเท่าไรอย่างชัดเจน (quality degradation) แต่ประโยคสำคัญคือ เราต้องตรวจสอบกับ workload ของตัวเองเสมอนะ เพื่อป้องกันความผิดพลาด เนื่องจากจำกัด token (ผมเคยเจอบ่อยว่า output งานออกมาได้ไม่ถูกต้อง หรือโค้ดไม่ครบ)</p>



<h3 class="wp-block-heading">5. เปิด caching เฉพาะงานที่เรียก advisor หลายครั้ง</h3>



<p class="wp-block-paragraph">ใน docs ระบุว่า advisor-side caching จะเริ่มคุ้มเมื่อคาดว่าจะมี advisor call ประมาณ 3 ครั้งขึ้นไปใน conversation เดียว ถ้างานสั้นๆ เรียกครั้งเดียวหรือสองครั้ง การเปิด cache อาจไม่คุ้ม เพราะ cache write ก็มีต้นทุนของมันเอง</p>



<h2 class="wp-block-heading">อีกแนวคิดที่คล้ายกัน คือ Plan big, execute small</h2>



<p class="wp-block-paragraph">ใน <a href="https://github.com/anthropics/claude-cookbooks/blob/main/managed_agents/CMA_plan_big_execute_small.ipynb" target="_blank" rel="noreferrer noopener">Claude Cookbook เรื่อง Coordinator pattern</a> Anthropic อธิบายอีก pattern ที่คล้ายกันมาก คือให้โมเดลใหญ่เป็น coordinator สำหรับวางแผนและสังเคราะห์คำตอบ ส่วน worker model ที่ถูกกว่าเป็นคนอ่านเว็บหรือดึงข้อมูลจำนวนมากใน context ของตัวเอง</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="2560" height="1309" src="https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-scaled.png" alt="Coordinator pattern: Fable 5 coordinator และ Sonnet 5 workers" class="wp-image-7792" srcset="https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-scaled.png 2560w, https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-1024x524.png 1024w, https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-1200x614.png 1200w, https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-768x393.png 768w, https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-1536x785.png 1536w, https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-2048x1047.png 2048w, https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-542x277.png 542w, https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-1084x554.png 1084w, https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-792x405.png 792w, https://myifew.com/wp-content/uploads/2026/07/anthropic-coordinator-pattern-1230x629.png 1230w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /><figcaption class="wp-element-caption">ภาพจาก Anthropic Claude Cookbook: Fable 5 เป็น coordinator วางแผนและสังเคราะห์ ส่วน Sonnet 5 workers อ่านเว็บและส่ง distilled findings กลับมา</figcaption></figure>



<p class="wp-block-paragraph">ในการทดลองที่ Anthropic ยกตัวอย่าง ทีมแบบ split ราคาจะถูกลงกว่าประมาณ 2.5x และทำงานเร็วขึ้นประมาณ 3x โดยจำนวน input token 84–98% ถูกคิดที่ worker ที่ใช้ราคา Token ถูกกว่า </p>



<p class="wp-block-paragraph">แต่ๆๆ เขาบอกว่า นี่แค่ตัวอย่างนะ อย่าเอาตัวเลขนี้ไปใช้อ้างอิงว่าทุกงานจะประหยัดเท่านี้ เพราะมันขึ้นกับ workload แต่ละงาน </p>



<p class="wp-block-paragraph">แต่โครงสร้างวิธีการทำแบบนี้ก็ชัดเจนดี คือ งานอ่านเยอะๆ ให้ worker ทำ ส่วนโมเดลใหญ่แตะเฉพาะ planning/synthesis</p>



<h2 class="wp-block-heading">จากที่อ่าน ถ้าผมจะใช้จริง จะวาง flow แบบนี้</h2>



<ol class="wp-block-list">
<li><strong>เริ่มด้วย Sonnet 5:</strong> ให้ทำงานหลัก อ่านไฟล์ เรียก tool แก้โค้ด รัน test</li>



<li><strong>Orientation:</strong> เก็บบริบทขั้นต่ำก่อน เช่น requirement, repo structure, error หลัก</li>



<li><strong>Advisor call แรก:</strong> เรียก Fable 5 ให้ช่วยวางแผนและชี้ risk</li>



<li><strong>Execute:</strong> ให้ Sonnet 5 ลงมือทำตาม plan โดยไม่เรียก advisor ทุกจุด</li>



<li><strong>Replan เมื่อจำเป็น:</strong> ถ้า error วนหรือทางเดิมไม่ไปต่อ ค่อยเรียก Fable 5 อีกครั้ง</li>



<li><strong>Review ก่อนจบ:</strong> เรียก advisor ช่วยดูว่าตกหล่น test, security, edge case หรือ assumption อะไรไหม</li>



<li><strong>Finish:</strong> ให้ executor สรุปผลพร้อม evidence จาก test/diff/tool output</li>
</ol>



<p class="wp-block-paragraph">ต้องบอกว่า ผมยังแค่คิดนะ เพราะยังไม่มีโจทย์ซับซ้อนพอที่จะใช้ Fable ทำงาน และยังไม่อยากลองรันเทียบ เพราะต้องทำหลายครั้ง อาจจะเสีย Token เยอะ ฮาา, ไว้รอมีผลการทดสอบจากผู้กล้า หรือได้ลองจริงๆ แล้วจะเอามาเล่าให้ฟังอีกที หรือหากใครลองแล้วก็มาแชร์กันหน่อยครับ</p>



<h2 class="wp-block-heading">ข้อควรระวัง</h2>



<ul class="wp-block-list">
<li><strong>งานเล็กมากอาจไม่คุ้ม:</strong> ถ้าเป็น single-turn Q&amp;A หรือแก้ typo เล็กๆ advisor อาจเพิ่ม overhead มากกว่าประโยชน์</li>



<li><strong>ต้องวัดกับ workload จริง:</strong> ตัวเลขประหยัด token ไม่ใช่ค่าคงที่ ขึ้นกับชนิดงานและความยาวของ context</li>



<li><strong>อย่าแตกงานย่อยจนเกินพอดี:</strong> ใน cookbook เองก็เตือนว่าการแตก brief แคบเกินไปมี floor cost ของ worker thread (ขออธิบายเพิ่มเติมครับ: มันคือต้นทุนขั้นต่ำต่อ worker thread หมายถึง ทุกครั้งที่สร้าง worker หรือ sub-agent ใหม่ มันมี “ต้นทุนตั้งต้น” เสมอ ไม่ว่าจะงานเล็กหรือใหญ่ เช่น เปิด session ,รับ prompt, อ่าน context, เรียก Skill)</li>



<li><strong>advisor แก้โจทย์เท่าที่ได้รับจาก context:</strong> ถ้า executor ยังไม่ได้อ่านของสำคัญก่อนเรียก advisor คำแนะนำก็อาจกว้างหรือผิดทิศได้ เช่นเราใส่บริบทไม่ครบหรือไม่เข้าใจให้ advisor เองแต่แรก (นั่นคือเหตุผลของ Anthopic ว่าทำไมไม่ควรเอาตัวฉลาดมารับงานก่อน)</li>



<li><strong>ต้อง track cost แยก:</strong> usage ของ advisor อยู่ใน <code>usage.iterations</code> เป็น <code>advisor_message</code> เพราะถูก bill คนละ rate กับ executor</li>
</ul>



<p class="wp-block-paragraph">ผมขอขยายความข้อสุดท้ายนิดนึงคือ มันไม่สามารถคิด token cost แบบ usage.input_tokens + usage.output_tokens ทั่วไปนะ เพราะอาจจะเข้าใจผิดคิดว่าแพงทั้งหมด แต่ควรคิดจาก </p>



<p class="wp-block-paragraph">total_cost = executor_tokens × ราคา Sonnet 5 + advisor_tokens × ราคา Fable 5</p>



<p class="wp-block-paragraph">ดังนั้น ใน Anthropic API ที่ส่งค่า usage.iterations กลับมา เราต้องคิดราคาแยกตาม type ด้วย ว่าอะไรคือ executor (message) และอะไรคือ advisor (advisor_message)</p>



<h2 class="wp-block-heading">สรุป</h2>



<p class="wp-block-paragraph">ผมคิดว่า “Fable 5 เป็น advisor” เป็นแนวทางที่น่าลองมากสำหรับ agent workflow ที่เราจะให้มันทำงานยากๆ หรือต้องใช้การตัดสินใจอย่างมีเหตุมีผลสูงมาก ส่วนงานง่ายๆ อย่างการ อ่าน/ทำ/ตรวจซ้ำ ก็ให้ใช้โมเดลรองๆ ลงมา ทำก็คิดว่าเพียงพอแล้ว (อย่างน้องชมพูที่ผมให้แชต ก็ใช้แค่ ChatGPT mini แต่หาข้อมูลและเขียนบทความ ผมจะใช้ ChatGPT ปกติ</p>



<h2 class="wp-block-heading">อ้างอิง</h2>



<ul class="wp-block-list">
<li><a href="https://x.com/claudedevs/status/2074606058128224365" target="_blank" rel="noreferrer noopener">ClaudeDevs on X — Fable 5 as advisor pattern</a></li>



<li><a href="https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool" target="_blank" rel="noreferrer noopener">Anthropic Claude Platform Docs — Advisor tool</a></li>



<li><a href="https://github.com/anthropics/claude-cookbooks/blob/main/managed_agents/CMA_plan_big_execute_small.ipynb" target="_blank" rel="noreferrer noopener">Anthropic Claude Cookbooks — Coordinator pattern: big models for planning, small models for execution</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/7793/how-optimize-token-use-fable5-advisor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Harness Design: ทำ AI Agent ให้ทำงานยาวๆ ได้โดยไม่ต้องมีคนเฝ้าตลอดเวลา</title>
		<link>https://myifew.com/7778/harness-design-by-anthopic/</link>
					<comments>https://myifew.com/7778/harness-design-by-anthopic/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Wed, 08 Jul 2026 17:16:55 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AI Agent]]></category>
		<category><![CDATA[Anthropic]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[Harness Design]]></category>
		<category><![CDATA[Long-running Agents]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=7778</guid>

					<description><![CDATA[ผมไปเจอบทความของ Anthropic เรื่อง harness design สำหรับ long-running application development ซึ่งตรงกับสิ่งที่กำลังทดลองอยู่ เลยเอามาเล่าในมุมที่นำไปพัฒนาต่อได้จริง]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ไปเจอบทความของ Anthropic เรื่อง <a href="https://www.anthropic.com/engineering/harness-design-long-running-apps" target="_blank" rel="noopener">Harness design for long-running application development</a> แล้วรู้สึกว่าน่าสนใจมาก เพราะเขาพูดถึงการออกแบบ <strong>harness</strong> สำหรับให้ AI Agent ทำงานยาวๆ จนได้ของออกมา โดยไม่ต้องมีมนุษย์คอยเข้ามาเกี่ยวข้องตลอดเวลา</p>



<p class="wp-block-paragraph">เรื่องนี้ตรงกับสิ่งที่ผมเองก็กำลังทดลองและพัฒนาอยู่เหมือนกัน โจทย์คือจะทำยังไงให้ Agent ไม่ได้เป็นแค่ผู้ช่วยตอบคำถาม หรือช่วยเขียนโค้ดเป็นรอบๆ แต่สามารถรับโจทย์ยาวๆ วางแผน ทำงาน ตรวจงาน ส่งต่องาน และค่อยๆ ปรับปรุงผลลัพธ์ได้เองมากขึ้น (ยุคนี้เรียกว่า Loop Engineering)</p>



<p class="wp-block-paragraph">ผมเลยอยากเอาบทความนี้มาเล่าในมุมที่นำไปต่อยอดได้จริง โดยเฉพาะสำหรับคนที่กำลังสนใจเรื่อง AI Agent, coding agent, workflow automation หรือระบบที่ให้ AI ทำงานต่อเนื่องแทนการ prompt ทีละครั้ง</p>



<span id="more-7778"></span>



<p class="wp-block-paragraph"><em>หมายเหตุ: บทความนี้ฟิวส์กับเอเจ้นชมพู ได้เรียบเรียงและต่อยอดจากบทความต้นฉบับของ Anthropic Engineering เรื่อง <a href="https://www.anthropic.com/engineering/harness-design-long-running-apps" target="_blank" rel="noopener">Harness design for long-running application development</a> เขียนโดย Prithvi Rajasekaran</em></p>



<h2 class="wp-block-heading">Harness คืออะไรในบริบทของ AI Agent</h2>



<p class="wp-block-paragraph">ถ้าแปลแบบง่ายๆ harness คือชุดเครื่องมือที่หุ้ม AI Agent อีกทีเพื่อให้มันทำงานได้เป็นระบบ ไม่ใช่แค่โยน prompt ให้ model แล้วหวังว่ามันจะทำทุกอย่างถูกต้องเอง</p>



<p class="wp-block-paragraph">ซึ่งในโลกของการเขียนโปรแกรม เรามักคุ้นกับ test harness หรือ automation harness อยู่แล้ว คือชุดเครื่องมือที่ช่วยรัน ทดสอบ ตรวจผล และคุมการทำงานบางอย่างให้เป็นระบบ พอมาอยู่ในโลกของ AI Agent แนวคิดก็คล้ายกัน แต่ขยายใหญ่กว่าเดิม</p>



<p class="wp-block-paragraph">Harness ของ AI Agent อาจรวมหลายอย่าง เช่น</p>



<ul class="wp-block-list">
<li>วิธีแตกงานใหญ่ให้เล็กลง</li>



<li>วิธีให้ agent วางแผนก่อนลงมือทำ</li>



<li>วิธีเก็บ state ของงานไว้นอก context window</li>



<li>วิธีส่งต่องานระหว่าง agent หรือ session</li>



<li>วิธีตรวจคุณภาพของงานที่ทำเสร็จ</li>



<li>วิธีบังคับให้ agent แก้ไขงานตาม feedback</li>



<li>วิธีหยุดงานเมื่อถึงเงื่อนไขบางอย่าง</li>
</ul>



<p class="wp-block-paragraph">พูดอีกแบบคือ ถ้า model คือสมอง harness ก็คือระบบการทำงานรอบสมองนั้น</p>



<p class="wp-block-paragraph">และผมคิดว่านี่แหละคือประเด็นสำคัญมาก เพราะช่วงแรกๆ เรามักคิดกันว่า AI จะเก่งขึ้นเพราะ model ฉลาดขึ้นอย่างเดียว แต่พอเริ่มใช้งานจริงจะเห็นว่า model ที่เก่งมากๆ ถ้าไม่มีระบบคุมงานที่ดี ก็ยังหลุด ยังลืม ยังทำงานซ้ำ ยังประเมินตัวเองผิด และยังจบงานแบบไม่ครบได้เหมือนกัน</p>



<p class="wp-block-paragraph">จริงๆ ลองทดสอบได้ง่ายๆ ครับ ถ้าเอา prompt ใส่ใน Claude Web ตั้งโมเดลเป็น Opus 4.8 กับใส่ในระบบแชตแจกฟรีเช่น Langflow โดยต่อโมเดล Opus 4.8 ผ่าน Claude API, คำตอบที่ได้ออกมาจะไม่เหมือนกัน แม้ว่าใช้สมอง Opus 4.8 เหมือนกัน (เรื่องนี้ 9arm ก็มีเล่าให้ฟังตอนทำ 9arm AI Passport)</p>



<h2 class="wp-block-heading">ปัญหาของ Agent ที่ให้ทำงานยาวๆ</h2>



<p class="wp-block-paragraph">บทความนี้เริ่มจากโจทย์ที่ Anthropic ทดลองอยู่ 2 เรื่อง คือทำให้ Claude สร้าง frontend design ที่มีคุณภาพสูงขึ้น และทำให้ Claude สร้าง application เต็มรูปแบบได้โดยไม่ต้องมีมนุษย์เข้าไปช่วยระหว่างทาง</p>



<p class="wp-block-paragraph">สองงานนี้ดูเหมือนคนละเรื่อง งานแรกเป็นเรื่องรสนิยมและความสวยงาม งานหลังเป็นเรื่องซอฟต์แวร์ที่ใช้งานได้จริง แต่ทั้งคู่มีปัญหาร่วมกันอย่างหนึ่ง คือถ้าให้ AI ทำงานยาวๆ แบบ naive เกินไป คุณภาพจะเริ่มแกว่ง</p>



<h3 class="wp-block-heading">1. Context เต็มแล้วเริ่มหลุด</h3>



<p class="wp-block-paragraph">งานที่ยาวหลายชั่วโมงจะมีข้อมูลสะสมเยอะมาก ตั้งแต่ requirement, decision, bug, code, test result, feedback ไปจนถึงสิ่งที่ลองแล้วไม่เวิร์ก ถ้าทุกอย่างถูกกองอยู่ใน context window เดียว สุดท้าย agent จะเริ่มจับประเด็นไม่ครบ</p>



<p class="wp-block-paragraph">Anthropic ยังพูดถึงอาการที่น่าสนใจชื่อว่า <strong>context anxiety</strong> คือ model เริ่มเหมือนรู้ตัวว่าบริบทใกล้เต็ม แล้วพยายามรีบ wrap up งานก่อนเวลา ทั้งที่งานจริงยังไม่เสร็จดี</p>



<p class="wp-block-paragraph">ปัญหานี้ผมว่าคนที่ใช้ coding agent น่าจะเจอบ่อย บางทีมันทำงานดีมาตลอด แต่พอท้ายๆ เริ่มสรุปเองว่าทุกอย่างเรียบร้อย ทั้งที่ test ยังไม่ครบ หรือยังมี TODO ค้างอยู่</p>



<h3 class="wp-block-heading">2. Agent มักตรวจงานตัวเองใจดีเกินไป</h3>



<p class="wp-block-paragraph">อีกปัญหาหนึ่งที่ตรงมากคือ self-evaluation</p>



<p class="wp-block-paragraph">เวลาถาม agent ว่างานที่ตัวเองทำดีไหม มันมักตอบว่าดี ใช้ได้ พร้อมแล้ว หรือใกล้เสร็จแล้ว ทั้งที่ถ้ามนุษย์ลองใช้งานจริงอาจเห็นเลยว่ามีหลายจุดยังไม่ดีพอ</p>



<p class="wp-block-paragraph">งาน coding ยังพอมี test ช่วยจับได้บ้าง แต่งานอย่าง design, UX, product completeness หรือบทความนี่ตรวจยากกว่าเยอะ เพราะไม่มีคำตอบแบบ pass/fail ชัดเจน</p>



<p class="wp-block-paragraph">Anthropic เลยใช้แนวทางแยก agent ที่สร้างงาน ออกจาก agent ที่ตรวจงาน ซึ่งผมคิดว่าเป็น pattern ที่ควรใช้จริงในระบบ agent ที่ต้องการคุณภาพ</p>



<h2 class="wp-block-heading">แนวคิดหลัก: Planner, Generator, Evaluator</h2>



<p class="wp-block-paragraph">โครงสร้างที่บทความนี้พูดถึงคือการแบ่ง agent ออกเป็น 3 บทบาทหลัก</p>



<figure class="wp-block-table"><table><thead><tr><th>บทบาท</th><th>หน้าที่</th></tr></thead><tbody><tr><td><strong>Planner</strong></td><td>รับโจทย์สั้นๆ แล้วขยายเป็น product spec, plan, task list หรือแนวทางการทำงาน</td></tr><tr><td><strong>Generator</strong></td><td>ลงมือสร้าง feature, เขียนโค้ด หรือผลิต output ตามแผน</td></tr><tr><td><strong>Evaluator</strong></td><td>ตรวจงาน ทดลองใช้งาน ให้ feedback และบอกว่างานผ่านเกณฑ์หรือยัง</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ถ้ามองในเชิงทีมซอฟต์แวร์ มันก็คล้ายๆ การแยก role ในทีมจริง</p>



<ul class="wp-block-list">
<li>Planner ทำหน้าที่คล้าย product/tech lead</li>



<li>Generator ทำหน้าที่คล้าย developer</li>



<li>Evaluator ทำหน้าที่คล้าย QA, reviewer และ product tester</li>
</ul>



<p class="wp-block-paragraph">ข้อดีคือเราไม่ต้องหวังให้ agent ตัวเดียวทำทุกอย่างเก่งหมด เพราะในความเป็นจริง มนุษย์เองก็ยังไม่ค่อยทำงานแบบนั้น เรามีคนคิด คนทำ คนตรวจ และ feedback loop ที่ทำให้งานดีขึ้น</p>



<h2 class="wp-block-heading">ทำเรื่อง subjective ให้ตรวจได้</h2>



<p class="wp-block-paragraph">ส่วนที่ผมชอบมากในบทความคือการทดลองกับ frontend design เพราะ design เป็นเรื่องที่วัดยาก</p>



<p class="wp-block-paragraph">Anthropic พบว่า Claude มักสร้าง UI ที่ technically ใช้งานได้ แต่ดู generic มาก เช่น layout ปลอดภัย card เยอะๆ gradient เดิมๆ หรือหน้าตาที่ดูเหมือน AI สร้างแบบไม่มี character</p>



<p class="wp-block-paragraph">เขาเลยสร้าง evaluator ที่มี criteria ชัดเจน เช่น</p>



<ul class="wp-block-list">
<li><strong>Design quality</strong> งานดูเป็นภาพรวมเดียวกันไหม</li>



<li><strong>Originality</strong> มีความคิดสร้างสรรค์จริงไหม หรือเป็น template</li>



<li><strong>Craft</strong> typography, spacing, contrast, color harmony ดีไหม</li>



<li><strong>Functionality</strong> ผู้ใช้เข้าใจและใช้งานได้จริงไหม</li>
</ul>



<p class="wp-block-paragraph">จุดสำคัญคือเขาไม่ได้ถามกว้างๆ ว่า “สวยไหม” แต่แตกคำว่าสวยให้กลายเป็น rubric ที่ตรวจได้</p>



<p class="wp-block-paragraph">ผมว่านี่เอาไปใช้กับงานอื่นได้เยอะมาก เช่นบทความดีไหม requirement ชัดไหม dashboard ใช้งานง่ายไหม หรือแม้แต่ระบบ automation ที่ agent สร้างขึ้นมามี failure mode อะไรบ้าง ถ้าเราไม่มี rubric evaluator ก็จะตอบกว้างๆ และหลุดง่าย</p>



<h2 class="wp-block-heading">Context Reset ไม่ใช่แค่ล้างแชท แต่ต้องมี Handoff</h2>



<p class="wp-block-paragraph">อีกเรื่องที่สำคัญมากคือ structured handoff</p>



<p class="wp-block-paragraph">ถ้า agent ทำงานยาวจนต้องเริ่ม session ใหม่ หรือให้ agent ตัวใหม่มารับช่วงต่อ เราไม่ควรส่งต่อด้วย chat history ยาวๆ อย่างเดียว แต่ควรมี artifact ที่สรุปสถานะงานอย่างเป็นระบบ</p>



<p class="wp-block-paragraph">handoff ที่ดีควรบอกอย่างน้อยว่า</p>



<ul class="wp-block-list">
<li>เป้าหมายของงานคืออะไร</li>



<li>ทำอะไรเสร็จแล้ว</li>



<li>ไฟล์ไหนถูกแก้</li>



<li>คำสั่งไหนรันแล้ว</li>



<li>ผลลัพธ์จริงคืออะไร</li>



<li>ยังเหลือปัญหาอะไร</li>



<li>next step คืออะไร</li>
</ul>



<p class="wp-block-paragraph">ถ้าเป็นงาน coding ก็ควรมี test result, git diff, known issue และคำอธิบาย decision ที่สำคัญด้วย</p>



<p class="wp-block-paragraph">ในมุมผม นี่คือจุดที่ทำให้ agent system เริ่มจริงจังขึ้นมาก เพราะเราเริ่มย้าย source of truth จาก “บทสนทนา” ไปอยู่ใน “artifact” ที่อ่านซ้ำได้ ตรวจได้ และส่งต่อได้</p>



<h2 class="wp-block-heading">Sprint Contract: ก่อนทำ ต้องรู้ก่อนว่า Done คืออะไร</h2>



<p class="wp-block-paragraph">อีกไอเดียที่น่าสนใจคือก่อนแต่ละ sprint ให้ Generator และ Evaluator ตกลงกันก่อนว่า sprint นี้จะทำอะไร และจะตรวจยังไงถึงเรียกว่าสำเร็จ</p>



<p class="wp-block-paragraph">ผมมองว่านี่คือ acceptance criteria สำหรับ agent โดยเฉพาะ</p>



<p class="wp-block-paragraph">ถ้าให้ agent “สร้างระบบ task management” เฉยๆ มันอาจทำหน้าจอสวย แต่ข้อมูลไม่ persist หรือ filter ใช้ไม่ได้ แต่ถ้ามี sprint contract เช่น</p>



<ul class="wp-block-list">
<li>สร้าง task ได้</li>



<li>แก้สถานะ task ได้</li>



<li>filter ตาม status ได้</li>



<li>refresh แล้วข้อมูลยังอยู่</li>



<li>Evaluator ต้องทดสอบผ่าน browser จริง</li>
</ul>



<p class="wp-block-paragraph">แบบนี้งานจะตรวจได้ชัดขึ้นมาก และลดโอกาสที่ agent จะทำ feature แบบดูเหมือนเสร็จ แต่ใช้งานจริงไม่ได้</p>



<h2 class="wp-block-heading">ผลลัพธ์ที่ Anthropic เจอ</h2>



<p class="wp-block-paragraph">บทความยกตัวอย่างให้ Claude สร้าง 2D retro game maker แล้วเทียบระหว่าง solo agent กับ full harness</p>



<figure class="wp-block-table"><table><thead><tr><th>วิธี</th><th>เวลา</th><th>ต้นทุน</th></tr></thead><tbody><tr><td>Solo agent</td><td>ประมาณ 20 นาที</td><td>ประมาณ $9</td></tr><tr><td>Full harness</td><td>ประมาณ 6 ชั่วโมง</td><td>ประมาณ $200</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">full harness แพงกว่ามาก แต่คุณภาพต่างกันชัดเจน solo agent ทำหน้าตาได้บางส่วน แต่เกมเล่นจริงไม่ได้ดีนัก ส่วน full harness ทำ feature ได้ลึกกว่า polished กว่า และ play mode ใช้งานได้จริงกว่า</p>



<p class="wp-block-paragraph">นี่เป็น trade-off ที่ต้องจำไว้ ไม่ใช่ว่าเราควรใช้ harness หนักๆ กับทุกงาน เพราะบางงาน single agent ก็พอ แต่ถ้างานสำคัญ งานซับซ้อน หรืองานที่ต้องการคุณภาพสูงมาก harness แบบนี้อาจคุ้ม</p>



<h2 class="wp-block-heading">เมื่อ Model เก่งขึ้น Harness ก็ต้องเปลี่ยน</h2>



<p class="wp-block-paragraph">อีกประเด็นที่ผมชอบคือ Anthropic บอกว่าเมื่อ model รุ่นใหม่เก่งขึ้น บางส่วนของ harness ที่เคยจำเป็นอาจไม่จำเป็นอีกต่อไป</p>



<p class="wp-block-paragraph">นี่เป็นความจริงที่สำคัญมาก ทุก component ใน harness คือสมมติฐานบางอย่างว่า model ยังทำเองได้ไม่ดีพอ เช่น ยังวางแผนไม่ดีพอ ยัง review ตัวเองไม่ดีพอ ยังทำงานยาวไม่ได้พอ หรือยังต้องแตกงานเป็น sprint เล็กๆ</p>



<p class="wp-block-paragraph">แต่เมื่อ model ดีขึ้น สมมติฐานเหล่านี้อาจหมดอายุ</p>



<p class="wp-block-paragraph">ดังนั้น harness ที่ดีไม่ควรเป็น pipeline แข็งๆ แต่ควรเป็นระบบที่ปรับได้ เช่น</p>



<ul class="wp-block-list">
<li>เปิดหรือปิด planner ได้</li>



<li>เลือก evaluator แบบเบาหรือหนักได้</li>



<li>ปรับจำนวนรอบ iteration ได้</li>



<li>เลือกใช้ context reset หรือ compaction ได้</li>



<li>ถอด component ที่ไม่ load-bearing ออกได้</li>
</ul>



<p class="wp-block-paragraph">ผมคิดว่านี่คือแนวคิดที่ดีมากสำหรับคนทำ agent platform เพราะเราไม่ได้ออกแบบระบบเพื่อ model รุ่นเดียว แต่ต้องออกแบบให้ evolve ตาม model ได้</p>



<h2 class="wp-block-heading">ถ้าจะเอามาพัฒนาต่อ ผมจะเริ่มจากอะไร</h2>



<p class="wp-block-paragraph">ถ้าเอาแนวคิดนี้มาใช้กับระบบ agent ที่ผมกำลังทำอยู่ ผมคิดว่าสิ่งที่ควรเริ่มมีคือ 5 เรื่องนี้</p>



<h3 class="wp-block-heading">1. Artifact-first workflow</h3>



<p class="wp-block-paragraph">อย่าให้ chat เป็นที่เก็บ state หลักของงาน แต่ให้ agent ทำงานผ่านไฟล์หรือ object ที่ชัดเจน เช่น</p>



<ul class="wp-block-list">
<li><code>SPEC.md</code></li>



<li><code>PLAN.md</code></li>



<li><code>TASKS.md</code></li>



<li><code>STATE.md</code></li>



<li><code>EVAL.md</code></li>



<li><code>HANDOFF.md</code></li>
</ul>



<p class="wp-block-paragraph">ไฟล์เหล่านี้ทำให้ agent ตัวถัดไปอ่านต่อได้ และมนุษย์ก็ตรวจได้ด้วย</p>



<p class="wp-block-paragraph">ซึ่งหากใครใช้ skill พวกทำ Spec Driven มันจะสร้างเอกสาร spec/plan/adr ให้อัตโนมัติ คอนเซ็ปประมาณนี้เลย</p>



<h3 class="wp-block-heading">2. Maker กับ Checker ต้องแยกกัน</h3>



<p class="wp-block-paragraph">งานสำคัญไม่ควรให้ agent ตัวเดียวสร้างและรับรองงานตัวเอง ควรมี reviewer หรือ evaluator แยกออกมาเสมอ โดยเฉพาะงานที่ต้อง publish, deploy หรือกระทบข้อมูลจริง</p>



<h3 class="wp-block-heading">3. Evaluator ต้องมี Rubric</h3>



<p class="wp-block-paragraph">rubric คือชุดเกณฑ์การให้คะแนน หรือเครื่องมือประเมินผลที่อธิบายระดับคุณภาพของชิ้นงาน </p>



<p class="wp-block-paragraph">ดังนั้น Evaluator ที่ไม่มี rubric จะตรวจแบบลอยๆ และมักใจดีเกินไป rubric ที่ดีควรบอกว่าอะไรคือ pass, อะไรคือ fail, ต้องลอง edge case ไหน และอะไรที่ห้ามมองข้าม</p>



<h3 class="wp-block-heading">4. Context Reset ต้องเป็น Feature ไม่ใช่ปล่อยให้แก้ตอนเต็ม</h3>



<p class="wp-block-paragraph">ถ้างานยาวพอ เราควรออกแบบไว้เลยว่า agent จะ reset ตอนไหน ส่งต่ออะไร และ agent ตัวใหม่ต้องอ่านอะไรบ้าง ไม่ใช่รอให้ context เต็มแล้วค่อยหาทางรอด</p>



<h3 class="wp-block-heading">5. ต้องมี Stop Condition</h3>



<p class="wp-block-paragraph">Agent ที่ทำงานเองได้ต้องรู้ด้วยว่าเมื่อไรควรหยุด ถ้าไม่มี stop condition มันอาจวนแก้ไปเรื่อยๆ ใช้ token ใช้เวลา แต่คุณภาพไม่ได้ดีขึ้นตามสัดส่วน</p>



<h2 class="wp-block-heading">ข้อควรระวัง</h2>



<p class="wp-block-paragraph">แนวทางนี้น่าสนใจมาก แต่ก็มีข้อควรระวังเยอะเหมือนกัน</p>



<ul class="wp-block-list">
<li><strong>Cost สูงขึ้น</strong> เพราะใช้หลาย agent ทำงานหลายรอบ และต้องมี evaluation loop</li>



<li><strong>สร้างงานได้ช้าขึ้น</strong> เพราะงานบางอย่างต้องรอ browser test, QA หรือ iteration</li>



<li><strong>ซับซ้อนขึ้น</strong> เพราะต้องดูแล state, artifact, prompt, rubric และ orchestration</li>



<li><strong>Evaluator ก็พลาดได้</strong> ถ้า rubric ไม่ดีหรือทดสอบไม่ลึกพอ</li>



<li><strong>Handoff ที่ไม่ดีอันตรายมาก</strong> เพราะ agent รุ่นถัดไปอาจสานต่อจากข้อมูลผิด</li>
</ul>



<p class="wp-block-paragraph">ดังนั้นผมคิดว่าควรใช้ harness หนักๆ เฉพาะงานที่คุ้มจริง เช่นงานที่มีผลลัพธ์สำคัญ งานที่ต้องใช้ซ้ำ หรืองานที่ถ้าพลาดแล้วเสียเวลามาก</p>



<h2 class="wp-block-heading">สรุป</h2>



<p class="wp-block-paragraph">บทความนี้ทำให้ผมยิ่งเชื่อว่าอนาคตของ AI Agent ไม่ได้อยู่ที่ prompt อย่างเดียว แต่อยู่ที่การออกแบบ harness รอบๆ model ให้ดีพอ</p>



<p class="wp-block-paragraph">Agent ที่ทำงานยาวได้จริงต้องมี plan ต้องมี state ต้องมี handoff ต้องมี evaluator ต้องมี rubric และต้องมีวิธีรู้ว่าเมื่อไรควรทำต่อหรือหยุด</p>



<p class="wp-block-paragraph">ถ้าทำได้ดี เราจะเริ่มเปลี่ยนจากการใช้ AI เป็นผู้ช่วยทีละคำสั่ง ไปสู่การมี AI operator ที่รับโจทย์ซับซ้อน ทำงานต่อเนื่อง ตรวจตัวเอง ส่งต่องาน และปรับปรุงผลลัพธ์ได้มากขึ้นเรื่อยๆ</p>



<p class="wp-block-paragraph">สำหรับผม นี่เป็นทิศทางที่น่าทดลองมาก และน่าจะเป็นแกนสำคัญของระบบ agent รุ่นถัดไปที่ไม่ได้แค่ “ตอบเก่ง” แต่ “ทำงานเป็นระบบ” ได้จริง</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/7778/harness-design-by-anthopic/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
