<?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>iFew &#8211; Few Steps &#8211; ก้าวสั้นๆ แต่ไปเรื่อยๆ</title>
	<atom:link href="https://myifew.com/author/ifew/feed/" rel="self" type="application/rss+xml" />
	<link>https://myifew.com</link>
	<description></description>
	<lastBuildDate>Sat, 11 Jul 2026 18:44:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://myifew.com/wp-content/uploads/2018/07/cropped-logo6-ts-32x32.png</url>
	<title>iFew &#8211; Few Steps &#8211; ก้าวสั้นๆ แต่ไปเรื่อยๆ</title>
	<link>https://myifew.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AI Spec Writing Checklist: เขียนสเปกให้ AI เดาถูกขึ้น</title>
		<link>https://myifew.com/7820/ai-spec-writing-checklist/</link>
					<comments>https://myifew.com/7820/ai-spec-writing-checklist/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Sat, 11 Jul 2026 18:44:35 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI Coding]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Spec-Driven Development]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=7820</guid>

					<description><![CDATA[บันทึกจากบทความ How to write specs for AI ว่าทำไม spec ที่ดีช่วยให้ AI coding agent เดาผิดน้อยลง พร้อม checklist ก่อนส่งงานให้ AI ลงมือเขียนโค้ด]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">หลังๆ มานี้ผมใช้ skill พวก grill-me ในการ discovery ความต้องการตนเอง หรือเขียน reqruiement ตั้งต้นแล้วให้ grill-me มาถามเติมต่อ แต่ถึงกระนั้น ในตอนที่ผมเขียน requriement ตั้งต้นเอง ผมก็จะพยามเขียนให้ละเอียดที่สุดเท่าที่ตนเองจะทำได้ โดยเฉพาะ Features และ Business Condition ต่างๆ เพื่อให้ AI ไม่ต้องเดาใจความสำคัญของระบบที่ผมต้องการให้มันทำ และไม่ต้องหงุดหงิดความหลอน (hallucinate) ของมันด้วย</p>



<p class="wp-block-paragraph">ผมไปอ่านบทความของ <strong>Jaroslaw Wasowski</strong> เรื่อง <strong>How to write specs for AI</strong> แล้วรู้สึกว่าตรงกับสิ่งที่ผมทำอยู่ แต่ก็มีบางข้อน่าสนใจที่ผมต้องปรับเพิ่ม โดยเขาพูดตรงๆ ว่า หลายครั้งปัญหาไม่ได้อยู่ที่ model อย่างเดียว แต่อยู่ที่ spec ที่เราเขียนให้มันต่างหาก</p>



<p class="wp-block-paragraph">เพราะ AI ไม่ได้อ่านใจเราออก ดังนั้นถ้าเราเขียน requirement แบบคลุมเครือ มันก็ไม่ได้หยุดแล้วถามเหมือน senior developer ที่นั่งข้างๆ แต่มันจะเดาต่อจาก pattern ที่มันเคยเห็นมาใน training data แล้วบางทีเดาได้เนียนมาก เนียนจนสรุปออกมา หรือ code ดูเหมือนจะถูกต้อง แต่การใช้งานผิด (เป็นเหตุผลว่าผมต้องมี skill ให้มันตั้งคำถามผมไปเรื่อยๆ นอกจากช่วยคิดแล้ว ผมใช้เพื่อคอยเช็กความเข้าใจของมัน)</p>



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



<p class="wp-block-paragraph"><em>หมายเหตุ: บทความนี้อ้างอิงจาก<em>ประสบการณ์</em>ฟิวส์กับเอเจ้นชมพู เพื่อเรียบเรียงและแปลจากต้นฉบับของ Jaroslaw Wasowski เรื่อง <a href="https://levelup.gitconnected.com/how-to-write-specs-for-ai-7-rules-and-a-checklist-for-better-code-a5af2b2c6205" target="_blank" rel="noopener">How to write specs for AI: 7 rules and a checklist for better code</a></em></p>



<h2 class="wp-block-heading">ปัญหาไม่ใช่แค่ AI เขียนโค้ดผิด แต่คือมันไม่รู้ว่าอะไรห้ามเดา</h2>



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



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">สิ่งที่ไม่อยู่ spec เราในตอนแรก แต่จู่ๆ มันก็โผล่มา เพราะ AI จะเอา pattern จาก training data มาเติมแทนเจตนาของเรา (ซึ่งอาจจะผิด)</p>
</blockquote>



<p class="wp-block-paragraph">นี่แหละครับที่น่ากลัว เพราะ code ที่ออกมาอาจ compile ผ่าน, test ผ่าน หน้าตาดูดี แต่จริงๆ มันกำลังทำระบบที่มีการใช้งานหรือ behavior คนละแบบกับที่เราต้องการ</p>



<p class="wp-block-paragraph">เหมือนเราจ้างช่างมาทำบ้าน แล้วบอกแค่ว่า “ทำครัวให้ดีๆ หน่อย” ถ้าช่างทำครัวสวยมาก แต่ไม่มีปลั๊ก ไม่มีที่วางเตา หรือเปิดประตูตู้แล้วชนผนัง ปัญหาไม่ได้อยู่ที่ช่างไม่ขยันอย่างเดียว แต่อยู่ที่แบบบ้านของเราก็ไม่ได้บอกอะไรเขาเลย (อยากได้ครัวฝรั่งเตาไฟฟ้า แต่เอไอตั้งเตาอั่งโล่มาให้เพราะสเปกบอกว่ามีเตา 555)</p>



<h2 class="wp-block-heading">Spec ที่ดีต้องปิด 5 เรื่อง ที่ AI ชอบเดาเอง</h2>



<p class="wp-block-paragraph">บทความนี้สรุป 5 เรื่องหลักๆ ซึ่งผมว่าตรงนี้เอาไปใช้กับ Jira ticket, GitHub/GitLab issue, Markdown spec หรือ prompt ตรงๆ ได้เลย</p>



<h3 class="wp-block-heading">1. Outcome ต้องชัดว่าอยากได้พฤติกรรมอะไร</h3>



<p class="wp-block-paragraph">เริ่มจากบอกผลลัพธ์ที่ต้องการ ไม่ใช่บอกให้มันไปเขียน code แบบกว้างๆ เช่น แทนที่จะบอกว่า “ทำ endpoint export users เป็น CSV” ให้บอกว่า &#8220;endpoint นี้ต้องคืน active users เป็นไฟล์ CSV ที่ download ได้&#8221; และต้องมีเงื่อนไขความสำเร็จอะไรบ้าง (ภาษาเทคนิคจะเรียกว่า Acceptance Criteria)</p>



<p class="wp-block-paragraph">จุดนี้ช่วยแยก what ออกจาก how ได้ดีมาก เพราะ AI จะได้ไม่รีบเลือก implementation pattern ที่มันคุ้น แต่เริ่มจาก behavior ที่เราต้องการก่อน</p>



<h3 class="wp-block-heading">2. Scope กับ non-goals ต้องเขียนคู่กัน</h3>



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



<p class="wp-block-paragraph">เช่น ถ้าให้ AI ทำ export users ก็ควรบอกไปเลยว่า export เฉพาะ active users เท่านั้น ไม่ export deleted accounts ไม่ export billing data และไม่แก้ database schema</p>



<p class="wp-block-paragraph">เพราะถ้าไม่บอก มันอาจ “ใจดี” เพิ่ม feature ให้เอง ซึ่งฟังดูดี แต่ทำให้ diff บวม และบางทีไปแตะของที่ไม่ควรแตะ</p>



<p class="wp-block-paragraph">จากประสบการณ์ผมเองที่สังเกต โมเดลฉลาดๆ อย่าง Claude Opus 4.8+ / ChatGPT 5.5+ มักจะบอกเลยว่า ผมจะทำสิ่งนี้ แต่ไม่ทำสิ่งนี้เพราะจะกระทบอะไรก็ว่าไป ซึ่งมันไม่เป็นกับบางโมเดลอื่นๆ ตรงนี้เราโดนพวก Frontier Model สปอยจนมองข้ามไป ฮ่าๆ</p>



<h3 class="wp-block-heading">3. Constraints คือรั้วกัน AI หลุดโลก</h3>



<p class="wp-block-paragraph">AI ไม่ได้รู้จัดโค้ดทั้ง repo ของเราจริงๆ ถ้าเราไม่ได้ให้ context มันแต่แรก, มันไม่รู้ว่าใช้ framework เวอร์ชันไหน มี convention อะไร library ไหนห้ามใช้ response format ต้องเป็นแบบไหน หรือ performance limit คือเท่าไร (แต่ก็ได้ยินบ่อยจากคนรอบข้าง (ระดับมหาราชา/มหาราชินี) คือให้ AI อ่านโค้ดทั้ง repo ก่อนเลย)</p>



<p class="wp-block-paragraph">ดังนั้น constraints ควรมีของพวกนี้:</p>



<ul class="wp-block-list">
<li>stack และ version ที่ใช้</li>



<li>repo convention ที่ต้องตาม</li>



<li>library ที่ใช้ได้หรือห้ามใช้</li>



<li>output format เช่น UTF-8, JSON shape, CSV delimiter</li>



<li>security หรือ performance limit</li>



<li>integration boundary เช่นห้ามแก้ schema หรือห้ามกระทบ API เดิม</li>
</ul>



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



<h3 class="wp-block-heading">4. Acceptance criteria ต้องพิสูจน์ได้ ไม่ใช่แค่ฟังดูดี</h3>



<p class="wp-block-paragraph">คำว่า “ใช้งานได้ดี” หรือ “make it work nicely” เป็นประโยคที่น่ากลัวมากสำหรับ AI เพราะมันไม่มีทางรู้ว่า nicely ของเราคืออะไร ดังนั้นเราต้องบอกมันว่า เงื่อนไขการรับงาน (Acceptance criteria) ของเราคืออะไร</p>



<p class="wp-block-paragraph">ซึ่ง Acceptance criteria ที่ดีควรเป็นแบบตรวจสอบได้ เช่น:</p>



<ul class="wp-block-list">
<li>ถ้ามี active users 3 คน ต้องได้ CSV 3 data rows และ header 1 แถว</li>



<li>ถ้าไม่มี users ต้องได้ header อย่างเดียวและ status 200</li>



<li>ถ้า user ไม่มี admin role ต้องได้ 403 และไม่ส่ง CSV body</li>



<li>ถ้ามีข้อมูล 50,000 records ต้องใช้ streaming และ response ไม่เกินเวลาที่กำหนด</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">ถ้าไม่มีเกณฑ์ตรวจสอบได้ (ไม่ว่าจะมนุษย์ไม่เขียน หรือเอไอไม่ทำให้) ยังถือว่าเป็น Draft Requirement ไม่ใช่ Requirement จริง</p>
</blockquote>



<p class="wp-block-paragraph">เพราะการที่ Spec มี acceptance criteria มันจะเปลี่ยนจากคำอธิบายสวยๆ ให้กลายเป็น Goal ที่ AI ทำให้สำเร็จ และระบบเราจะใช้งานได้ตามที่ต้องการ</p>



<h3 class="wp-block-heading">5. Edge case กับ failure path ต้องมีตั้งแต่ก่อนเขียน code</h3>



<p class="wp-block-paragraph">Happy path เป็นแค่ส่วนหนึ่งของ production เท่านั้น แต่ spec จำนวนมากเขียนเหมือนโลกมีแต่ happy path ฮาาา</p>



<p class="wp-block-paragraph">อย่างน้อย spec ที่ส่งให้ AI ควรมี:</p>



<ul class="wp-block-list">
<li>error path 1 กรณี</li>



<li>edge case 1 กรณี</li>



<li>empty state หรือ permission case 1 กรณี</li>
</ul>



<p class="wp-block-paragraph">เพราะถ้าเราไม่เขียน มันจะเดาวิธี handle error จาก pattern ที่มันเห็นบ่อย ซึ่งอาจไม่ตรงกับระบบเราเลย</p>



<h2 class="wp-block-heading">Checklist ก่อนโยนงานให้ AI coding agent</h2>



<p class="wp-block-paragraph">ผมลองเอาแนวคิดในบทความมาจัดเป็น checklist table แบบที่น่าจะใช้จริงกับงานประจำวันได้ประมาณนี้ครับ</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>คำถาม</th><th>ผ่านหรือยัง</th></tr></thead><tbody><tr><td>Outcome ชัดไหมว่าระบบต้องทำพฤติกรรมอะไร</td><td>ถ้ายังตอบเป็นคำกว้างๆ เช่น ดีขึ้น เร็วขึ้น ใช้งานง่าย ให้เขียนใหม่</td></tr><tr><td>มี scope และ non-goals ไหม</td><td>ต้องบอกทั้งทำอะไร และไม่ทำอะไร</td></tr><tr><td>มี constraints ของ repo, stack, format, security, performance ไหม</td><td>ถ้าไม่มี AI จะเดาจากโลกทั่วไป ไม่ใช่จากระบบเรา</td></tr><tr><td>Acceptance criteria พิสูจน์ได้ไหม</td><td>ควรตรวจด้วย test, log, screenshot หรือ metric ได้</td></tr><tr><td>มี error path หรือ edge case ไหม</td><td>อย่างน้อยต้องมี 1 เคสที่ไม่ใช่ happy path</td></tr><tr><td>มีตัวอย่าง input/output ไหม</td><td>ตัวอย่างดีๆ หนึ่งชุด ลด ambiguity ได้เยอะมาก</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">checklist นี้ไม่ได้บอกให้เขียน spec ยาวเสมอไป แต่มันบอกให้ AI เขียน spec แบบเดาน้อยลง</p>



<h2 class="wp-block-heading">Spec ไม่ได้ต้องยาว แต่ต้องมี signal พอ</h2>



<p class="wp-block-paragraph">บทความต้นฉบับใช้คำว่า signal redundancy matched to complexity ซึ่งผมแปลแบบบ้านๆ ว่า รายละเอียดต้องพอดีกับความเสี่ยงของงาน</p>



<p class="wp-block-paragraph">ถ้าแค่แก้ margin หรือเปลี่ยน text เล็กๆ จะเขียน spec ยาว 3 หน้า ก็อาจเกินไป แต่ถ้างานแตะ authorization, payment, data integrity, migration, report export หรือ performance ตรงนี้ผมว่าไม่ควรประหยัด spec</p>



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



<h2 class="wp-block-heading">Workflow ที่ผมคิดว่าเอาไปใช้ได้ทันที</h2>



<p class="wp-block-paragraph">ถ้าจะเอาเรื่องนี้ไปใช้กับทีม software จริงๆ ผมคิดว่าไม่ต้องเริ่มจาก process ใหญ่โต แต่เริ่มจากงานหนึ่งชิ้นก่อนก็พอ</p>



<ol class="wp-block-list">
<li>เลือก feature หรือ change ที่มีขอบเขตงานและโค้ดชัดเจน (boundary)</li>



<li>เขียน spec ให้มี 5 เรื่องหลัก: outcome, scope, constraints, acceptance criteria, edge cases</li>



<li>review spec ก่อนให้ AI ลงมือ</li>



<li>ให้ AI implement พร้อม test</li>



<li>ถ้า test fail หรือ reviewer ต้องถามเพิ่ม ให้กลับไปแก้ spec ก่อน ไม่ใช่แค่สั่ง AI แก้ code ไปเรื่อยๆ</li>
</ol>



<p class="wp-block-paragraph">จุดนี้ผมว่ามันต่อกับแนวคิด Spec-Driven Development มาก คือ spec ไม่ใช่เอกสารประกอบงาน แต่เป็น contract ของงาน ถ้า code กับ spec ขัดกัน ต้องถามก่อนว่า spec ยังถูกไหม ไม่ใช่ปล่อยให้ code ที่ AI generate มาเป็นความจริงใหม่ของระบบ</p>



<p class="wp-block-paragraph">ข้อสุดท้ายสำคัญมาก และทำให้ Spec มีการอัพเดทตลอดเวลา (หรือที่เรียกว่า Living documentation)</p>



<h2 class="wp-block-heading">เรื่องที่ต้องระวัง อย่าเอา checklist ไปทำให้ทีมเหนื่อยกว่าเดิม</h2>



<p class="wp-block-paragraph">ถึงผมจะชอบ checklist นี้มาก แต่ก็ไม่คิดว่าต้องใช้เต็มรูปแบบกับทุกงานนะครับ</p>



<p class="wp-block-paragraph">ถ้าเป็น bug fix เล็กๆ ที่ test เดียวพิสูจน์ได้ หรือ prototype ที่ตั้งใจ throw away อยู่แล้ว การเขียน spec ยาวอาจไม่คุ้ม</p>



<p class="wp-block-paragraph">อีกอย่างคือ spec ที่ดีไม่ได้แก้ทุกปัญหา AI ยังพลาดได้จาก model limitation, context retrieval ไม่ครบ, repo ใหญ่เกินไป หรือระบบเดิมซับซ้อนจน spec อธิบายไม่หมด</p>



<p class="wp-block-paragraph">ดังนั้นอย่าใช้ checklist นี้เป็นพิธีกรรมใหม่ของทีม แต่ใช้เป็นเครื่องมือถามตัวเองว่า “งานนี้มีอะไรที่ AI ไม่ควรเดาเองบ้าง”</p>



<h2 class="wp-block-heading">สรุปแบบฟิวส์ๆ</h2>



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



<p class="wp-block-paragraph">เมื่อก่อนถ้า requirement คลุมเครือ senior developer อาจถามกลับ หรืออย่างน้อยก็รู้จาก context ของระบบว่าอะไรควรทำไม่ควรทำ แต่ AI coding agent ไม่ทำแบบนั้น ถ้าเราไม่บอก มันจะเดา</p>



<p class="wp-block-paragraph">และบางครั้งมันเดาแบบมั่นใจมากด้วยว่าจะถูก!</p>



<p class="wp-block-paragraph">ยิ่ง AI เขียน code เร็วเท่าไร เราก็ยิ่งต้องเขียนให้ชัดขึ้นเท่านั้นครับ</p>



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



<ul class="wp-block-list">
<li><a href="https://levelup.gitconnected.com/how-to-write-specs-for-ai-7-rules-and-a-checklist-for-better-code-a5af2b2c6205" target="_blank" rel="noopener">How to write specs for AI: 7 rules and a checklist for better code</a> โดย Jaroslaw Wasowski, Level Up Coding</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/7820/ai-spec-writing-checklist/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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>
		<item>
		<title>ZeeSpec กับการโค้ดงานแบบ  Greenfield และ Brownfield</title>
		<link>https://myifew.com/7769/zeespec-spec/</link>
					<comments>https://myifew.com/7769/zeespec-spec/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Mon, 06 Jul 2026 16:06:52 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AI Coding]]></category>
		<category><![CDATA[Brownfield]]></category>
		<category><![CDATA[Greenfield]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Spec-Driven Development]]></category>
		<category><![CDATA[ZeeSpec]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=7769</guid>

					<description><![CDATA[ZeeSpec คือแนวคิดการเขียน spec แบบ constraint system เพื่อกัน AI เดา requirement เอง โดยวิธีใช้จะแตกต่างกันมากระหว่าง greenfield และ brownfield project]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">โพสต์ก่อน ผมเขียนถึง <a href="https://myifew.com/7753/writing-effective-prompts-by-google/" data-type="post" data-id="7753">คู่มือการเขียน Prompt ที่ดี ให้ได้ผลตรงใจ จากคำแนะนำของ Google</a> ซึ่งเบสิกเลยคือการระบุ Role/Task/Context/Output Format</p>



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



<p class="wp-block-paragraph">เพราะความไม่ต้องการให้ AI เดาเอง และไม่อยากอารมณ์เสียเมื่อรอมันรันนานแต่ผลลัพธ์ที่ได้ไม่ตรงใจ ผมจึงมักจะระบุว่าใคร ทำอะไร อย่างไร ที่ไหน เมื่อไร อะไรควรทำ ไม่ควรทำ</p>



<p class="wp-block-paragraph">ซึ่งเครื่องมือในโพสต์นี้เป็นประมาณนั้นเลยครับ เผื่อใครจะเอาไปเป็นไอเดียเสริมสไตล์การเขียน Prompt/Spec ให้กับผู้อ่านได้</p>



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



<p class="wp-block-paragraph"><em>หมายเหตุ: บทความนี้ฟิวส์กับเอเจ้นชมพู ได้เรียบเรียงและแปลจากต้นฉบับของ Vishal Mysore เรื่อง <a href="https://medium.com/@visrow/zeespec-spec-driven-development-for-greenfield-vs-brownfield-projects-c593b5d88186" target="_blank" rel="noopener">ZeeSpec- Spec Driven Development for Greenfield vs Brownfield Projects</a></em></p>



<h2 class="wp-block-heading">AI มันไม่กลัว requirement ที่ไม่ชัด แต่มันจะเดาแทนเราเลย</h2>



<p class="wp-block-paragraph">บทความต้นฉบับพูดถึงเครื่องมือชื่อ <strong>ZeeSpec</strong> ซึ่งเป็นแนวคิดการทำ spec แบบบังคับให้เราตอบคำถามให้ครบก่อนเริ่มให้ AI สร้างระบบ</p>



<p class="wp-block-paragraph">คำสำคัญของ ZeeSpec คือ มันไม่ได้เป็น documentation เฉยๆ แต่มันเป็น <strong>constraint system</strong> หรือระบบกรอบข้อจำกัดที่บอก AI ว่าอะไรทำได้ อะไรทำไม่ได้ อะไรห้ามเดา</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">ถ้าเราไม่ตอบ AI จะตอบแทนเรา และคำตอบนั้นอาจดูดีมากจนเราไม่ทันระวัง</p>
</blockquote>



<p class="wp-block-paragraph">ฟังดูเหมือนเรื่องเล็กนะครับ แต่คนทำ software น่าจะเคยเจออาการนี้กันบ่อยมาก เช่น บอกให้เพิ่ม feature นิดเดียว แต่ AI ดัน refactor service เดิมให้ด้วย หรือบอกให้เพิ่ม field ในตาราง แต่มัน generate migration ที่กระทบข้อมูลเดิมแบบชวนเสียวหลัง</p>



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



<h2 class="wp-block-heading">ZeeSpec ใช้ 5W1H มาบีบให้เราคิดครบ</h2>



<p class="wp-block-paragraph">ZeeSpec วางอยู่บนแนวคิด <strong>Zachman Framework</strong> ซึ่งเป็นกรอบคิดด้าน enterprise architecture และโมเดล <strong>5W1H</strong> ที่ประกอบด้วย What, Where, When, Who, Why, How</p>



<p class="wp-block-paragraph">ในบทความบอกว่า ZeeSpec มีคำถาม 60 ข้อ แบ่งเป็น 6 มิติ มิติละ 10 ข้อ เป้าหมายไม่ได้อยู่ที่การเขียนเอกสารให้ยาว แต่อยู่ที่การบังคับให้ decision สำคัญถูกพูดออกมาก่อน AI จะลงมือเขียนโค้ด</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>มิติ</th><th>คำถามหลัก</th><th>ตัวอย่างสิ่งที่ต้องระบุ</th></tr></thead><tbody><tr><td><strong>WHAT</strong></td><td>ระบบคืออะไร</td><td>entity, state, boundary, สิ่งที่ห้ามมี</td></tr><tr><td><strong>WHERE</strong></td><td>ข้อมูลและการทำงานอยู่ที่ไหน</td><td>storage, infrastructure, integration, data flow</td></tr><tr><td><strong>WHEN</strong></td><td>อะไรเกิดขึ้นตอนไหน</td><td>trigger, expiry, schedule, blocking condition</td></tr><tr><td><strong>WHO</strong></td><td>ใครทำอะไรได้</td><td>role, permission, ownership, approval</td></tr><tr><td><strong>WHY</strong></td><td>ทำไม rule นี้มีอยู่</td><td>business intent, validation, policy</td></tr><tr><td><strong>HOW</strong></td><td>ระบบทำงานและพังอย่างไร</td><td>error handling, recovery, consistency, rollback</td></tr></tbody></table></figure>



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



<h2 class="wp-block-heading">Greenfield คือพื้นที่ว่างที่อันตรายกว่าที่คิด</h2>



<p class="wp-block-paragraph"><strong>Greenfield project</strong> คือโปรเจกต์ที่เริ่มใหม่แทบทั้งหมด ไม่มี schema เดิม ไม่มี API เดิม ไม่มี legacy ให้ต้องเกรงใจ</p>



<p class="wp-block-paragraph">ข้อดีคือเราออกแบบใหม่ได้เต็มที่ แต่ข้อเสียคือไม่มีอะไรคอยขัด AI เลย ถ้าเรา spec ไม่ครบ มันจะเติมโลกทั้งใบให้เราเอง</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Greenfield ไม่ได้เสี่ยงเพราะไม่มีของเดิม แต่มันเสี่ยงเพราะไม่มีแรงต้านเวลา AI เดา</p>
</blockquote>



<p class="wp-block-paragraph">ในบทความเสนอว่า สำหรับ greenfield ต้องตอบให้ครบทุกมิติ โดยเฉพาะคำถามที่คนมักข้าม เช่น</p>



<ul class="wp-block-list">
<li>ระบบนี้ทำอะไร และไม่ทำอะไร</li>



<li>entity ไหนมีจริง entity ไหนห้ามมี</li>



<li>ข้อมูลอะไรห้ามเก็บเด็ดขาด เช่น PII, payment data, secret</li>



<li>ใครเห็นข้อมูลอะไรได้บ้าง</li>



<li>เมื่อเกิด error ระบบควร fail แบบไหน</li>



<li>ถ้าเจอข้อมูลไม่ครบ ระบบควรหยุดหรือเดา</li>
</ul>



<p class="wp-block-paragraph">ถ้าเขียนแบบนี้ก่อนให้ AI ทำงาน โอกาสที่มันจะสร้าง table ประหลาดๆ หรือ flow ที่ดูสมเหตุสมผลแต่ผิด business rule จะน้อยลงมาก</p>



<h2 class="wp-block-heading">Brownfield ต้องล็อกของเดิมก่อนค่อยสั่งของใหม่</h2>



<p class="wp-block-paragraph"><strong>Brownfield project</strong> คือระบบที่มีอยู่แล้ว อาจมี database จริง มี user ใช้งานจริง มี API consumer ภายนอก มี technical debt ที่ทุกคนรู้ว่าไม่สวย แต่แตะมั่วไม่ได้</p>



<p class="wp-block-paragraph">ตรงนี้บทความให้แนวคิดที่ผมว่าโดนมาก คือ brownfield ไม่ควร spec ทั้งระบบใหม่ แต่ควร spec เฉพาะ <strong>delta</strong> หรือส่วนที่เปลี่ยน</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Greenfield คือเติมทุกมิติ ส่วน brownfield คือ lock สิ่งที่มีอยู่ แล้วระบุเฉพาะสิ่งที่จะเปลี่ยน</p>
</blockquote>



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



<p class="wp-block-paragraph">ตัวอย่างง่ายๆ เช่น เราขอเพิ่ม endpoint ใหม่สำหรับ export report แต่ถ้าไม่ได้ lock authentication pattern เดิมไว้ AI อาจ generate middleware แบบใหม่ หรือแก้ permission model ให้ดูสะอาดขึ้น ซึ่งดูดีใน diff แต่พังกับระบบจริง</p>



<h2 class="wp-block-heading">ก่อน spec ระบบเก่า ต้องป้อน context ของระบบเก่าก่อน</h2>



<p class="wp-block-paragraph">สำหรับ brownfield บทความแนะนำให้เริ่มด้วย Step 0 คือป้อน context ของระบบเดิมก่อนตอบ ZeeSpec</p>



<ul class="wp-block-list">
<li>schema ปัจจุบัน แม้จะเป็น version ย่อก็ยังดีกว่าไม่มี</li>



<li>API pattern ที่ใช้อยู่ เช่น naming, response shape, error format</li>



<li>tech stack และ infrastructure ที่เปลี่ยนไม่ได้</li>



<li>constraint ที่เป็น non-negotiable เช่น ต้องใช้ PostgreSQL 14 หรือห้าม breaking change กับ client เดิม</li>
</ul>



<p class="wp-block-paragraph">ผมว่าข้อนี้ practical มาก เพราะ AI ที่ไม่เห็น schema จะออกแบบรอบ schema ไม่ได้ มันจะออกแบบ schema ใหม่ให้เราแทน ซึ่งใน brownfield นี่คือความเจ็บปวดล้วนๆ</p>



<h2 class="wp-block-heading">วิธีคิดต่างกันระหว่าง greenfield กับ brownfield</h2>



<p class="wp-block-paragraph">ถ้าเอามาแปลงเป็นภาษาคนทำงานจริง ผมจะสรุปแบบนี้ครับ</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>เรื่อง</th><th>Greenfield</th><th>Brownfield</th></tr></thead><tbody><tr><td>จุดเริ่มต้น</td><td>เริ่มจากศูนย์</td><td>เริ่มจากระบบที่มีข้อจำกัดอยู่แล้ว</td></tr><tr><td>ความเสี่ยงหลัก</td><td>AI invent สิ่งที่เราไม่ได้สั่ง</td><td>AI overwrite หรือ refactor สิ่งที่ยังทำงานอยู่</td></tr><tr><td>กลยุทธ์</td><td>ตอบให้ครบทุกมิติ</td><td>ล็อกของเดิม แล้วระบุเฉพาะ delta</td></tr><tr><td>สิ่งที่ควรเน้น</td><td>domain model, boundary, rule, failure behavior</td><td>compatibility, migration, rollback, non-breaking change</td></tr><tr><td>ประโยคเตือนใจ</td><td>อย่าให้ AI เดาโลกใหม่เอง</td><td>อย่าให้ AI ทำความสะอาดบ้านจนโยนของสำคัญทิ้ง</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Conflict ใน spec ไม่ใช่ edge case แต่มันคือ bug ตั้งแต่ยังไม่เขียนโค้ด</h2>



<p class="wp-block-paragraph">อีกประเด็นที่ผมชอบคือ เวลาคำตอบใน spec ขัดกัน ZeeSpec ไม่ควรปล่อยผ่าน</p>



<p class="wp-block-paragraph">เช่น ในมิติ WHO เราบอกว่าเฉพาะ Admin เท่านั้นที่ลบ user ได้ แต่ในมิติ WHEN เราบอกว่า unverified account จะถูกลบอัตโนมัติหลัง 30 วัน แบบนี้มันมี conflict อยู่แล้ว</p>



<p class="wp-block-paragraph">ถ้าเราไม่ resolve ตอน spec AI อาจ resolve ให้เองแบบเงียบๆ และเราอาจไม่รู้ด้วยว่ามันเลือกทางไหน</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Spec ที่ขัดกัน คือ bug ที่ยังไม่ได้ compile</p>
</blockquote>



<p class="wp-block-paragraph">ผมชอบประโยคนี้มาก เพราะมันทำให้เราเปลี่ยนมุมมองจาก “เดี๋ยวค่อยดูตอน implementation” เป็น “ต้องเคลียร์ก่อนให้ AI ลงมือ”</p>



<h2 class="wp-block-heading">เอาไปใช้กับงานจริงได้ยังไง</h2>



<p class="wp-block-paragraph">ถ้าจะเอาแนวคิดนี้ไปใช้กับทีม software development ผมคิดว่าไม่จำเป็นต้องเริ่มด้วย 60 ข้อแบบเต็มทันที เพราะเดี๋ยวทีมจะรู้สึกว่าเอกสารกลับมาฆ่าเราอีกแล้ว 555</p>



<p class="wp-block-paragraph">เริ่มแบบเบากว่านั้นก็ได้ เช่น ก่อนให้ AI ทำ feature ใดๆ ให้ตอบ 6 ช่องนี้ให้ได้ก่อน</p>



<ul class="wp-block-list">
<li><strong>WHAT</strong> จะเพิ่มหรือเปลี่ยนอะไร และอะไรไม่อยู่ใน scope</li>



<li><strong>WHERE</strong> ต้องแตะ file, service, database, integration ไหนบ้าง และอะไรห้ามแตะ</li>



<li><strong>WHEN</strong> flow ใหม่เกิดตอนไหน กระทบ trigger เดิมไหม</li>



<li><strong>WHO</strong> role ไหนใช้ได้ role ไหนห้ามใช้</li>



<li><strong>WHY</strong> business rule สำคัญคืออะไร ทำไมต้องเป็นแบบนี้</li>



<li><strong>HOW</strong> migration, rollback, error, test ต้องเป็นอย่างไร</li>
</ul>



<p class="wp-block-paragraph">สำหรับ greenfield ให้ช่องพวกนี้เป็นการออกแบบระบบ สำหรับ brownfield ให้ช่องพวกนี้เป็นรั้วกัน AI ไม่ให้ไปช่วยแก้สิ่งที่ไม่ควรแก้</p>



<h2 class="wp-block-heading">Prompt แบบย่อสำหรับ greenfield</h2>



<p class="wp-block-paragraph">อันนี้ผมเรียบเรียงเป็น template สั้นๆ เอาไว้ใช้ได้เลย</p>



<pre class="wp-block-code"><code>System: &#91;ชื่อระบบ]
Assumption: เริ่มใหม่ ไม่มี infrastructure เดิม

WHAT: entity, relationship, boundary, สิ่งที่ห้ามมี, ข้อมูลที่ห้ามเก็บ
WHERE: infrastructure, data flow, integration, system boundary
WHEN: trigger ของ create/update/delete, expiry, blocking condition
WHO: role, permission, visibility, approval
WHY: business rule, intent, validation, เหตุผลของข้อจำกัด
HOW: error handling, recovery, consistency, idempotency, test

Generate a system spec with no unstated assumptions. If information is missing, ask before generating code.</code></pre>



<h2 class="wp-block-heading">Prompt แบบย่อสำหรับ brownfield</h2>



<p class="wp-block-paragraph">ส่วน brownfield ผมจะเน้นคำว่า unchanged และ delta ให้ชัด เพราะนี่คือหัวใจของระบบเดิม</p>



<pre class="wp-block-code"><code>Existing system context: &#91;paste schema / API pattern / tech stack / non-negotiable constraints]

New feature: &#91;ชื่อ feature] 

WHAT: delta only, new entity, changed field, สิ่งที่ exclude ชัดเจน 
WHERE: existing infrastructure unchanged, list what must not change 
WHEN: new trigger, conflict with existing trigger, blocking rule เดิมที่ยังต้องใช้ WHO: permission ใหม่อิง role เดิม, role ที่ห้าม access 
WHY: เหตุผลของ feature และเหตุผลที่ constraint เดิมยัง valid 
HOW: migration path, backward compatibility, rollback, tests Generate only the delta. 

Do not refactor existing components unless explicitly requested.</code></pre>



<h2 class="wp-block-heading">สิ่งที่ผมได้จากบทความนี้</h2>



<p class="wp-block-paragraph">ผมว่าประเด็นของ ZeeSpec ไม่ใช่แค่ “เขียน spec ให้ละเอียดขึ้น” แต่คือ “เปลี่ยนหน้าที่ของ spec”</p>



<p class="wp-block-paragraph">เมื่อก่อน spec มักเป็นเอกสารอธิบายให้คนอ่าน แต่ในยุค AI coding spec กลายเป็นรั้วกั้นพฤติกรรมของเครื่องมือ ถ้ารั้วหลวม AI ก็เดินออกนอกเขต ถ้ารั้วไม่บอกตำแหน่งท่อ มันก็อาจขุดโดนท่อ</p>



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



<p class="wp-block-paragraph">และยิ่ง AI เขียนโค้ดได้เร็วขึ้นเท่าไร spec ยิ่งสำคัญขึ้นเท่านั้น</p>



<p class="wp-block-paragraph">เพราะความเร็วไม่ได้ช่วยอะไร ถ้าเอไอลากเราวิ่งหลงทาง ผ่าม!</p>



<h2 class="wp-block-heading">แหล่งที่มา</h2>



<ul class="wp-block-list">
<li><a href="https://medium.com/@visrow/zeespec-spec-driven-development-for-greenfield-vs-brownfield-projects-c593b5d88186" target="_blank" rel="noopener">ZeeSpec- Spec Driven Development for Greenfield vs Brownfield Projects</a> โดย Vishal Mysore</li>



<li><a href="https://dev.to/vishalmysore/spec-driven-development-with-zeespec-greenfield-vs-brownfield-4103" target="_blank" rel="noopener">Spec Driven Development with ZeeSpec : greenfield vs brownfield</a> บน DEV Community</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/7769/zeespec-spec/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>คู่มือการเขียน Prompt ที่ดี ให้ได้ผลตรงใจ จากคำแนะนำของ Google</title>
		<link>https://myifew.com/7753/writing-effective-prompts-by-google/</link>
					<comments>https://myifew.com/7753/writing-effective-prompts-by-google/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Fri, 03 Jul 2026 18:12:04 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=7753</guid>

					<description><![CDATA[ช่วงนี้ใครใช้ AI ช่วยทำงานน่าจะเจอคำแนะนำเรื่อง “เขียน prompt ให้ดี” บ่อยมาก แต่คำว่า prompt ที่ดีไม่ได้หมายถึงประโยคที่สวยหรือคำสั่งที่ยาวเสมอไป แก่นจริงๆ คือการบอก AI ให้เข้าใจงานเหมือนคนที่เรากำลัง brief งานอยู่ วันนี้ผมเอาคู่มือจาก Google&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ช่วงนี้ใครใช้ AI ช่วยทำงานน่าจะเจอคำแนะนำเรื่อง “เขียน prompt ให้ดี” บ่อยมาก แต่คำว่า prompt ที่ดีไม่ได้หมายถึงประโยคที่สวยหรือคำสั่งที่ยาวเสมอไป แก่นจริงๆ คือการบอก AI ให้เข้าใจงานเหมือนคนที่เรากำลัง brief งานอยู่</p>



<p class="wp-block-paragraph">วันนี้ผมเอาคู่มือจาก Google Workspace มาแนะนำ ซึ่งดีมากครับ ชื่อ <a href="https://workspace.google.com/intl/th/resources/ai/writing-effective-prompts/" target="_blank" rel="noopener">Writing effective prompts</a> เขาอธิบายไว้ค่อนข้างง่าย โดยเฉพาะสำหรับคนที่ใช้ Gemini (เจ้าอื่นๆก็ได้นะ อย่าง ChatGPT, Claude) ใน Gmail, Docs, Sheets หรือเครื่องมือทำงานประจำวัน แนวคิดหลักไม่ได้ซับซ้อน แต่เอาไปใช้จริงแล้วช่วยให้คำตอบดีขึ้นเยอะ</p>



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



<p class="wp-block-paragraph"><em>หมายเหตุ: บทความนี้ฟิวส์กับเอเจ้นชมพู ได้เรียบเรียงและอ้างอิงจากต้นฉบับ <a href="https://workspace.google.com/intl/th/resources/ai/writing-effective-prompts/" target="_blank" rel="noopener">Google Workspace : Writing effective prompts</a> </em></p>



<h2 class="wp-block-heading">Prompt คือการเริ่มบทสนทนา ไม่ใช่คำสั่งครั้งเดียว</h2>



<p class="wp-block-paragraph">จุดที่น่าสนใจในคู่มือนี้คือ Google บอกชัดว่า prompt ควรถูกมองเป็น “การเริ่มบทสนทนา” กับผู้ช่วย AI มากกว่าการสั่งครั้งเดียวแล้วรอคำตอบที่สมบูรณ์แบบทันที</p>



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



<h2 class="wp-block-heading">4 ส่วนที่ทำให้ prompt ชัดขึ้น</h2>



<p class="wp-block-paragraph">Google แนะนำว่าการเขียน prompt ให้ดีควรพิจารณา 4 ส่วน คือ role, task, context และ format แปลแบบใช้งานง่ายๆ ได้ประมาณนี้</p>



<ul class="wp-block-list">
<li><strong>Role:</strong> ให้ AI รับบทอะไร เช่น ผู้จัดการโครงการ นักวิเคราะห์ธุรกิจ นักเขียน technical document หรือที่ปรึกษาด้าน HR</li>



<li><strong>Task:</strong> อยากให้ทำอะไร เช่น สรุป เขียน draft วิเคราะห์ เปลี่ยนโทน จัดหมวดหมู่ หรือสร้าง checklist</li>



<li><strong>Context:</strong> ข้อมูลแวดล้อมที่ AI ต้องรู้ เช่น กลุ่มผู้อ่าน วัตถุประสงค์ เอกสารที่เกี่ยวข้อง ข้อจำกัด หรือสถานการณ์จริง</li>



<li><strong>Format:</strong> ต้องการผลลัพธ์หน้าตาแบบไหน เช่น bullet points, email, table, executive summary, action plan หรือข้อความสั้นสำหรับ Slack</li>
</ul>



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



<h2 class="wp-block-heading">ตัวอย่างที่เอาไปใช้ได้ทันที</h2>



<p class="wp-block-paragraph">แทนที่จะพิมพ์ว่า “ช่วยสรุปเอกสารนี้ให้หน่อย” ลองเขียนใหม่ให้มีกรอบมากขึ้น เช่น</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">คุณเป็น project manager ในทีม software development ช่วยสรุปเอกสารนี้เป็น executive summary สำหรับผู้บริหาร โดยเน้นความเสี่ยงหลัก timeline และ decision ที่ต้องตัดสินใจภายในสัปดาห์นี้ ขอเป็น bullet points ไม่เกิน 8 ข้อ</p>
</blockquote>



<p class="wp-block-paragraph">prompt แบบนี้ไม่ได้ยาวเพื่อความยาว แต่มันบอก AI ว่าควรมองข้อมูลจากมุมไหน ควรสกัดอะไร และควรส่งงานออกมาในรูปแบบใด</p>



<h2 class="wp-block-heading">เขียนด้วยภาษาปกติ แต่ต้องเฉพาะเจาะจง</h2>



<p class="wp-block-paragraph">อีกคำแนะนำที่ใช้ได้จริงคือเขียนเหมือนกำลังคุยกับคน ใช้ประโยคธรรมชาติ ไม่ต้องพยายามใช้ศัพท์เทคนิคหรือ syntax แปลกๆ เพื่อให้ดูเหมือน prompt engineer</p>



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



<h2 class="wp-block-heading">ทำให้สั้น แต่ไม่ตัดบริบทสำคัญ</h2>



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



<p class="wp-block-paragraph">หลักง่ายๆ คือถ้าข้อมูลนั้นมีผลต่อคำตอบ ให้ใส่เข้าไป เช่น audience, deadline, tone, constraint, success criteria หรือข้อมูลที่ใช้ตัดสินใจ แต่ถ้าเป็นรายละเอียดที่ไม่ได้เปลี่ยนผลลัพธ์ อาจไม่ต้องใส่ตั้งแต่ prompt แรก</p>



<h2 class="wp-block-heading">ใช้ข้อมูลของตัวเองให้เป็นประโยชน์</h2>



<p class="wp-block-paragraph">สำหรับคนที่ใช้ Gemini ใน Workspace จุดแข็งคือการทำงานกับไฟล์ของเราเอง เช่น เอกสารใน Google Drive, อีเมล, ชีต หรือข้อมูลในโปรเจกต์ คู่มือของ Google แนะนำให้ใช้เอกสารเหล่านี้เป็นบริบทเพื่อให้ผลลัพธ์ใกล้กับงานจริงมากขึ้น</p>



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



<h2 class="wp-block-heading">ให้ AI ช่วยปรับ prompt ก็ได้</h2>



<p class="wp-block-paragraph">ถ้ายังไม่แน่ใจว่าจะเขียน prompt อย่างไร Google แนะนำวิธีง่ายๆ คือให้ Gemini ช่วยปรับ prompt เดิมให้ดีขึ้นก่อน เช่น บอกว่า “ช่วยเปลี่ยน prompt นี้ให้เป็น prompt ที่มีประสิทธิภาพ” แล้วใส่ prompt เดิมลงไป</p>



<p class="wp-block-paragraph">วิธีนี้เหมาะกับงานที่เราเริ่มจากความคิดคร่าวๆ แต่ยังจัดรูปไม่ดีพอ AI จะช่วยเติม role, context หรือ format ที่ขาดไป จากนั้นเราค่อยตรวจอีกทีว่ามันยังตรงกับสิ่งที่ต้องการหรือไม่</p>



<h2 class="wp-block-heading">ต้องตรวจคำตอบก่อนใช้จริง</h2>



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



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



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



<p class="wp-block-paragraph">ถ้าจะจำให้สั้นที่สุด prompt ที่ดีควรตอบคำถามเหล่านี้ให้ได้: ให้ AI รับบทอะไร, ต้องทำงานอะไร, ต้องรู้บริบทอะไร และต้องส่งผลลัพธ์ออกมาในรูปแบบไหน</p>



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



<p class="wp-block-paragraph"><strong>อ้างอิง:</strong> <a href="https://workspace.google.com/intl/th/resources/ai/writing-effective-prompts/" target="_blank" rel="noopener">Google Workspace: การเขียนพรอมต์ AI ที่มีประสิทธิภาพสำหรับธุรกิจ</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/7753/writing-effective-prompts-by-google/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Loop Engineering: 3 ลูปที่ทำร่วมกับ AI Agent เพื่อสร้าง Product ได้จริง</title>
		<link>https://myifew.com/7748/loop-engineering-3-product-development-loops/</link>
					<comments>https://myifew.com/7748/loop-engineering-3-product-development-loops/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Wed, 01 Jul 2026 16:33:05 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=7748</guid>

					<description><![CDATA[สรุปแนวคิด Loop Engineering จาก Andrew Ng: agentic coding loop, developer feedback loop และ external feedback loop ที่ทำให้ AI agent ช่วยสร้าง product ได้จริง]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ช่วงนี้คำว่า <strong>Loop Engineering</strong> เริ่มถูกพูดถึงบ่อยขึ้นในวงการ AI coding หลังจาก Boris Cherny ผู้สร้าง Claude Code และ Peter Steinberger ผู้สร้าง OpenClaw พูดถึงเรื่องนี้จนเป็นกระแส</p>



<p class="wp-block-paragraph">Andrew Ng ก็เขียนถึงเรื่องนี้ใน The Batch โดยมองว่า “loop” เป็นวิธีคิดของการสร้าง product โดยเฉพาะงานแบบ 0-to-1 ที่ยังต้องหาทั้งรูปแบบของ product, user flow, feedback และ direction ไปพร้อมกัน</p>



<p class="wp-block-paragraph">ผมชอบกรอบนี้ เพราะมันอธิบายความจริงของการใช้ coding agent ได้ตรงดีมาก: AI ทำให้การเขียนโค้ดเร็วขึ้นก็จริง แต่ product ที่ดีไม่ได้เกิดจากความเร็วของ coding loop อย่างเดียว มันต้องมีอีกสองลูปที่ช้ากว่า แต่สำคัญกว่า</p>



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



<p class="wp-block-paragraph"><em>หมายเหตุ: บทความนี้ฟิวส์กับเอเจ้นชมพู ได้เรียบเรียงจากประสบการณ์การใช้งานจริง และอ้างอิงจากต้นฉบับคุณ Andrew Ng <a href="https://www.facebook.com/share/16znXFaukb/?mibextid=wwXIfr">https://www.facebook.com/share/16znXFaukb/?mibextid=wwXIfr</a></em></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="800" height="451" src="https://myifew.com/wp-content/uploads/2026/07/loop-engineering-3-product-development-loops.jpg" alt="3 key product development loops: agentic coding loop, developer feedback loop, and external feedback loop" class="wp-image-7747" srcset="https://myifew.com/wp-content/uploads/2026/07/loop-engineering-3-product-development-loops.jpg 800w, https://myifew.com/wp-content/uploads/2026/07/loop-engineering-3-product-development-loops-768x433.jpg 768w, https://myifew.com/wp-content/uploads/2026/07/loop-engineering-3-product-development-loops-542x306.jpg 542w, https://myifew.com/wp-content/uploads/2026/07/loop-engineering-3-product-development-loops-792x446.jpg 792w" sizes="auto, (max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">3 key product development loops จาก The Batch โดย Andrew Ng</figcaption></figure>
</div>


<h2 class="wp-block-heading">1. Agentic Coding Loop: ลูปของ AI ที่วนเป็นนาที</h2>



<p class="wp-block-paragraph">ลูปแรกคือการให้ AI coding agent ทำงานจาก product spec และอาจมี evals หรือ test cases เป็นตัววัดผล จากนั้น agent ก็เขียนโค้ด ทดสอบ แก้ แล้ววนต่อจนกว่าจะผ่านเงื่อนไขที่ตั้งไว้</p>



<p class="wp-block-paragraph">นี่คือสิ่งที่ทำให้ coding agent เริ่มมีประโยชน์จริงในช่วงหลัง จากเดิมที่ช่วย autocomplete หรือเขียน function สั้นๆ ตอนนี้มันเริ่มทำงานต่อเนื่องได้เป็นสิบๆ นาที หรือติดกันหลายชั่วโมง หรืออย่างผมเอง สั่งรันทั้งคืนและเช้าค่อยตื่นมาดู (ตรงใจก็มี เป๋ก็เยอะ ฮ่าๆ) โดยเอไอเองจะเปิด browser ตรวจงานที่ตัวเองทำ รัน test แล้วกลับมาพร้อมผลลัพธ์</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">ความเร็วของลูปนี้อยู่ในระดับ “นาที” ทุกไม่กี่นาที agent อาจสร้าง version ใหม่ของ software ได้แล้ว นี่คือจุดที่ engineer หลายคนกำลังทดลองกันหนักมากว่าจะออกแบบ loop แบบไหนให้ agent ทำงานได้นานขึ้น แต่ยังไม่หลุดจาก spec</p>
</blockquote>



<h2 class="wp-block-heading">2. Developer Feedback Loop: ลูปของคน ที่วนเป็นชั่วโมง</h2>



<p class="wp-block-paragraph">ลูปที่สองคือมนุษย์ หรือ developer ที่กลับมาดู product ที่ agent ทำ แล้วให้ทิศทางต่อว่าจะปรับอะไร</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">เมื่อก่อน developer มักต้องทำหน้าที่เหมือน QA ให้ coding agent คอยไล่ดู bug แล้วสั่งให้แก้ แต่ตอนนี้ agent ตรวจงานตัวเองได้ดีขึ้นมาก บทบาทของ developer จึงเริ่มขยับขึ้นมาที่ระดับ product มากขึ้น หรือต้องเป็น Product Owner ซะเอง เช่น feature ไหนควรมี, UI ตรงไหนยังไม่ดี, flow แบบไหนใช้ง่ายกว่า หรือ spec ตรงไหนยังคลุมเครือ</p>
</blockquote>



<p class="wp-block-paragraph">Andrew Ng ยกตัวอย่างแอปฝึกพิมพ์ให้ลูกสาว เขาเปลี่ยนใจหลายครั้งทั้งเรื่อง visual design, ชุดแมวที่เด็กจะปลดล็อกได้ และ flow สำหรับผู้ใหญ่ที่ต้องเข้ามาดูแลการเรียนรู้ของเด็ก จุดนี้เป็นตัวอย่างที่ดีมาก เพราะมันไม่ใช่ bug ที่ agent ทำการ test และจับจุดได้ แต่มันคือ product judgment</p>



<p class="wp-block-paragraph">หลายคนเรียกสิ่งนี้ว่ารสนิยม (taste) แต่ Andrew Ng ใช้คำว่า context advantage ซึ่งผมว่าชัดกว่า เพราะคนรู้บริบทของ user มากกว่า AI รู้ว่าลูกชอบอะไร รู้ว่าผู้ใหญ่จะใช้ระบบยังไง รู้ว่าของแบบไหน “ใช่” สำหรับ product นี้ คือคุณนั่นเอง ตราบใดที่ความรู้นี้ยังอยู่ในหัวคน มนุษย์ก็ยังต้องอยู่ในลูป (อันนี้ถูกใจ เพราะที่มีเทคโนโลยี ณ ขณะนี้ ผมเองยังมีความเชื่อเรื่อง HITL : Human-in-the-Loop แต่คนจะเข้ามามากหรือน้อย อยู่ที่กระบวนการออกแบบ Workflow ว่าจุดไหนเรายังไม่มั่นใจใน agent โดยเฉพาะจุดที่มนุษย์ต้องเป็นคนกำหนดทิศทาง)</p>



<h2 class="wp-block-heading">3. External Feedback Loop: ลูปของโลกความเป็นจริง ที่วนเป็นวัน</h2>



<p class="wp-block-paragraph">ลูปสุดท้ายคือ feedback จากคนนอกทีม อาจเป็นเพื่อนกลุ่มเล็กๆ, alpha testers, user จริง หรือข้อมูลจากการเปิดใช้งานบน production เช่น การทำ A/B testing</p>



<p class="wp-block-paragraph">ลูปนี้ช้าที่สุด อาจใช้เวลาหลายชั่วโมง หลายวัน หรือหลายสัปดาห์ แต่เป็นลูปที่ทำให้ product vision ไม่ลอยอยู่ในหัว developer อย่างเดียว ข้อมูลจากโลกความเป็นจริงจะย้อนกลับมาเปลี่ยนมุมมองของเรา (feedback) แล้วมุมมองใหม่นั้นก็จะกลายเป็น spec ใหม่ให้ coding agent ทำต่อ</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">พูดอีกอย่างคือ agentic coding loop ทำให้เราสร้างของได้เร็วขึ้น แต่ external feedback loop บอกเราว่าสิ่งที่เราสร้างนั้นควรไปทางไหนต่อ</p>
</blockquote>



<h2 class="wp-block-heading">Engineer กำลังเข้าใกล้บทบาท Product Owner มากขึ้น</h2>



<p class="wp-block-paragraph">จุดที่ผมคิดต่อเยอะที่สุดคือ เมื่อ coding agent ทำให้การ build เร็วขึ้น engineer ก็เริ่มต้องรับบท product management มากขึ้นโดยธรรมชาติ</p>



<p class="wp-block-paragraph">งานที่ยากขึ้นไม่ใช่การสั่ง AI ให้เขียนโค้ด แต่คือการตัดสินใจว่าอะไรควรถูกสร้างก่อน อะไรควรตัดทิ้ง spec ควรละเอียดแค่ไหน feedback จาก user ควรรอเมื่อไหร่ และเมื่อไหร่ที่เราควรหยุดทำให้ระบบมันเพอเฟก (polish) แล้วเอาของออกไปให้คนใช้จริงๆ</p>



<p class="wp-block-paragraph">นี่คือ balance ที่ยากมาก เพราะถ้า build อย่างเดียว เราอาจได้ software ที่ทำงานได้ แต่ไม่มีใครอยากใช้, ถ้ารอ feedback อย่างเดียว เราก็ไม่เดินหน้าเสียที Product ที่ดีต้องมีทั้งสองด้าน คือ build ให้เร็วพอ และรับ feedback จากโลกธุรกิจหรือการใช้จริงให้ทัน</p>



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



<p class="wp-block-paragraph">ผมมองว่า Loop Engineering เป็นคำที่มีประโยชน์กว่า “prompt engineering” มาก เพราะมันย้ายจุดสนใจจากการเขียนคำสั่งทีละรอบ ไปสู่การออกแบบระบบการทำงานที่วนเองได้</p>



<ul class="wp-block-list">
<li><strong>Agentic coding loop</strong> ทำให้ AI สร้างและทดสอบ software ได้เร็วขึ้น</li>



<li><strong>Developer feedback loop</strong> ทำให้มนุษย์เติม context, taste และ product judgment</li>



<li><strong>External feedback loop</strong> ทำให้ product ไม่หลุดจาก user และโลกจริง</li>
</ul>



<p class="wp-block-paragraph">ถ้าจะใช้ AI agent ให้คุ้มจริง ผมคิดว่าเราไม่ควรถามแค่ว่า “จะ prompt ยังไงให้มันเขียนโค้ดเก่งขึ้น” แต่ควรถามว่า “เราจะออกแบบ loop ยังไงให้มันทำงานต่อเนื่อง ตรวจตัวเองได้ และรับ feedback กลับมาเปลี่ยน product ได้ดีขึ้น”</p>



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



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



<p class="wp-block-paragraph"><em>Source: The Batch by Andrew Ng</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/7748/loop-engineering-3-product-development-loops/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>go above and beyond : ทำเกินหน้าที่ คุ้มหรือเจ็บ?</title>
		<link>https://myifew.com/6743/go-above-and-beyond/</link>
					<comments>https://myifew.com/6743/go-above-and-beyond/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Sat, 27 Jun 2026 19:24:44 +0000</pubDate>
				<category><![CDATA[Lifestyle]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=6743</guid>

					<description><![CDATA[ผมเชื่อว่าหลายคนคงเคยเจอสถานการณ์แบบนี้ครับ งานตรงหน้าไม่ใช่งานของเราแท้ๆ แต่พอเห็นแล้วรู้สึกว่าถ้าปล่อยไว้ มันน่าจะช้ากว่าเดิม เลยยื่นมือเข้าไปช่วยเอง บางครั้งมันเริ่มจากความหวังดี บางครั้งเริ่มจากความคันมือของคนทำงานสายแก้ปัญหาแบบเราๆ นี่แหละ เห็นอะไรไม่ลื่นก็อยากจัดให้มันลื่นขึ้นอีกนิด ปัญหาคือโลกการทำงานชอบเล่าเรื่องนี้แบบสวยเกินจริง เหมือนแค่ go above and beyond แล้วทุกอย่างจะดีเอง ทั้งเติบโต ได้โปรโมต&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ผมเชื่อว่าหลายคนคงเคยเจอสถานการณ์แบบนี้ครับ งานตรงหน้าไม่ใช่งานของเราแท้ๆ แต่พอเห็นแล้วรู้สึกว่าถ้าปล่อยไว้ มันน่าจะช้ากว่าเดิม เลยยื่นมือเข้าไปช่วยเอง</p>



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



<p class="wp-block-paragraph">ปัญหาคือโลกการทำงานชอบเล่าเรื่องนี้แบบสวยเกินจริง เหมือนแค่ <strong>go above and beyond</strong> แล้วทุกอย่างจะดีเอง ทั้งเติบโต ได้โปรโมต ได้รับการยอมรับ แต่ในชีวิตจริง มันไม่ตรงไปตรงมาขนาดนั้นครับ บางครั้งมันคุ้มมาก บางครั้งก็พาเราไปสู่ burnout แบบงงๆ เหมือนกัน</p>



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



<p class="wp-block-paragraph"><em>หมายเหตุ: บทความนี้ฟิวส์กับเอเจ้นชมพู ได้เรียบเรียงจากประสบการณ์การใช้งานจริง</em></p>



<h2 class="wp-block-heading">ปัญหาไม่ได้อยู่ที่ขยันหรือไม่ แต่อยู่ที่ขอบเขต</h2>



<p class="wp-block-paragraph">ผมว่าต้องแยกก่อนว่า <strong>การทำเกินหน้าที่</strong> ไม่ได้เท่ากับ <strong>การแบกทุกอย่าง</strong> เสมอไป</p>



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



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">การทำเกินหน้าที่ที่ดี ต้องเพิ่ม leverage ไม่ใช่เพิ่มภาระแบบไม่มีปลายทาง</p>
</blockquote>



<h2 class="wp-block-heading">ด้านที่คุ้ม มันคุ้มจริง</h2>



<p class="wp-block-paragraph">ต้องยอมรับก่อนว่าการทำเกินหน้าที่มีด้านดีจริงครับ โดยเฉพาะในช่วงที่เรายังอยากโต อยากเรียนรู้ หรืออยากสร้างความน่าเชื่อถือให้ตัวเอง</p>



<p class="wp-block-paragraph">เวลาเราเข้าไปแตะงานที่กว้างกว่าขอบเขตเดิม เรามักได้เห็นภาพรวมมากขึ้น ได้ฝึกทักษะใหม่ และได้เข้าใจว่าธุรกิจเดินยังไง ไม่ใช่เห็นแค่ task ตรงหน้า จุดนี้สำคัญมาก เพราะหลายครั้งคนที่โตเร็ว ไม่ได้โตเพราะทำงานเยอะกว่าอย่างเดียว แต่โตเพราะเห็นระบบใหญ่กว่าเดิม</p>



<p class="wp-block-paragraph">อีกอย่างที่มักได้กลับมาคือ trust ครับ ถ้าคนในทีมเริ่มรู้ว่าเวลาเรื่องมันติด เราเป็นคนที่ช่วยคลี่ได้ เขาก็จะเริ่มนึกถึงเราในงานสำคัญ อันนี้ไม่ใช่ personal branding แบบสร้างภาพนะ แต่มันคือเครดิตจากของจริง</p>



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



<h2 class="wp-block-heading">แต่ถ้าทำไปเรื่อยๆ โดยไม่คิด มันเริ่มเจ็บ</h2>



<p class="wp-block-paragraph">ด้านมืดของเรื่องนี้คือ งานที่ทำเกินหน้าที่จำนวนมากกลายเป็น <strong>invisible labor</strong> ครับ ทำจริง เหนื่อยจริง แต่ไม่มีใครนับเป็นผลงานอย่างจริงจัง</p>



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



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



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



<h2 class="wp-block-heading">ถ้าจะทำเกินหน้าที่ ควรเลือกทำแบบมีทรง</h2>



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



<ul class="wp-block-list">
<li>เลือกงานที่ทำแล้วเราได้เรียนรู้อะไรเพิ่ม ไม่ใช่แค่เหนื่อยเพิ่ม</li>



<li>เลือกงานที่ช่วยทั้งทีมหรือระบบ มากกว่างานจุกจิกที่ต้องมานั่งเช็ดตามหลังตลอด</li>



<li>คุยขอบเขตกับหัวหน้าให้ชัด ว่าเรากำลังช่วยเรื่องไหน ชั่วคราวหรือถาวร</li>



<li>ถ้างานเพิ่มกลายเป็นความรับผิดชอบจริง ก็ควรคุยเรื่อง title, scope หรือผลตอบแทนให้ตรงไปตรงมา</li>
</ul>



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



<h2 class="wp-block-heading">ในยุค AI ความขยันอย่างเดียวเริ่มไม่พอ</h2>



<p class="wp-block-paragraph">ยิ่งต่อจากนี้ ผมยิ่งรู้สึกว่าแนวคิด go above and beyond ต้องตีความใหม่ครับ เพราะงาน routine จำนวนมาก AI และ automation จะเข้ามาช่วยได้มากขึ้นเรื่อยๆ</p>



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



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



<p class="wp-block-paragraph">คนแบบนี้ยังไงก็มีค่าครับ เพราะเขาไม่ได้แค่เติมแรง แต่เติมทิศทาง</p>



<h2 class="wp-block-heading">สรุปในมุมของผม</h2>



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



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



<p class="wp-block-paragraph">สุดท้าย ผมว่าเป้าหมายไม่ใช่การทำให้เกินหน้าที่ตลอดเวลา แต่คือการทำงานให้มีน้ำหนักพอที่คนเห็นคุณค่า โดยไม่ต้องเผาตัวเองทิ้งไปกับมัน</p>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/6743/go-above-and-beyond/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>LLM Wiki : คลังความรู้ส่วนตัว ตามแบบฉบับของ Karpathy</title>
		<link>https://myifew.com/7636/llm-wiki-karpathy/</link>
					<comments>https://myifew.com/7636/llm-wiki-karpathy/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Tue, 23 Jun 2026 18:06:30 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Andrej Karpathy]]></category>
		<category><![CDATA[knowledge management]]></category>
		<category><![CDATA[LLM Wiki]]></category>
		<category><![CDATA[RAG]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=7636</guid>

					<description><![CDATA[ช่วงนี้เห็นคนรอบตัวทำระบบ Second Brain หลายท่าน เอาไว้เก็บข้อมูลความรู้ที่ตัวเองสนใจ หรืออะไรบางอย่างที่อยากบันทึกไว้จดจำเพื่ออ่านภายหลัง แต่ในโพสต์นี้ผมขอข้ามเรื่องนี้ไปก่อน แต่ที่ผมชอบและให้ความสนใจมากๆ คือ มีการนำแนวคิด LLM Wiki ของ คุณ Andrej Karpathy มาใช้ (บิดาผู้ตั้งชื่อ&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ช่วงนี้เห็นคนรอบตัวทำระบบ Second Brain หลายท่าน เอาไว้เก็บข้อมูลความรู้ที่ตัวเองสนใจ หรืออะไรบางอย่างที่อยากบันทึกไว้จดจำเพื่ออ่านภายหลัง แต่ในโพสต์นี้ผมขอข้ามเรื่องนี้ไปก่อน แต่ที่ผมชอบและให้ความสนใจมากๆ คือ มีการนำแนวคิด LLM Wiki ของ คุณ Andrej Karpathy มาใช้ (บิดาผู้ตั้งชื่อ Vibe Coding) ซึ่งตัวแนวคิดเองค่อนข้างเรียบง่าย แต่มีระบบระเบียบ และการนำมาพัฒนาใช้งาน ก็ง่ายไม่ต่างกัน ซึ่งช่วงนี้หากใครเคยเห็นหรือได้ยินคำว่า Knowledge Graph หรือแอพชื่อ Obsidian แล้วหละก็ เขามักเอามาทำใช้กับ LLM Wiki นี่เอง</p>



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



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



<p class="wp-block-paragraph"><em>หมายเหตุ: บทความนี้ฟิวส์กับเอเจ้นชมพู ได้เรียบเรียงจากประสบการณ์การใช้งานจริง และอ้างอิงสรุปที่แปลจากต้นฉบับ เรื่อง <a href="https://agentpedia.codes/blog/karpathy-llm-wiki-idea-file" data-type="link" data-id="https://agentpedia.codes/blog/karpathy-llm-wiki-idea-file">Karpathy&#8217;s LLM Wiki: The Complete Guide to His Idea File</a> </em></p>



<h3 class="wp-block-heading">1. ปัญหาที่แท้จริงไม่ใช่การหาข้อมูล (information) แต่คือการสะสมความเข้าใจ (understanding)</h3>



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



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



<figure class="wp-block-embed is-type-rich is-provider-x wp-block-embed-x"><div class="wp-block-embed__wrapper">
https://twitter.com/karpathy/status/2039805659525644595?s=20
</div></figure>



<h3 class="wp-block-heading">2. แม้ RAG จะมีประโยชน์ แต่อาจไม่ใช่คำตอบทั้งหมด</h3>



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



<p class="wp-block-paragraph">RAG จะเก่งเรื่อง retrieval และ on-demand synthesis แต่ LLM Wiki เน้นการสร้าง knowledge artifact ที่อยู่ยาวๆ และได้คำตอบแน่นอนเสมอ พูดง่ายๆ คือ RAG ช่วยให้ “ตอบได้” ส่วน wiki ช่วยให้ “รู้เป็นระบบ” มากขึ้น ถ้าโจทย์คือการสร้างฐานความรู้ระยะยาว ผมคิดว่าจุดนี้สำคัญมาก</p>



<h3 class="wp-block-heading">3. ชุดข้อมูล LLM Wiki จะมีลักษณะ Compounding</h3>



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



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



<p class="wp-block-paragraph">เจ๋งไหมล่ะ!</p>



<h3 class="wp-block-heading">4. LLM Wiki  กับโมเดลเรียบง่ายแค่สามชุด</h3>



<p class="wp-block-paragraph">เป็นความเรียบง่ายที่ผมชอบ คือ เขาวางข้อมูลไว้แค่ 3 ชุดโดยมี Raw, Wiki, Schema โดย </p>



<p class="wp-block-paragraph">ชั้นแรก คือ <strong>Raw</strong> สำหรับเก็บต้นฉบับหรือ source ดิบแบบไม่แก้ไข (Single source of truth) ตั้งแต่ text, pdf, docx, xlsx ที่เราส่งเข้าไป (ingest) อย่างไร มันก็เก็บไว้อย่างนั้น เพื่ออ้างอิง</p>



<p class="wp-block-paragraph">ชั้นที่สอง คือ <strong>Wiki</strong> ซึ่งเป็นชั้นที่เกิดจาก LLM ทำการสังเคราะห์ข้อมูลจาก Raw ให้แตกเป็นความรู้ในหัวข้อต่างๆ หาความเชื่อมโยง และสรุปออกมาให้เราอ่าน </p>



<p class="wp-block-paragraph">ส่วนชั้นที่สาม คือ <strong>Schema</strong> หรือ กติกาว่าระบบนี้จะ ingest ยังไง จะตั้งชื่อยังไง จะ cross-link ชุดข้อมูลกันยังไง หรือจะ review ยังไง</p>



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



<h3 class="wp-block-heading">5. การ Ingest และ Query</h3>



<p class="wp-block-paragraph">หลายคนมักโฟกัสว่า AI Assistant ตอบคำถามได้ดีไหม แต่ถ้ามองให้ลึกกว่านั้น มันต้องดูตั้งแต่การนำเข้าข้อมูล (Ingest) ซึ่งเป็นงานระดับโครงสร้างเลยครับ เพราะทุกครั้งที่เอา data source ใหม่เข้าไป ระบบต้องรู้ด้วยว่าต้องทำการปรับปรุง knowledge graph ของความรู้เดิมด้วย ไม่ใช่แค่เก็บเอกสารเพิ่มอีกหนึ่งก้อน</p>



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



<p class="wp-block-paragraph">ส่วนการ Query จะเป็นเหมือนเรื่องการใช้ prompt, ที่ถ้าเราถามได้ดี ข้อมูลก็ออกมาตามที่ต้องการ (แต่ยุคนี้แล้ว ความฉลาดของ LLM ช่วยเราได้เยอะ) </p>



<h3 class="wp-block-heading">6. ทำไม idea file ถึงน่าสนใจกว่าการเขียนถึงวิธี implementation</h3>



<p class="wp-block-paragraph">อ่านมาถึงตรงนี้ อาจจะผิดหวังนิดหนึ่งที่ทำไมในบทความแปล หรือผมไม่สอนการติดตั้ง LLM Wiki สักทีนึง 555, เพราะผมคิดว่าถ้าเราเข้าใจหลักการ เราสามารถทำเองได้นะ เหมือนที่ผมเคยนั่งอ่าน LLM Wiki และนั่งทำขึ้นมาเอง ก่อนจะพบว่า สิ่งที่ตนเองอ่านนั้น คือ Markdown file ที่โยนไปสั่ง AI implement ได้เลย (ฮาาา) </p>



<p class="wp-block-paragraph">จริงๆ แล้ว ความหน้าแตกของผม มันสะท้อนถึงความเก่งของคุณ Andrej Karpathy เลยนะ ที่เขียนเล่าเป็นไอเดีย (idea file) ไว้ที่ <a href="https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f">https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f</a>  , ซึ่งถ้าเข้าไปอ่านดู จะพบว่า มนุษย์อย่างเราสามารถอ่านแล้วเข้าใจคอนเซปเขาได้ แต่ในขณะเดียวกัน โยนให้ AI อ่าน มันจะสามารถนำไป Implement ระบบ LLM Wiki ได้ด้วยเช่นกัน</p>



<p class="wp-block-paragraph">ซึ่งการการแชร์ idea file แบบนี้ ผมว่า เข้าใจง่ายกว่าการเขียนวิธีทำทีละขั้นตอนอีก เพราะมันส่งต่อเจตนา โครงสร้าง และ workflow โดยไม่บังคับว่าทุกคนต้องใช้ Technology stack อะไร, เครื่องคอมฯ แบบไหน หรือ AI อะไร </p>



<h3 class="wp-block-heading">7. สิ่งที่เปลี่ยนจริงๆ คือบทบาทของมนุษย์</h3>



<p class="wp-block-paragraph">ถ้าเอาแนวคิดนี้มาใช้จริง บทบาทของคนจะไม่ได้อยู่ที่การเขียนสรุปทุกย่อหน้าด้วยตัวเองตลอดเวลา แต่ไปอยู่ที่การคัด data source ดีๆ การถามคำถามให้คม การออกแบบ taxonomy และการตัดสินใจว่าความรู้ชิ้นไหนควรนำเข้ามาสังเคราะห์เป็น Knowledge Based ของเรา</p>



<p class="wp-block-paragraph">ส่วน LLM จะช่วยทำงานที่ซ้ำและกินแรง เช่น สรุป เชื่อมโยง สร้าง backlinks อัปเดตหน้าที่เกี่ยวข้อง และดูแลความสม่ำเสมอของฐานความรู้ </p>



<p class="wp-block-paragraph">พูดอีกแบบคือมนุษย์ขยับขึ้นไปทำงาน judgement มากขึ้น ส่วน AI จะรับงาน maintenance มากขึ้น</p>



<h3 class="wp-block-heading">8. เริ่มต้นจากสิ่งเล็กๆ แต่เริ่มให้ถูก</h3>



<p class="wp-block-paragraph">ถ้าถามผม วิธีเริ่มที่ดี คือ อย่าเพิ่งไปคิด infrastructure ใหญ่โตเกินไปครับ เริ่มจากใช้ในเครื่องคอมพิวเตอร์เรานี่เอง ที่ติดตั้ง AI Code อะไรสักตัว เช่น Claude Code, ChatGPT Codex และโยนไฟล์ idea ไปให้สร้างระบบตามคอนเปซนั้น จากนั้นค่อยๆคัดว่าข้อมูลใดเราจะนำเข้า (ingest) </p>



<h3 class="wp-block-heading">9. สรุปในมุมของผม</h3>



<p class="wp-block-paragraph">สิ่งที่ผมได้จากบทความนี้คือคอนเซปและวิธีคิดในการสร้าง Knowledge Based ด้วยหลักการ LLM WIki ของ คุณ Andrej Karpathy ซึ่งมันไม่ใช่ข้อสรุปนะว่า LLM Wiki ที่เป็น Markdown file จะดีกว่า RAG แต่เป็นการนำเสนอให้เห็นว่า ถ้าเราอยากสร้างระบบความรู้ที่ยิ่งใช้ยิ่งดี เราต้องสนใจเรื่อง structure, ingest และ maintenance มากพอๆ กับเรื่อง model capability หรือเทคโนโลยีที่อาจจะอลังการเกินไป</p>



<p class="wp-block-paragraph">แต่ในโลกความเป็นจริง เราคงไม่ได้เลือกอย่างใดอย่างหนึ่งหรอกครับ อนาคตถ้าระบบใหญ่มากขึ้น เราอาจจะใช้ทั้ง RAG และ Wiki ร่วมกัน แต่ถ้าโจทย์คือการสร้างฐานความรู้ส่วนตัวหรือทีมที่สะสมความรู้ได้เรื่อยๆ ในระยะยาว แนวคิดแบบ LLM-maintained wiki ของ Karpathy น่าจะเป็นจุดเริ่มต้นที่ดี และง่ายกับใครหลายๆคน รวมถึงผมด้วย</p>



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



<ul class="wp-block-list">
<li>Karpathy&#8217;s LLM Wiki: The Complete Guide to His Idea File<a href="https://agentpedia.codes/blog/karpathy-llm-wiki-idea-file" target="_blank"> </a><a href="https://agentpedia.codes/blog/karpathy-llm-wiki-idea-file">https://agentpedia.codes/blog/karpathy-llm-wiki-idea-file</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/7636/llm-wiki-karpathy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Spec-Driven Development ในยุค AI จะช่วยทีมทำงานได้เร็วขึ้น?</title>
		<link>https://myifew.com/7704/spec-driven-development-ai-thai/</link>
					<comments>https://myifew.com/7704/spec-driven-development-ai-thai/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Fri, 19 Jun 2026 18:25:46 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI Coding]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Spec Driven Development]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=7704</guid>

					<description><![CDATA[AI ทำให้การเขียนโค้ดเร็วขึ้นก็จริง แต่คอขวดใหม่ของทีมซอฟต์แวร์กลับย้ายไปอยู่ที่ requirement, context และความเข้าใจร่วม บทความนี้ชวนมอง Spec-Driven Development ว่าอาจเป็นภาษากลางที่ทีมเทคไทยต้องมี ถ้าอยากใช้ AI ให้คุ้มกว่าการแค่พิมพ์ไวขึ้น]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ตลอดเวลาที่โลกได้มีกระบวนการทำซอร์ฟแวร์ขึ้นมา &#8220;การเขียนโค้ด&#8221; มักเป็นคอขวดในกระบวน ที่มนุษย์ต้องใช้เวลาในการรังสรรค์โค้ดทีละบรรทัด ทำไปทีละฟีเจอร์ อาศัยแรงกายแรงใจแบบเต็มเหนี่ยว นั่งหลังขดหลังแข็งจนได้ซอร์ฟแวร์ขึ้นมาตัวหนึ่ง แต่เมื่อโลกได้รู้มี AI ที่ฉลาดพอ (สัก 2 ปีที่ผ่านมา) มาอยู่ข้างๆ แป้นพิมพ์ ภาพเดิมก็เริ่มเปลี่ยนเร็วเกินคาด แต่คอขวดไม่ได้หายไปจากกระบวนการพัฒนาซอร์ฟแวร์ มันแค่ย้ายที่จากบรรทัดโค้ดไปซ่อนตัวอยู่ใน requirement ที่คลุมเครือ บริบทและเงื่อนไขทางธุรกิจที่กระจัดกระจาย และคำถามง่ายๆ ที่ตอบยากอย่างไม่น่าเชื่อว่า “สุดท้ายแล้ว เรากำลังสร้างอะไรกันแน่ และขอบเขตมีแค่ไหน”</p>



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



<p class="wp-block-paragraph"><em>หมายเหตุ: บทความนี้ฟิวส์กับเอเจ้นชมพู ได้เรียบเรียงและแปลจากต้นฉบับของ Evgeni Rusev เรื่อง <a href="https://evgenirusev.com/posts/spec-driven-development-guide/" target="_blank" rel="noopener">Spec-Driven Development: A Practical Guide for AI-Accelerated Teams</a></em></p>



<h2 class="wp-block-heading">วันที่โค้ดอาจไม่ใช่คอขวดอีกต่อไป</h2>



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



<p class="wp-block-paragraph">ผู้เขียนบทความ (Evgeni Rusev) มองว่าความสูญเสียครั้งใหญ่ของทีมยุค AI ไม่ได้เกิดตอนพิมพ์โค้ด แต่อยู่ในขั้นตอนก่อนหน้านั้นต่างหาก ตอนที่ทุกคนพยายามปะติดปะต่อว่า ซอร์ฟแวร์ที่ต้องการ จะต้องมีอะไรในเอกสาร requirement บ้าง ใครเคยตกลงอะไรไว้ เงื่อนไขทางธุรกิจคืออะไร ทำไมระบบถึงทำงานแบบนี้ และอะไรคือสิ่งที่ “ทุกคนรู้กันอยู่แล้ว” แต่ไม่มีใครพูดหรือเขียนมันออกมา</p>



<p class="wp-block-paragraph">ประโยคนี้มักได้ยินบ่อยๆในวงสนทนาของชาวเดฟ และฟังดูเจ็บๆ เพราะ AI อาจช่วยเขียน feature ได้ในเวลาอันสั้น ทว่าถ้าทีมยังต้องเสียเวลาขุดแชตเก่า ไล่อ่าน ticket เดิม และถาม System Analyst หรือ Senior Engineer ซ้ำๆ แล้วหละก็, productivity ที่เหมือนได้มาจาก AI ก็จะค่อยๆ หายไป จนสุดท้าย อาจจะทำงานได้เร็วกว่ากระบวนการเดิมเพียง 10-30% เท่านั้น (อ้างอิงจากหลายบทวิเคราะห์ เช่น <a href="https://arxiv.org/html/2410.12944v2">arxiv.org</a>, <a href="https://newsletter.getdx.com/p/how-much-does-ai-impact-development-speed">getdx.com</a>, <a href="https://www.mckinsey.com/capabilities/tech-and-ai/our-insights/the-ai-revolution-in-software-development">mckinsey.com</a> &#8211; ฟิวส์)</p>



<h2 class="wp-block-heading">จาก Ticket และ PRD ที่เขียนครั้งเดียว ไปสู่ Living Spec </h2>



<p class="wp-block-paragraph">ข้อแนะนำของบทความนี้ คือ ให้ใช้ <strong>spec</strong> เป็นเอกสารกลาง และต้องยังอธิบายได้ว่า “ระบบควรทำอะไรในตอนนี้” ไม่ใช่เมื่อสามเดือนที่แล้ว หรือไม่ใช่ตอน kickoff โปรเจกต์ และไม่ใช่ตามความทรงจำของใครคนใดคนหนึ่ง.. (เจ็บปวดอีกแล้ว ฮ่าๆ)</p>



<p class="wp-block-paragraph">ผู้เขียนได้แยกบทบาทของเอกสารได้คมมากๆ 3 ประเภท</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ประเภทเอกสาร (Artifact)</th><th>หน้าตาของเอกสาร</th><th>ช่วงเวลา</th></tr></thead><tbody><tr><td><strong>PRD (Product Requirement Document)</strong></td><td>เอกสารส่งมอบอย่างเป็นทางการที่ระบุว่าผลิตภัณฑ์จะเป็นอย่างไร</td><td>Snapshot &#8211; เขียนเพียงครั้งเดียวในวันเริ่มต้นโครงการหรือกิจกรรม</td></tr><tr><td><strong>Issues, Request, Jira Ticket (or Story Card)</strong></td><td>ขอบเขตงานเล็กๆ ที่กำหนดไว้ซึ่งทีมกำลังดำเนินการในสปรินต์หรือกรอบช่วงเวลาหนึ่ง</td><td>Snapshot &#8211; จะฟรีช ณ ช่วงเวลาหนึ่งตามที่ PO/QA อนุมัติให้ทำ</td></tr><tr><td><strong>Spec หรือ Living Document</strong></td><td>คำอธิบายโดยละเอียดเกี่ยวกับสิ่งที่ผลิตภัณฑ์ทำได้ในปัจจุบันและสิ่งที่ควรจะทำได้ในอนาคต</td><td>Continuous &#8211; อัปเดตทุกครั้งที่ข้อกำหนดเปลี่ยนแปลง ที่ต้องสะท้อนความจริงปัจจุบันของพฤติกรรมระบบ</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">อีกจุดที่ผู้เขียนเน้นชัด คือ Spec ไม่ควรกลายเป็น Technical Design Document หน้าที่ของมันคืออธิบาย <em>What</em> และ <em>Why</em> มากกว่า <em>How</em> ถ้าเอกสารเริ่มลงลึกถึง Endpoint, Database Schema หรือ Framework  มากเกินไป เราก็กำลังเอาแปลนบ้านไปปนกับวิธีการก่ออิฐ เทปูน แล้ว (เป็นจุดที่ผมชอบใจการเปรียบเทียบมาก &#8211; ฟิวส์)</p>



<p class="wp-block-paragraph">ตัวอย่าง เมื่อเทียบระหว่าง Spec (ในที่นี้คือ Product Spec) กับ Technical Spec</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Product Spec (อธิบายพฤติกรรม หรือเงื่อนไขทางธุรกิจ)</th><th>Technical spec / ADR (Solution)</th></tr></thead><tbody><tr><td>“Manager must approve any invoice over $5,000&#8243;</td><td>&#8220;Approval queue service with role-based routing&#8221;</td></tr><tr><td>&#8220;Submitter sees the approval status in real time&#8221;</td><td>&#8220;Push status updates via SSE / WebSocket&#8221;</td></tr><tr><td>&#8220;Approved invoices appear in the accounting system within 24 hours&#8221;</td><td>&#8220;Nightly batch sync to the accounting API&#8221;</td></tr><tr><td>&#8220;Submitter can attach a PDF receipt up to 25 MB&#8221;</td><td>&#8220;Pre-signed S3 upload; 25 MB enforced server-side”</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Spec ที่ดี ไม่ได้เขียนละเอียดหรือเยิ่นเย้อเกินไป แต่ต้องชัดเจน</h2>



<p class="wp-block-paragraph">ที่ผมชอบบทความนี้ คือ มันไม่ได้บอกแค่ว่า “ควรมี Spec” แต่ยังบอกด้วยว่า Spec ที่ใช้งานได้ควรมีอะไรบ้าง อย่างน้อยที่สุดควรตอบคำถามเหล่านี้ให้ได้</p>



<ul class="wp-block-list">
<li>ปัญหาที่กำลังแก้คืออะไร</li>



<li>ใครคือผู้ใช้หรือผู้ได้รับผลกระทบ</li>



<li>เป้าหมายคืออะไร</li>



<li>อะไรคือสิ่งที่ตั้งใจไม่ทำ</li>



<li>งานจะถือว่าเสร็จเมื่อไร</li>



<li>มีข้อจำกัดอะไรที่ห้ามแตะ</li>



<li>มีความเสี่ยงหรือคำถามอะไรที่ยังเปิดอยู่</li>
</ul>



<p class="wp-block-paragraph">ฟังดูเหมือนเรื่องพื้นฐาน แต่หลายทีมกลับไม่ค่อยเขียนส่วนที่สำคัญที่สุดอย่าง <strong>non-goals</strong> และ <strong>acceptance criteria</strong> ทั้งที่สองอย่างนี้คือรั้วกัน scope creep และเป็นภาษากลางที่ช่วยให้ PM, Dev, QA และ AI มองโจทย์เดียวกันด้วยสายตาใกล้เคียงกันมากขึ้น</p>



<p class="wp-block-paragraph">พูดให้ง่ายขึ้น Spec ที่ดีไม่ใช่เอกสารที่เยอะ แต่เป็นเอกสารที่ทำให้การเดาลดลง คนอ่านแล้วไม่ต้องตีความเอาเองเยอะ และ AI อ่านแล้วไม่เผลอเลี้ยวเข้าเส้นทางที่ไม่มีใครตั้งใจให้ไป</p>



<p class="wp-block-paragraph">ลองดูตัวอย่างโครงสร้างของ Spec (ซึ่งถ้าใครเคยสังเกต Spec ที่ AI เขียน ก็จะมีหัวข้อพื้นฐานประมาณนี้แหละ &#8211; ฟิวส์)</p>



<pre class="wp-block-code"><code># &#91;Feature Name]

**Status:** Draft | In Review | Approved | Superseded
**Owner:** &#91;Name / Team]
**Last Updated:** &#91;YYYY-MM-DD]

## Problem
A specific story showing why the status quo doesn't work. Name the user.

## Users
| User           | Role           | Context              |
| -------------- | -------------- | -------------------- |
| &#91;Name/Persona] | &#91;What they do] | &#91;Relevant details]   |

## Goals
- &#91;Outcome this feature serves]

## Non-Goals
- &#91;Thing we are deliberately not doing — prevents scope creep]

## Acceptance Criteria
- **AC-1:** &#91;Concrete, testable, plain-language behavior]
- **AC-2:** ...

## Constraints
| Constraint | Source | Impact |

## Risks &amp; Open Questions
- &#91; ] &#91;Decision still to be resolved]</code></pre>



<h2 class="wp-block-heading">เหตุผลที่ AI ชอบเอกสารชัดๆ มากกว่าความคลุมเครือ</h2>



<p class="wp-block-paragraph">หนึ่งในประโยคที่คมที่สุดของบทความนี้คือ<em><strong> AI works from the spec, not from assumptions.</strong></em> </p>



<p class="wp-block-paragraph">ถ้าเราส่งงานให้ AI โดยข้อมูลยังแยกกันอยู่ใน Slack, Jira, meeting transcript หรือจากความทรงจำของใครสักคนในทีม AI โมเดลก็จะต้องเติมช่องว่างเองด้วยการเดา และหลายครั้งสิ่งที่เราบ่นว่าเป็น AI Hallucination หรือ อาการหลอนของ AI ก็อาจเป็นเพาะเราเอง ที่ป้อนข้อมูลให้แบบขาดๆ เกินๆ (โทษตัวเองบ้างนะ ฮ่าๆ)</p>



<p class="wp-block-paragraph">แต่ถ้าทีมมี Spec ที่ดี AI จะเห็นภาพรวมในที่เดียว มันรู้ว่าเป้าหมายคืออะไร อะไรเป็น non-goal อะไรห้ามเปลี่ยน และอะไรคือเกณฑ์ที่จะใช้ตัดสินว่างานเสร็จจริงหรือยังไม่เรียบร้อย แบบนี้ขอบเขตของความผิดพลาดจะลดลงเยอะมาก จากเดิมที่ให้ผลลัพธ์มั่วได้ตั้งแต่การตีความต้องการของเราผิด ก็จะเหลือเพียงปัญหาเชิง implementation ที่เราสามารถใช้กระบวนการ test และ review แก้ไขตามหลังได้</p>



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



<h2 class="wp-block-heading">ถ้าอยากเริ่มใช้จริง ไม่จำเป็นต้องปฏิวัติทั้งองค์กรในวันเดียว</h2>



<p class="wp-block-paragraph">แนวคิดนี้สามารถเริ่มได้ไม่ยาก และเริ่มเล็กๆ ได้ ผู้เขียนแนะนำให้เริ่มจาก feature เดียวที่เจอความสับสนซ้ำๆ เช่น workflow อนุมัติเอกสาร การสร้างรายงาน การแจ้งเตือน หรือ onboarding flow แล้วเขียน spec ให้ชัดสำหรับเรื่องนั้นเรื่องเดียวก่อน</p>



<p class="wp-block-paragraph">จากนั้นค่อยกำหนด Standard ให้ทีมเขียน Spec เช่น</p>



<ul class="wp-block-list">
<li>เขียน goals และ non-goals ให้ครบ</li>



<li>ใช้ acceptance criteria เป็น definition of done ร่วมกัน</li>



<li>แยก spec ออกจาก technical design ให้ชัด</li>



<li>เมื่อ requirement เปลี่ยน ให้แก้ spec ก่อนเสมอ</li>



<li>ถ้ายังต้องใช้ Jira อยู่ ก็ใช้ต่อได้ แต่ให้มันทำหน้าที่ระบบติดตามงาน ไม่ใช่ที่เก็บความจริงสูงสุดของระบบ (ระวังจะ Outdate)</li>
</ul>



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



<h2 class="wp-block-heading">ผมรู้สึกอย่างไรกับบทความนี้</h2>



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



<p class="wp-block-paragraph">Spec-Driven Development จึงไม่ใช่แฟชั่นในการทำเอกสาร หรือการกำหนดรูปแบบเอกสารใหม่ แต่มันคือความพยายามจะเก็บ “ความหมายของระบบ” ไว้ในที่ที่ทั้งคนและเครื่องเข้าไปหยิบใช้ได้และเข้าใจตรงกัน </p>



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



<ul class="wp-block-list">
<li>Evgeni Rusev, <em>Spec-Driven Development: A Practical Guide for AI-Accelerated Teams</em><br><a href="https://evgenirusev.com/posts/spec-driven-development-guide/" target="_blank" rel="noopener">https://evgenirusev.com/posts/spec-driven-development-guide/</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/7704/spec-driven-development-ai-thai/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>๙.๖๙</title>
		<link>https://myifew.com/7566/my-birthday-2026/</link>
					<comments>https://myifew.com/7566/my-birthday-2026/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Sat, 09 May 2026 14:14:51 +0000</pubDate>
				<category><![CDATA[Lifestyle]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=7566</guid>

					<description><![CDATA[เพิ่งตื่นเต้นกับการเข้าเลข 4 ได้แป๊บเดียวเอง ตอนนี้ บวกมาอีก 1 แล้วนอกจากเรื่องภาษี และเอไอแล้ว ก็คงมีอายุนี่แหละที่ปุบปับวนมาบรรจบอีกครั้ง ไวมากๆตอนนี้มีเวลาทำงาน หารายได้ เก็บเงินอีกแค่ 19 ปี เอง หลังจากนั้นจะอย่างไรต่อก็ไม่รูุ้ถ้ากลับบ้านแค่ปีละหน ก็จะเจอแม่กับญาติๆ อีกไม่ถึง&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">เพิ่งตื่นเต้นกับการเข้าเลข 4 ได้แป๊บเดียวเอง ตอนนี้ บวกมาอีก 1 แล้ว<br>นอกจากเรื่องภาษี และเอไอแล้ว ก็คงมีอายุนี่แหละที่ปุบปับวนมาบรรจบอีกครั้ง ไวมากๆ<br>ตอนนี้มีเวลาทำงาน หารายได้ เก็บเงินอีกแค่ 19 ปี เอง หลังจากนั้นจะอย่างไรต่อก็ไม่รูุ้<br>ถ้ากลับบ้านแค่ปีละหน ก็จะเจอแม่กับญาติๆ อีกไม่ถึง 40 ครั้ง ถ้าเราอยู่ได้แค่ 80 และเขายังแข็งแรงกันดี<br>ถ้าตามมาตรฐานแมวทั่วไป ก็จะได้อยู่กับมิลินท์ อีกแค่ 10 ปีเอง ก็ต้องจากลากันแล้ว<br>ส่วนหนำเลี๊ยบ ตอนนี้ก็เกินมาตรฐานหมาทั่วไปแล้ว ก็คงได้เจอกันอีกไม่กี่ครั้ง</p>



<p class="wp-block-paragraph">&#8220;กาลเวลา ย่อมกลืนกินสรรพสัตว์ทั้งหลาย พร้อมกันไปกับตัวมันเอง&#8221;<br>พุทธพจน์ที่คอยเตือนใจ ว่าหลายสิ่งมา และหลายสิ่งก็ต้องจากไป<br>จริงๆ ก็เริ่มมองเห็นความเสื่อมถอยของตัวเองและสิ่งแวดล้อมรอบข้าง<br>บางอย่างก็เริ่มรับได้ ทำใจได้ แต่หลายอย่างก็ยังดื้ออยู่ ยังอยากฝืนตามที่ใจปราถนา<br>ไม่อยากปล่อยให้ตัวเองร่วงไปตามกาลเวลา เหมือนที่เคยคุยกับตัวเองไว้หลายปีก่อนว่า<br>&#8220;ยิ่งแก่ อยากจะยิ่งแข็งแรง..&#8221; แล้วก็เลยวิ่งเทรล เดินป่า เป็นบ้าเป็นหลัง<br>คนรอบตัวก็พยายามจะกระชากจาก comfort zone ให้กลับไปอยู่เนืองๆ<br>&#8220;เออ.. รอแป๊บ ยังไม่หมดไฟ หมดฝัน แค่ตอนนี้มันอ้วนแล้วขี้เกียจขยับ&#8221;</p>



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



<p class="wp-block-paragraph">จริงๆ อยากเขียนเล่าให้เป็นเรื่องเป็นราวของสิ่งที่พบเจอช่วงไปเนปาลที่ผ่านมา<br>เกือบทุกวัน ได้มีโอกาสอยู่กับตัวเองด้วยจิตสงบอยู่หลายครั้ง<br>เป็นเพราะหายใจไม่ออก ไม่พอใจกับการดำรงอยู่กับตนเอง และไม่พอใจกับการอยู่ตรงนั้น<br>ไม่ใช่เพราะมันอยู่ลำบาก แต่เป็นอารมณ์ที่มันปะทุขึ้นมาตอนตี 4 สะดุ้งตื่น.. &#8220;กรูอยากออกไปจากที่ตรงนี้ เดี๋ยวนี้&#8221;<br>เป็นความอึดอัดที่เหมือนถูกขังไว้ในห้องสี่เหลี่ยม กับภูเขา กับอากาศหนาวเหน็บติดลบร่วมสิบองศา<br>แต่ก็ยังไม่ทรมานเท่า ความอึดอัดที่เหมือนถูกขังให้จมน้ำอยู่ในร่างกายตนเอง แล้วไม่สามารถโผล่หัวออกมาได้<br>แต่อีกไม่กี่นาที ก็ได้สติว่า เราไม่สามารถเอาตัวเองออกจากตัวเอง และไม่สามารถเอาออกจากสถานที่ตรงนั้นได้<br>สิ่งเหล่านี้ล้วนเกิดแต่ความคิดชั่ววูบ เช่นนั้นก็ปรับที่ความคิด ด้วยการทำสมาธิอยู่พักใหญ่<br>แล้วมันก็หายไป&#8230;</p>



<p class="wp-block-paragraph">จากนั้นก็อยู่กับตัวเองไม่ได้อีกหลายวัน<br>ต้องคอยฟังเพลงขณะเดิน ต้องดูลมหายใจตัวเองก่อนนอน<br>และทริปนั้นก็เริ่มไม่ค่อยโอเค ทั้งใจ และกาย..</p>



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



<p class="wp-block-paragraph">มันกลายเป็นสิ่งที่จดจำระดับ trigger ของชีวิต ก่อนถึงวันเกิดแค่ไม่กี่วัน<br>ตอกย้ำความเชื่อผมที่ว่า คนเราเปลี่ยนแปลงได้ตลอดเวลา และไม่ได้เป็นขาขึ้นเสมอ<br>มีชอบ ก็มีเกลียด<br>มีเต็มใจ ก็มีฝืน<br>มีรุ่งเรื่อง ก็มีเสื่อมถอย<br>มีแข็งแรง ย่อมมีอ่อนแอ<br>แต่ถึงกระนั้นอย่างที่เกริ่นไปตอนต้น<br>ตราบใดยังไม่หมดไฟ ก็ยังจะพยายามให้มันเป็นกราฟขาขึ้นอยู่<br>ยังคงมีฝันที่อยากแตะความสูง 6,000ม หรือแตะเทรลระยะทาง 100ไมล์<br>แต่รอก่อนนะ กราฟมันตกแป๊บนึง ขอถอยหลังตั้งหลักสักสองสามก้าว ไปจัดระเบียบชีวิตก่อน<br>เริ่มต้นใหม่ที่ 41</p>



<p class="wp-block-paragraph">9 พค 2569<br>นั่งเขียนสลับเล่นกับมิลินท์เพราะคอยเรียกอยู่ตลอด..&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/7566/my-birthday-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
