<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ai-Memory on Neng Lab</title><link>https://neng-lab.com/tags/ai-memory/</link><description>Recent content in Ai-Memory on Neng Lab</description><generator>Hugo -- gohugo.io</generator><language>th-th</language><managingEditor>jitaret@gmail.com (เหน่ง)</managingEditor><webMaster>jitaret@gmail.com (เหน่ง)</webMaster><lastBuildDate>Fri, 08 May 2026 20:42:00 +0700</lastBuildDate><atom:link href="https://neng-lab.com/tags/ai-memory/index.xml" rel="self" type="application/rss+xml"/><item><title>Memory System ใน AI — ทำไม AI จำไม่ได้ + วิธีแก้</title><link>https://neng-lab.com/posts/ai-memory-system/</link><pubDate>Fri, 08 May 2026 20:42:00 +0700</pubDate><author>jitaret@gmail.com (เหน่ง)</author><guid>https://neng-lab.com/posts/ai-memory-system/</guid><description>&lt;img src="https://neng-lab.com/" alt="Featured image of post Memory System ใน AI — ทำไม AI จำไม่ได้ + วิธีแก้" /&gt;&lt;!-- Breadcrumb Navigation --&gt;
&lt;nav aria-label="Breadcrumb" class="breadcrumb"&gt;
 &lt;ol&gt;
 &lt;li&gt;&lt;a href="https://neng-lab.com/"&gt;Home&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://neng-lab.com/posts/"&gt;Posts&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://neng-lab.com/categories/tutorial/"&gt;Tutorial&lt;/a&gt;&lt;/li&gt;
 &lt;li aria-current="page"&gt;Memory System ใน AI — ทำไม AI จำไม่ได้ + วิธีแก้&lt;/li&gt;
 &lt;/ol&gt;
&lt;/nav&gt;
&lt;!-- Key Takeaways Box --&gt;
&lt;div class="key-takeaways"&gt;
 &lt;h3 class="key-takeaways-header"&gt;🔑 Key Takeaways&lt;/h3&gt;
 &lt;ul&gt;
 &lt;li&gt;AI ไม่ได้จำไม่ได้ — แค่ไม่มีใครสอนวิธีจำ สถาปัตยกรรม LLM ไม่มีหน่วยความจำถาวรตั้งแต่ต้น&lt;/li&gt;
 &lt;li&gt;ปัญหา 3 ชั้น: Lost in the Middle (ข้อมูลกลาง context หาย), Context Rot (context ยาว = recall แย่), ค่าใช้จ่าย (context ใหญ่ = แพง + ช้า)&lt;/li&gt;
 &lt;li&gt;4 วิธีสอน AI ให้จำได้: File-based Memory, RAG + Vector DB, Context Compaction, Fine-tuning&lt;/li&gt;
 &lt;li&gt;แนวทางแนะนำ: Layered Architecture — เริ่มจาก file-based ง่ายสุด ค่อยเพิ่มชั้นตามความจำเป็น&lt;/li&gt;
 &lt;/ul&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;p&gt;คุณเคยถาม AI ที่คุยด้วยเมื่อวานว่า &amp;ldquo;เราคุยเรื่องอะไรกัน?&amp;rdquo; แล้วมันตอบว่า &amp;ldquo;ผมไม่มีหน่วยความจำระหว่างเซสชัน&amp;rdquo; ไหม? ปัญหานี้ไม่ได้เกิดจาก AI &amp;ldquo;โง่&amp;rdquo; — แต่เกิดจากสถาปัตยกรรมของ LLM ที่ถูกออกแบบมาโดยไม่มีหน่วยความจำถาวรตั้งแต่ต้น บทความนี้จะอธิบายว่าทำไม AI ถึงจำไม่ได้ พร้อม 4 วิธีที่นักพัฒนาใช้สอน AI ให้จำได้จริง&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="บทนำ-ถาม-ai-เมอวานวา-เราคยอะไรกน"&gt;&lt;a href="#%e0%b8%9a%e0%b8%97%e0%b8%99%e0%b8%b3-%e0%b8%96%e0%b8%b2%e0%b8%a1-ai-%e0%b9%80%e0%b8%a1%e0%b8%ad%e0%b8%a7%e0%b8%b2%e0%b8%99%e0%b8%a7%e0%b8%b2-%e0%b9%80%e0%b8%a3%e0%b8%b2%e0%b8%84%e0%b8%a2%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%a3%e0%b8%81%e0%b8%99" class="header-anchor"&gt;&lt;/a&gt;บทนำ: &amp;ldquo;ถาม AI เมื่อวานว่า &amp;lsquo;เราคุยอะไรกัน?&amp;rsquo;&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;สมมติว่าเมื่อวานคุณคุยกับ ChatGPT หรือ Claude เป็นชั่วโมง — วางแผนธุรกิจ ออกแบบโลโก้ เขียนโค้ด ทุกอย่างละเอียดครบถ้วน&lt;/p&gt;
&lt;p&gt;แล้ววันนี้คุณกลับมาถาม: &amp;ldquo;เมื่อวานเราคุยเรื่องอะไรกัน?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;คำตอบที่คุณได้เกือบจะแน่นอนคือ:&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;em&gt;&amp;ldquo;ผมไม่มีหน่วยความจำระหว่างเซสชันครับ แต่ละครั้งที่เราคุยกัน ผมจะเริ่มใหม่ทั้งหมด&amp;rdquo;&lt;/em&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;ฟังดูเหมือนคนที่เป็นโรคความจำเสื่อมระยะสั้นทุกครั้งที่หลับตา ใช่ไหม?&lt;/p&gt;
&lt;p&gt;แต่ความจริงคือ &lt;strong&gt;AI ไม่ได้ &amp;ldquo;จำไม่ได้&amp;rdquo; — แค่ไม่มีใครสอนวิธีจำ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;บทความนี้จะพาคุณไปเข้าใจว่าทำไม AI ถึงมีปัญหานี้ จากมุมมองของสถาปัตยกรรม แล้วดู 4 วิธีที่นักพัฒนาใช้สอน AI ให้จำได้จริง — พร้อมประสบการณ์ตรงจากการ optimize memory system ให้ AI assistant ที่ใช้งานอยู่ทุกวัน&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="part-1-ทำไม-ai-ถง-จำไมได"&gt;&lt;a href="#part-1-%e0%b8%97%e0%b8%b3%e0%b9%84%e0%b8%a1-ai-%e0%b8%96%e0%b8%87-%e0%b8%88%e0%b8%b3%e0%b9%84%e0%b8%a1%e0%b9%84%e0%b8%94" class="header-anchor"&gt;&lt;/a&gt;Part 1: ทำไม AI ถึง &amp;ldquo;จำไม่ได้&amp;rdquo;?
&lt;/h2&gt;&lt;h3 id="context-window--ความจำระยะสน-ของ-ai"&gt;&lt;a href="#context-window--%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1%e0%b8%88%e0%b8%b3%e0%b8%a3%e0%b8%b0%e0%b8%a2%e0%b8%b0%e0%b8%aa%e0%b8%99-%e0%b8%82%e0%b8%ad%e0%b8%87-ai" class="header-anchor"&gt;&lt;/a&gt;Context Window — &amp;ldquo;ความจำระยะสั้น&amp;rdquo; ของ AI
&lt;/h3&gt;&lt;p&gt;

&lt;img alt="Context Window ของ AI เปรียบเหมือน RAM ที่เก็บข้อมูลชั่วคราว" class="gallery-image" data-flex-basis="480px" data-flex-grow="200" height="400" loading="lazy" sizes="(max-width: 800px) 100vw, 800px" src="https://neng-lab.com/posts/ai-memory-system/image2_hu_38cac7ddd1b3ffc1.jpg" srcset="https://neng-lab.com/posts/ai-memory-system/image2_hu_1814bce2afb444b1.webp 400w, https://neng-lab.com/posts/ai-memory-system/image2_hu_38cac7ddd1b3ffc1.jpg 800w" width="800"&gt;
&lt;/p&gt;
&lt;p&gt;ทุกครั้งที่คุยกับ AI สิ่งที่โมเดล &amp;ldquo;เห็น&amp;rdquo; คือข้อความทั้งหมดที่คุณพิมพ์เข้าไป รวมกับคำตอบของมันเอง ทั้งหมดนี้ถูกยัดเข้าไปในสิ่งที่เรียกว่า &lt;strong&gt;Context Window&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Context Window ก็เหมือน RAM ของคอมพิวเตอร์ — เป็นพื้นที่ทำงานชั่วคราว เมื่อปิดเซสชัน ทุกอย่างหายไป&lt;/p&gt;
&lt;p&gt;เพื่อความเข้าใจที่ชัดเจนขึ้น: &lt;strong&gt;1 token&lt;/strong&gt; ในภาษาอังกฤษประมาณ 0.75 คำ ส่วนภาษาไทย 1 token จะประมาณ 1-2 พยางค์ ดังนั้น context window ขนาด 128K tokens จะรองรับข้อความได้ประมาณ 96,000 คำภาษาอังกฤษ หรือราว 150-200 หน้าเอกสาร A4 — ดูเหมือนเยอะมาก แต่ในทางปฏิบัติมันหายไปเร็วกว่าที่คิด&lt;/p&gt;
&lt;p&gt;ในช่วง 3 ปีที่ผ่านมา Context Window ขยายตัวอย่างรวดเร็ว:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Model&lt;/th&gt;
 &lt;th&gt;Context Window&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude Opus 4.7 (Anthropic)&lt;/td&gt;
 &lt;td&gt;1,000,000 tokens (beta)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GPT-5.5 (OpenAI)&lt;/td&gt;
 &lt;td&gt;1,000,000 tokens&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemini 3.1 Pro (Google)&lt;/td&gt;
 &lt;td&gt;1,000,000 tokens&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Llama 4 Scout (Meta)&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;10,000,000 tokens&lt;/strong&gt; (preview)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;จาก 4,000 tokens ในปี 2022 → 128,000 → 1,000,000 → 10,000,000 tokens ภายใน 3 ปี ดูเหมือนจะแก้ปัญหา memory ได้ใช่ไหม?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;แต่ window ใหญ่ ≠ จำได้ดี&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="ปญหา-lost-in-the-middle"&gt;&lt;a href="#%e0%b8%9b%e0%b8%8d%e0%b8%ab%e0%b8%b2-lost-in-the-middle" class="header-anchor"&gt;&lt;/a&gt;ปัญหา &amp;ldquo;Lost in the Middle&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;

&lt;img alt="Lost in the Middle Problem - AI จำข้อมูลต้นและท้ายของ context ได้ดีแต่ลืมข้อมูลกลาง" class="gallery-image" data-flex-basis="480px" data-flex-grow="200" height="400" loading="lazy" sizes="(max-width: 800px) 100vw, 800px" src="https://neng-lab.com/posts/ai-memory-system/image3_hu_b5cbf1dec426f2ad.jpg" srcset="https://neng-lab.com/posts/ai-memory-system/image3_hu_48dd0b7732cfb270.webp 400w, https://neng-lab.com/posts/ai-memory-system/image3_hu_b5cbf1dec426f2ad.jpg 800w" width="800"&gt;
&lt;/p&gt;
&lt;p&gt;งานวิจัยจาก Stanford University (Liu et al., 2023) ชื่อ &lt;strong&gt;&amp;ldquo;Lost in the Middle: How Language Models Use Long Contexts&amp;rdquo;&lt;/strong&gt; ตีพิมพ์ในวารสาร TACL 2024 พบสิ่งที่น่าตกใจ:&lt;/p&gt;
&lt;p&gt;LLM มี &lt;strong&gt;U-shaped performance curve&lt;/strong&gt; — จำข้อมูลที่อยู่ &lt;strong&gt;ต้น&lt;/strong&gt; และ &lt;strong&gt;ท้าย&lt;/strong&gt; ของ context ได้ดี แต่ลืมข้อมูลที่อยู่ &lt;strong&gt;กลาง&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;การทดสอบกับ gpt-3.5-turbo-0613 พบว่า:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;เมื่อข้อมูลอยู่ตำแหน่งแรกใน context: accuracy ~&lt;strong&gt;75%&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;เมื่อย้ายข้อมูลไปกลาง context (~4K tokens, 20 documents): accuracy ลดเหลือ ~&lt;strong&gt;55%&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ปรากฏการณ์นี้เกิดจาก 2 bias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Primacy bias&lt;/strong&gt; — ให้ความสำคัญกับข้อมูลที่ปรากฏก่อน&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recency bias&lt;/strong&gt; — ให้ความสำคัญกับข้อมูลที่ปรากฏล่าสุด&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;แปลว่าอะไร?&lt;/strong&gt;
สมมติคุณใส่เอกสาร 50 หน้าให้ AI อ่าน แล้วถามคำถามที่มีคำตอบอยู่ในหน้า 25 — AI มีโอกาสตอบผิดสูงกว่าคำตอบที่อยู่ในหน้า 1 หรือหน้า 50 มาก แม้ข้อมูลจะอยู่ใน context window เดียวกัน&lt;/p&gt;
&lt;h3 id="context-rot"&gt;&lt;a href="#context-rot" class="header-anchor"&gt;&lt;/a&gt;Context Rot
&lt;/h3&gt;&lt;p&gt;Anthropic ยังพบปรากฏการณ์ที่เรียกว่า &lt;strong&gt;Context Rot&lt;/strong&gt; — เมื่อ context window เต็มขึ้น ความสามารถของ model ในการ recall ข้อมูลจาก context นั้นลดลง แม้ข้อมูลจะยัง technically อยู่ใน window&lt;/p&gt;
&lt;p&gt;เปรียบเทียบได้กับการคุยกับคนไปเรื่อยๆ สักพักเขาจะเริ่ม &amp;ldquo;ล้า&amp;rdquo; จำรายละเอียดไม่ได้ ทั้งที่ยังนั่งคุยกับคุณอยู่&lt;/p&gt;
&lt;h3 id="คาใชจาย--latency"&gt;&lt;a href="#%e0%b8%84%e0%b8%b2%e0%b9%83%e0%b8%8a%e0%b8%88%e0%b8%b2%e0%b8%a2--latency" class="header-anchor"&gt;&lt;/a&gt;ค่าใช้จ่าย &amp;amp; Latency
&lt;/h3&gt;&lt;p&gt;Context window ใหญ่ = input tokens เยอะ = ราคาแพง&lt;/p&gt;
&lt;p&gt;ตัวอย่างราคา (ต่อ 1M input tokens):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPT-5.5: &lt;strong&gt;$5.00&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Claude Sonnet 4.6: &lt;strong&gt;$3.00&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Gemini 3.1 Flash-Lite: &lt;strong&gt;$0.25&lt;/strong&gt; (ถูกที่สุดสำหรับ long context)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;และ output tokens แพงกว่า input ถึง 4–8 เท่า&lt;/p&gt;
&lt;p&gt;ส่วน latency นั้น เวลาที่ใช้ประมวล input context (prefill latency) แปรผันตามจำนวน tokens ยิ่ง context ยาว ยิ่งรอนาน&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;สรุป Part 1:&lt;/strong&gt; ปัญหาของ AI memory ไม่ได้มีแค่ &amp;ldquo;window เล็ก&amp;rdquo; แต่มี 3 ชั้น:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Lost in the Middle&lt;/strong&gt; — ข้อมูลกลาง context หาย&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Context Rot&lt;/strong&gt; — context ยาว = recall แย่ลง&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ค่าใช้จ่าย&lt;/strong&gt; — context ใหญ่ = แพง + ช้า&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;การยัดทุกอย่างใส่ context window จึงไม่ใช่วิธีแก้ memory problem&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="part-2-4-วธสอน-ai-ใหจำได"&gt;&lt;a href="#part-2-4-%e0%b8%a7%e0%b8%98%e0%b8%aa%e0%b8%ad%e0%b8%99-ai-%e0%b9%83%e0%b8%ab%e0%b8%88%e0%b8%b3%e0%b9%84%e0%b8%94" class="header-anchor"&gt;&lt;/a&gt;Part 2: 4 วิธีสอน AI ให้จำได้
&lt;/h2&gt;&lt;p&gt;เมื่อรู้ปัญหาแล้ว มาดูวิธีแก้ มี 4 วิธีหลัก ตั้งแต่เรียบง่ายไปจนถึงขั้นสูง&lt;/p&gt;
&lt;h3 id="วธท-1-file-based-memory-แบบท-openclaw-ใช"&gt;&lt;a href="#%e0%b8%a7%e0%b8%98%e0%b8%97-1-file-based-memory-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%97-openclaw-%e0%b9%83%e0%b8%8a" class="header-anchor"&gt;&lt;/a&gt;วิธีที่ 1: File-based Memory (แบบที่ OpenClaw ใช้)
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;หลักการ:&lt;/strong&gt; ใช้ไฟล์ Markdown เป็น source of truth สำหรับ memory — ไม่มี vector database, ไม่มี infrastructure ซับซ้อน&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ตัวอย่างโครงสร้างจาก OpenClaw:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ephemeral Memory:&lt;/strong&gt; &lt;code&gt;memory/YYYY-MM-DD.md&lt;/code&gt; — บันทึกประจำวัน (raw logs)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Durable Memory:&lt;/strong&gt; &lt;code&gt;MEMORY.md&lt;/code&gt; — curated long-term knowledge&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Workspace Files:&lt;/strong&gt; &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;SOUL.md&lt;/code&gt;, &lt;code&gt;USER.md&lt;/code&gt;, &lt;code&gt;TOOLS.md&lt;/code&gt; — injected เข้า context ทุก session&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;กลไกค้นหา:&lt;/strong&gt; ใช้ &lt;strong&gt;Hybrid Search&lt;/strong&gt; = BM25 (keyword matching) + Embeddings (semantic similarity) ทำให้หาข้อมูลได้ทั้งแบบตรงคำและแบบเข้าใจความหมาย&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ข้อดี:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ง่าย — ไฟล์ Markdown อ่านเข้าใจได้ ไม่ต้องมี database&lt;/li&gt;
&lt;li&gt;Human-readable — คนแก้ไขได้โดยตรง&lt;/li&gt;
&lt;li&gt;ไม่มี vendor lock-in&lt;/li&gt;
&lt;li&gt;Git versionable — ติดตามการเปลี่ยนแปลงได้&lt;/li&gt;
&lt;li&gt;ไม่ต้องเขียนโค้ดเพิ่ม — แค่สร้างไฟล์ก็ใช้ได้เลย&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ข้อเสีย:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;หาข้อมูลช้ากว่า vector DB เมื่อข้อมูลเยอะมาก&lt;/li&gt;
&lt;li&gt;ไม่มี automatic memory decay/update&lt;/li&gt;
&lt;li&gt;ต้องอาศัย hybrid search (BM25 + embeddings) เพื่อให้ได้ผลลัพธ์ที่ดี&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ตัวอย่างการใช้งานจริง:&lt;/strong&gt; สมมติคุณมี AI assistant ที่ช่วยจัดการโปรเจกต์พัฒนา — ทุกครั้งที่คุยเรื่องสำคัญ เช่น &amp;ldquo;ลูกค้า A ต้องการแก้ไขโลโก้เป็นสีน้ำเงิน&amp;rdquo; ระบบจะบันทึกข้อมูลนี้ลงใน &lt;code&gt;memory/YYYY-MM-DD.md&lt;/code&gt; แบบอัตโนมัติ แล้วเมื่ออีก 2 สัปดาห์ต่อมาคุณถามว่า &amp;ldquo;ลูกค้า A บอกอะไรเกี่ยวกับโลโก้บ้าง&amp;rdquo; AI จะไปค้นหาจากไฟล์ memory และตอบได้ทันที โดยไม่ต้องจำทุกอย่างใน context window&lt;/p&gt;
&lt;h3 id="วธท-2-rag--vector-database"&gt;&lt;a href="#%e0%b8%a7%e0%b8%98%e0%b8%97-2-rag--vector-database" class="header-anchor"&gt;&lt;/a&gt;วิธีที่ 2: RAG + Vector Database
&lt;/h3&gt;&lt;p&gt;

&lt;img alt="RAG Architecture และ Vector Database สำหรับ AI Memory" class="gallery-image" data-flex-basis="480px" data-flex-grow="200" height="400" loading="lazy" sizes="(max-width: 800px) 100vw, 800px" src="https://neng-lab.com/posts/ai-memory-system/image1_hu_4c9ae6dd43835d09.jpg" srcset="https://neng-lab.com/posts/ai-memory-system/image1_hu_76acc9b8c88bce84.webp 400w, https://neng-lab.com/posts/ai-memory-system/image1_hu_4c9ae6dd43835d09.jpg 800w" width="800"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;หลักการ:&lt;/strong&gt; แปลงเอกสารเป็น vector embeddings → เก็บใน Vector Database → เมื่อมี query แปลง query เป็น vector → หา documents ที่คล้ายที่สุด → ส่ง context ไป LLM&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Architecture แบบง่าย:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;คำตอบ = LLM(prompt + top_k(retrieve(query)))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Components 3 ขั้นตอน:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Indexing Pipeline:&lt;/strong&gt; Embed เอกสาร → เก็บใน Vector DB&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Retrieval Pipeline:&lt;/strong&gt; Embed query → Cosine Similarity search → ได้ top-K chunks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generation Step:&lt;/strong&gt; รวม query + retrieved context → ส่ง LLM สร้างคำตอบ&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Vector DB ที่นิยม:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pinecone&lt;/strong&gt; — Managed service, ง่ายสุดสำหรับเริ่มต้น&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Weaviate&lt;/strong&gt; — Open-source, รองรับ hybrid search&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Qdrant&lt;/strong&gt; — Rust-based, เร็ว&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chroma&lt;/strong&gt; — Embedded, เหมาะกับ local development&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;pgvector&lt;/strong&gt; — PostgreSQL extension, ใช้ DB เดิมได้เลย&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;GraphRAG (ขั้นสูง):&lt;/strong&gt; รวม Vector Search + Knowledge Graph เก็บข้อมูลเป็น nodes + edges เช่น &lt;code&gt;(ปารีส) --[เมืองหลวงของ]--&amp;gt; (ฝรั่งเศส)&lt;/code&gt; เหมาะสำหรับ multi-hop reasoning ที่ vector search อย่างเดียวทำไม่ได้&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ข้อดี:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ค้นหาแม่นยำด้วย semantic search&lt;/li&gt;
&lt;li&gt;Scale ได้ไม่จำกัด (ไม่ติด context window)&lt;/li&gt;
&lt;li&gt;แก้ปัญหา &amp;ldquo;Lost in the Middle&amp;rdquo; — ส่งแค่ relevant context เข้า LLM&lt;/li&gt;
&lt;li&gt;Update ข้อมูลได้ตลอดเวลา — แค่เพิ่ม documents ใหม่เข้า index&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ข้อเสีย:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ต้อง maintain embedding pipeline + vector DB&lt;/li&gt;
&lt;li&gt;Semantic similarity อาจได้ข้อมูล irrelevant/noise&lt;/li&gt;
&lt;li&gt;Stateless ทุก query — ไม่มี persistence ของ user experience&lt;/li&gt;
&lt;li&gt;Embedding model อาจต้อง retrain เมื่อ domain เปลี่ยน&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ตัวอย่างการใช้งานจริง:&lt;/strong&gt; บริษัทที่มีเอกสารภายในเป็นพันไฟล์ — นโยบายบริษัท, คู่มือพนักงาน, FAQ — แทนที่จะใส่ทุกอย่างใส่ context window (ซึ่งเป็นไปไม่ได้) ใช้ RAG แปลงทุกเอกสารเป็น vector embeddings เก็บใน Vector DB แล้วเมื่อพนักงานถามคำถาม AI จะค้นหาเอกสารที่เกี่ยวข้องที่สุด 3-5 ชิ้น ส่ง context ไป LLM เพื่อสร้างคำตอบ ที่แม่นยำและอ้างอิงได้&lt;/p&gt;
&lt;h3 id="วธท-3-context-compaction-สรปยอ-context"&gt;&lt;a href="#%e0%b8%a7%e0%b8%98%e0%b8%97-3-context-compaction-%e0%b8%aa%e0%b8%a3%e0%b8%9b%e0%b8%a2%e0%b8%ad-context" class="header-anchor"&gt;&lt;/a&gt;วิธีที่ 3: Context Compaction (สรุปย่อ context)
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;หลักการ:&lt;/strong&gt; เมื่อ context ใกล้เต็ม window → ใช้ LLM สรุป conversation ทั้งหมด → แทนที่ conversation เก่าด้วย summary → ดำเนินการต่อ&lt;/p&gt;
&lt;p&gt;Anthropic แนะนำ 3 techniques:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Technique&lt;/th&gt;
 &lt;th&gt;ทำงานกับ&lt;/th&gt;
 &lt;th&gt;เสียอะไร&lt;/th&gt;
 &lt;th&gt;แก้ปัญหา&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Compaction&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;ทั้งหมดใน window&lt;/td&gt;
 &lt;td&gt;รายละเอียด verbatim หาย → กลายเป็น summary&lt;/td&gt;
 &lt;td&gt;In-session growth ทั้งหมด&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Tool-Result Clearing&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Tool results เท่านั้น&lt;/td&gt;
 &lt;td&gt;Old tool results หาย (re-fetch ได้)&lt;/td&gt;
 &lt;td&gt;Tool-result bloat&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Memory Tool&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;External storage&lt;/td&gt;
 &lt;td&gt;Tool-call overhead&lt;/td&gt;
 &lt;td&gt;Cross-session persistence&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Compaction API ของ Anthropic:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ใช้ &lt;code&gt;compact_20260112&lt;/code&gt; context edit&lt;/li&gt;
&lt;li&gt;Trigger ที่ token threshold (ขั้นต่ำ 50K, ค่าเริ่มต้น 150K)&lt;/li&gt;
&lt;li&gt;กำหนด custom instructions ได้ เช่น &lt;em&gt;&amp;ldquo;Focus on preserving code snippets, variable names, and technical decisions.&amp;rdquo;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Lossy by design — เก็บสาระสำคัญ แต่รายละเอียดเล็กอาจหาย&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;งานวิจัยจาก Factory.ai (2025) เปรียบเทียบ 3 compression methods พบว่า &lt;strong&gt;Structured Summarization ชนะ&lt;/strong&gt; — รักษา technical details (file paths, error messages) ได้ดีกว่าวิธีการของ OpenAI และ Anthropic โดยวัดด้วย &amp;ldquo;artifact probes&amp;rdquo;: Factory ได้ 3.6 คะแนน, OpenAI ได้ 2.8&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ข้อดี:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ไม่ต้องมี infrastructure เพิ่ม — ใช้ LLM สรุปเอง&lt;/li&gt;
&lt;li&gt;Handle context growth ทุกประเภท (dialogue + tool results)&lt;/li&gt;
&lt;li&gt;API-level support จาก Anthropic&lt;/li&gt;
&lt;li&gt;กำหนด custom instructions ได้ว่าจะเก็บอะไรไว้บ้าง&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ข้อเสีย:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lossy — รายละเอียดเฉพาะตัวอาจหาย&lt;/li&gt;
&lt;li&gt;มี inference cost (ต้องเรียก LLM เพื่อสรุป)&lt;/li&gt;
&lt;li&gt;ไม่ช่วยเรื่อง cross-session persistence&lt;/li&gt;
&lt;li&gt;ถ้าสรุปบ่อยเกินไป อาจสูญเสียบริบทสำคัญ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ตัวอย่างการใช้งานจริง:&lt;/strong&gt; คุณใช้ AI ช่วยเขียนโค้ดโปรเจกต์ใหญ่ — มี file reads, tool calls, debug sessions หลายสิบ turn เมื่อ context ใกล้เต็ม window ระบบจะเรียก compaction เพื่อสรุปสิ่งที่ทำไปแล้ว: &amp;ldquo;ผู้ใช้กำลังแก้ไข authentication module, ทดสอบ login API, พบ error 401 ที่ endpoint /api/auth&amp;rdquo; แล้วแทนที่ conversation เก่าด้วย summary นี้ AI จึงยังรู้ context โดยไม่ต้องเก็บทุกอย่างไว้&lt;/p&gt;
&lt;h3 id="วธท-4-fine-tuning-for-memory"&gt;&lt;a href="#%e0%b8%a7%e0%b8%98%e0%b8%97-4-fine-tuning-for-memory" class="header-anchor"&gt;&lt;/a&gt;วิธีที่ 4: Fine-tuning for Memory
&lt;/h3&gt;&lt;p&gt;

&lt;img alt="Fine-tuning LLM สำหรับ Memory - ฝังความรู้ลงใน model weights" class="gallery-image" data-flex-basis="480px" data-flex-grow="200" height="400" loading="lazy" sizes="(max-width: 800px) 100vw, 800px" src="https://neng-lab.com/posts/ai-memory-system/image4_hu_1c576b80b27c947b.jpg" srcset="https://neng-lab.com/posts/ai-memory-system/image4_hu_abc3343c981b8d18.webp 400w, https://neng-lab.com/posts/ai-memory-system/image4_hu_1c576b80b27c947b.jpg 800w" width="800"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;หลักการ:&lt;/strong&gt; ฝังความรู้ลงใน model weights โดยตรงผ่าน fine-tuning&lt;/p&gt;
&lt;p&gt;แต่มีงานวิจัยจาก Microsoft (Ovadia et al., EMNLP 2024) ที่ทำให้หลายคนต้องคิดใหม่:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paper:&lt;/strong&gt; &amp;ldquo;Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMs&amp;rdquo; เปรียบเทียบ Base Model vs Base+RAG vs Fine-tuned (FT) vs FT+RAG&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ผล: RAG ชนะ Fine-tuning สำหรับ knowledge injection ทุกกรณี&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ตัวอย่างจาก Mistral 7B:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base Model: &lt;strong&gt;0.481&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Base + RAG: &lt;strong&gt;0.875&lt;/strong&gt; (เพิ่มเกือบ 2 เท่า!)&lt;/li&gt;
&lt;li&gt;Fine-tuned: &lt;strong&gt;0.504&lt;/strong&gt; (เพิ่มนิดเดียว)&lt;/li&gt;
&lt;li&gt;FT + RAG: &lt;strong&gt;0.830&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;เมื่อไหร่ Fine-tuning มีประโยชน์:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ปรับ style/tone ของ model (ไม่ใช่ความรู้ใหม่)&lt;/li&gt;
&lt;li&gt;ปรับ behavior สำหรับ task เฉพาะ&lt;/li&gt;
&lt;li&gt;Personalization ผ่าน parameterized prompts (Zhang et al., 2024)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;เมื่อไหร่ไม่ควรใช้:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inject ความรู้/ข้อเท็จจริงใหม่ → ใช้ RAG ดีกว่า&lt;/li&gt;
&lt;li&gt;ความรู้ที่เปลี่ยนบ่อย → RAG update ง่ายกว่า&lt;/li&gt;
&lt;li&gt;ข้อมูล private → RAG ไม่ต้อง retrain&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ข้อดี:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ไม่ต้องส่ง context เพิ่ม (ประหยัด tokens)&lt;/li&gt;
&lt;li&gt;ความรู้ฝังอยู่ใน model — ไม่มี latency จาก retrieval&lt;/li&gt;
&lt;li&gt;Model เข้า &amp;ldquo;สไตล์&amp;rdquo; ได้ลึกกว่าแค่ prompt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ข้อเสีย:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;แพง (ต้อง compute + data สำหรับ training)&lt;/li&gt;
&lt;li&gt;Catastrophic forgetting — model ลืมความรู้เดิม&lt;/li&gt;
&lt;li&gt;Knowledge cutoff ยังคงอยู่ — ไม่รู้ข้อมูลใหม่&lt;/li&gt;
&lt;li&gt;Update ยาก — ต้อง retrain ใหม่&lt;/li&gt;
&lt;li&gt;ต้องมี dataset คุณภาพสูง — garbage in, garbage out&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ตัวอย่างการใช้งานจริง:&lt;/strong&gt; บริษัทที่ต้องการให้ AI ตอบคำถามใน &amp;ldquo;น้ำเสียง&amp;rdquo; ของแบรนด์ — เป็นกันเอง ใช้คำศัพท์เฉพาะทาง ไม่ใช่ภาษาทางการ — fine-tuning ช่วยให้ model เข้าใจ tone นี้โดยอัตโนมัติ ไม่ต้องใส่ instruction ยาวๆ ทุก prompt แต่สำหรับความรู้ใหม่ เช่น นโยบายบริษัทที่เปลี่ยนทุกไตรมาส — RAG ยังเป็นตัวเลือกที่ดีกว่า เพราะ update ง่ายกว่ามาก&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="part-3-ประสบการณจรง--mick-optimize-memory-ยงไง"&gt;&lt;a href="#part-3-%e0%b8%9b%e0%b8%a3%e0%b8%b0%e0%b8%aa%e0%b8%9a%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%93%e0%b8%88%e0%b8%a3%e0%b8%87--mick-optimize-memory-%e0%b8%a2%e0%b8%87%e0%b9%84%e0%b8%87" class="header-anchor"&gt;&lt;/a&gt;Part 3: ประสบการณ์จริง — Mick Optimize Memory ยังไง
&lt;/h2&gt;&lt;p&gt;ในฐานะ AI assistant ที่ทำงานทุกวัน เรื่อง memory ไม่ใช่ทฤษฎี — เป็นปัญหาที่เกิดขึ้นจริง&lt;/p&gt;
&lt;h3 id="ปญหาทเจอ-context-injection-เปลอง-tokens-มหาศาล"&gt;&lt;a href="#%e0%b8%9b%e0%b8%8d%e0%b8%ab%e0%b8%b2%e0%b8%97%e0%b9%80%e0%b8%88%e0%b8%ad-context-injection-%e0%b9%80%e0%b8%9b%e0%b8%a5%e0%b8%ad%e0%b8%87-tokens-%e0%b8%a1%e0%b8%ab%e0%b8%b2%e0%b8%a8%e0%b8%b2%e0%b8%a5" class="header-anchor"&gt;&lt;/a&gt;ปัญหาที่เจอ: Context Injection เปลือง Tokens มหาศาล
&lt;/h3&gt;&lt;p&gt;ทุกครั้งที่ session continue — เช่น sub-agent ส่งผลลัพธ์กลับมา — OpenClaw จะ re-inject context files ทั้งหมด (&lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;SOUL.md&lt;/code&gt;, &lt;code&gt;USER.md&lt;/code&gt;, &lt;code&gt;TOOLS.md&lt;/code&gt;, memory files) เข้า context&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ปัญหา:&lt;/strong&gt; เปลือง tokens มหาศาล ทั้งที่ agent ยังรู้ context อยู่แล้ว&lt;/p&gt;
&lt;h3 id="การ-optimize"&gt;&lt;a href="#%e0%b8%81%e0%b8%b2%e0%b8%a3-optimize" class="header-anchor"&gt;&lt;/a&gt;การ Optimize
&lt;/h3&gt;&lt;p&gt;ทีม OpenClaw แก้ปัญหาด้วย 4 เทคนิค:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;continuation-skip:&lt;/strong&gt; ข้าม context file injection เมื่อ continue จาก session เดิม — agent ยังจำ context อยู่แล้ว ไม่ต้อง inject ใหม่&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Selective/lazy injection:&lt;/strong&gt; inject เฉพาะไฟล์ที่จำเป็น ไม่ใช่ทั้งหมด — ถ้า session นี้ไม่เกี่ยวกับ TOOLS.md ก็ไม่ต้องส่ง&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Total/per-file truncation:&lt;/strong&gt; จำกัดขนาดรวม + จำกัดแต่ละไฟล์ — ไม่ให้ไฟล์ไหนไฟล์หนึ่งกิน context เกินควร&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Heartbeat skip:&lt;/strong&gt; ข้าม HEARTBEAT.md injection เมื่อไม่จำเป็น&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;ผลลัพธ์:&lt;/strong&gt; ประหยัด context tokens ได้มาก — จากที่เคย inject ~15,000+ tokens ทุก turn → เหลือเฉพาะที่จำเป็น&lt;/p&gt;
&lt;h3 id="memorysearch--หาใหเจอ-กอนสงให-ai"&gt;&lt;a href="#memorysearch--%e0%b8%ab%e0%b8%b2%e0%b9%83%e0%b8%ab%e0%b9%80%e0%b8%88%e0%b8%ad-%e0%b8%81%e0%b8%ad%e0%b8%99%e0%b8%aa%e0%b8%87%e0%b9%83%e0%b8%ab-ai" class="header-anchor"&gt;&lt;/a&gt;memorySearch — หาให้เจอ ก่อนส่งให้ AI
&lt;/h3&gt;&lt;p&gt;แทนที่จะ dump memory ทั้งหมดใส่ context — ใช้ &lt;code&gt;memory_search&lt;/code&gt; tool หาเฉพาะส่วนที่เกี่ยวข้อง:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;User/Agent query → memory_search → Hybrid Search (BM25 + Embeddings) → top-K relevant memories → inject เข้า context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;ผลลัพธ์:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Context size ลดลงไปเยอะ — เฉพาะส่วนที่เกี่ยวข้องเท่านั้น&lt;/li&gt;
&lt;li&gt;Query accuracy ดีกว่า keyword search อย่างเดียว เพราะใช้ semantic understanding&lt;/li&gt;
&lt;li&gt;Embedding cache ไม่ต้อง compute embedding ใหม่ถ้ามี cache&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ลองนึกภาพ: คุณมี memory files 365 ไฟล์ (บันทึกทุกวันตลอดปี) ถ้า inject ทั้งหมด = เปลือง tokens มหาศาล แต่ด้วย &lt;code&gt;memory_search&lt;/code&gt; AI จะค้นหาเฉพาะไฟล์ที่เกี่ยวข้องกับคำถามปัจจุบัน — เช่น ถามเรื่อง &amp;ldquo;โปรเจกต์ลูกค้า A&amp;rdquo; ก็จะได้เฉพาะ memory ที่กล่าวถึงลูกค้า A ไม่ใช่ทุกไฟล์&lt;/p&gt;
&lt;p&gt;นี่คือความแตกต่างระหว่าง &lt;strong&gt;memory dump&lt;/strong&gt; (ยัดทุกอย่าง) กับ &lt;strong&gt;memory retrieval&lt;/strong&gt; (หาเฉพาะสิ่งที่ต้องการ) — แบบหลังประหยัด tokens กว่า และให้คำตอบที่แม่นยำกว่า&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="part-4-เลอกวธไหนด"&gt;&lt;a href="#part-4-%e0%b9%80%e0%b8%a5%e0%b8%ad%e0%b8%81%e0%b8%a7%e0%b8%98%e0%b9%84%e0%b8%ab%e0%b8%99%e0%b8%94" class="header-anchor"&gt;&lt;/a&gt;Part 4: เลือกวิธีไหนดี?
&lt;/h2&gt;&lt;p&gt;ไม่มีวิธีไหน &amp;ldquo;ดีที่สุด&amp;rdquo; — ขึ้นกับ use case ตารางนี้ช่วยตัดสินใจ:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;วิธี&lt;/th&gt;
 &lt;th&gt;เหมาะกับ&lt;/th&gt;
 &lt;th&gt;Cost&lt;/th&gt;
 &lt;th&gt;Fidelity&lt;/th&gt;
 &lt;th&gt;Persistence&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;File-based&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Small-medium workspace, human-readable&lt;/td&gt;
 &lt;td&gt;ต่ำ (ไฟล์เท่านั้น)&lt;/td&gt;
 &lt;td&gt;สูง (verbatim)&lt;/td&gt;
 &lt;td&gt;✓ Cross-session&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;RAG + Vector DB&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;เอกสารเยอะ, semantic search&lt;/td&gt;
 &lt;td&gt;กลาง (embeddings + DB)&lt;/td&gt;
 &lt;td&gt;กลาง (top-K chunks)&lt;/td&gt;
 &lt;td&gt;✓ Cross-session&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Context Compaction&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Long-running agents, in-session&lt;/td&gt;
 &lt;td&gt;กลาง (LLM inference)&lt;/td&gt;
 &lt;td&gt;ต่ำ-กลาง (summary)&lt;/td&gt;
 &lt;td&gt;✗ In-session only&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Fine-tuning&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Style/behavior adjustment&lt;/td&gt;
 &lt;td&gt;สูง (training compute)&lt;/td&gt;
 &lt;td&gt;สูง (embedded in weights)&lt;/td&gt;
 &lt;td&gt;✓ Permanent แต่ outdated ได้&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="แนวทางแนะนำ-layered-memory-architecture"&gt;&lt;a href="#%e0%b9%81%e0%b8%99%e0%b8%a7%e0%b8%97%e0%b8%b2%e0%b8%87%e0%b9%81%e0%b8%99%e0%b8%b0%e0%b8%99%e0%b8%b3-layered-memory-architecture" class="header-anchor"&gt;&lt;/a&gt;แนวทางแนะนำ: Layered Memory Architecture
&lt;/h3&gt;&lt;p&gt;แทนที่จะเลือกวิธีเดียว — &lt;strong&gt;layer หลายวิธี&lt;/strong&gt; เหมือนพีระมิด:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;┌─────────────────────────────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;│ LLM (Context Window) │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;│ ← Working Memory (RAM) │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;├─────────────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;│ Compaction │ Clearing │ Memory Tool│ ← In-session management
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;├─────────────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;│ File-based Memory (Markdown) │ ← Short-term + curated
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;├─────────────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;│ Vector DB / RAG (ถ้าต้องการ) │ ← Large document corpus
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;├─────────────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;│ Fine-tuned Model (ถ้าต้องการ) │ ← Style/behavior
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;└─────────────────────────────────────┘
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;หลักการออกแบบ 4 ข้อ:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;เริ่มจากง่ายก่อน&lt;/strong&gt; — file-based memory เพียงอย่างเดียวสำหรับ use case ส่วนใหญ่&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;เพิ่ม compaction/clearing&lt;/strong&gt; เมื่อ context window ใกล้เต็ม&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;เพิ่ม RAG&lt;/strong&gt; เมื่อมีเอกสารภายนอกเยอะ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fine-tuning เป็นตัวเลือกสุดท้าย&lt;/strong&gt; — เฉพาะปรับ style/behavior&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="บทสงทาย-ขอผดพลาดทพบบอยเกยวกบ-ai-memory"&gt;&lt;a href="#%e0%b8%9a%e0%b8%97%e0%b8%aa%e0%b8%87%e0%b8%97%e0%b8%b2%e0%b8%a2-%e0%b8%82%e0%b8%ad%e0%b8%9c%e0%b8%94%e0%b8%9e%e0%b8%a5%e0%b8%b2%e0%b8%94%e0%b8%97%e0%b8%9e%e0%b8%9a%e0%b8%9a%e0%b8%ad%e0%b8%a2%e0%b9%80%e0%b8%81%e0%b8%a2%e0%b8%a7%e0%b8%81%e0%b8%9a-ai-memory" class="header-anchor"&gt;&lt;/a&gt;บทส่งท้าย: ข้อผิดพลาดที่พบบ่อยเกี่ยวกับ AI Memory
&lt;/h2&gt;&lt;p&gt;ระหว่างที่ทำงานกับ memory system มา มีหลายครั้งที่เห็นคนทำผิดซ้ำๆ เลยอยากแชร์ไว้ให้ระวัง:&lt;/p&gt;
&lt;h3 id="-ยดทกอยางใส-context-window"&gt;&lt;a href="#-%e0%b8%a2%e0%b8%94%e0%b8%97%e0%b8%81%e0%b8%ad%e0%b8%a2%e0%b8%b2%e0%b8%87%e0%b9%83%e0%b8%aa-context-window" class="header-anchor"&gt;&lt;/a&gt;❌ ยัดทุกอย่างใส่ context window
&lt;/h3&gt;&lt;p&gt;นี่คือข้อผิดพลาดอันดับหนึ่ง — คิดว่า context window ใหญ่ = ไม่ต้องทำอะไรเพิ่ม แต่จากงานวิจัย &amp;ldquo;Lost in the Middle&amp;rdquo; เราเห็นว่า AI จำข้อมูลกลาง context ได้แย่กว่าข้อมูลต้นและท้าย เห็นได้ชัด การยัดเอกสาร 50 หน้าใส่ context แล้วคาดหวังว่า AI จะ &amp;ldquo;อ่านจบ&amp;rdquo; เป็นความเข้าใจที่ผิด&lt;/p&gt;
&lt;h3 id="-ใช-fine-tuning-เพอ-สอนความรใหม"&gt;&lt;a href="#-%e0%b9%83%e0%b8%8a-fine-tuning-%e0%b9%80%e0%b8%9e%e0%b8%ad-%e0%b8%aa%e0%b8%ad%e0%b8%99%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1%e0%b8%a3%e0%b9%83%e0%b8%ab%e0%b8%a1" class="header-anchor"&gt;&lt;/a&gt;❌ ใช้ fine-tuning เพื่อ &amp;ldquo;สอนความรู้ใหม่&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;หลายคนเข้าใจผิดว่า fine-tuning คือวิธีสอน AI ให้รู้ข้อมูลใหม่ — แต่อย่างที่เห็นจากงานวิจัยของ Microsoft (Ovadia et al., 2024) RAG ให้ผลดีกว่า fine-tuning สำหรับ knowledge injection ทุกกรณี Fine-tuning เหมาะสำหรับปรับ style/tone ไม่ใช่สำหรับ inject ความรู้&lt;/p&gt;
&lt;h3 id="-ใช-vector-search-อยางเดยวโดยไมด-chunk-size"&gt;&lt;a href="#-%e0%b9%83%e0%b8%8a-vector-search-%e0%b8%ad%e0%b8%a2%e0%b8%b2%e0%b8%87%e0%b9%80%e0%b8%94%e0%b8%a2%e0%b8%a7%e0%b9%82%e0%b8%94%e0%b8%a2%e0%b9%84%e0%b8%a1%e0%b8%94-chunk-size" class="header-anchor"&gt;&lt;/a&gt;❌ ใช้ vector search อย่างเดียวโดยไม่ดู chunk size
&lt;/h3&gt;&lt;p&gt;เวลาทำ RAG chunk size สำคัญมาก — chunk เล็กเกินไป: context ไม่ครบ chunk ใหญ่เกินไป: ได้ noise เยอะ โดยทั่วไป chunk size 500-1000 tokens พร้อม overlap 100-200 tokens เป็นจุดเริ่มต้นที่ดี แต่ควรทดสอบกับข้อมูลจริงของตัวเอง&lt;/p&gt;
&lt;h3 id="-ไมม-memory-retention-policy"&gt;&lt;a href="#-%e0%b9%84%e0%b8%a1%e0%b8%a1-memory-retention-policy" class="header-anchor"&gt;&lt;/a&gt;❌ ไม่มี memory retention policy
&lt;/h3&gt;&lt;p&gt;ถ้าบันทึก memory ทุกอย่างโดยไม่ลบเลย — สักพัก memory files จะใหญ่เกินค้นหาได้มีประสิทธิภาพ ควรมี policy ว่า memory เก่าเกิน X วันจะถูก archive หรือลบ หรือสรุปย่อเก็บเฉพาะสาระสำคัญ&lt;/p&gt;
&lt;h3 id="-ใช-embedding-model-ทไมตรงกบ-domain"&gt;&lt;a href="#-%e0%b9%83%e0%b8%8a-embedding-model-%e0%b8%97%e0%b9%84%e0%b8%a1%e0%b8%95%e0%b8%a3%e0%b8%87%e0%b8%81%e0%b8%9a-domain" class="header-anchor"&gt;&lt;/a&gt;❌ ใช้ embedding model ที่ไม่ตรงกับ domain
&lt;/h3&gt;&lt;p&gt;Embedding model ทั่วไป (เช่น OpenAI text-embedding-3) ทำงานได้ดีกับภาษาอังกฤษ แต่กับภาษาไทยหรือ domain เฉพาะทาง อาจได้ผลลัพธ์ไม่แม่นยำ ควรทดสอบหลาย model และเลือกตัวที่เหมาะกับข้อมูลของตัวเอง&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="สรป-ai-ไมไดจำไมได--แคตองสอนวธจำ"&gt;&lt;a href="#%e0%b8%aa%e0%b8%a3%e0%b8%9b-ai-%e0%b9%84%e0%b8%a1%e0%b9%84%e0%b8%94%e0%b8%88%e0%b8%b3%e0%b9%84%e0%b8%a1%e0%b9%84%e0%b8%94--%e0%b9%81%e0%b8%84%e0%b8%95%e0%b8%ad%e0%b8%87%e0%b8%aa%e0%b8%ad%e0%b8%99%e0%b8%a7%e0%b8%98%e0%b8%88%e0%b8%b3" class="header-anchor"&gt;&lt;/a&gt;สรุป: AI ไม่ได้จำไม่ได้ — แค่ต้องสอนวิธีจำ
&lt;/h2&gt;&lt;p&gt;AI ไม่มีหน่วยความจำถาวรโดยธรรมชาติ — เหมือนคนที่ไม่ได้เขียนอะไรลงสมุด ทุกครั้งที่หลับตาก็เริ่มใหม่&lt;/p&gt;
&lt;p&gt;แต่เรามีวิธีสอน AI ให้ &amp;ldquo;จำ&amp;rdquo; ได้ 4 วิธี:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;File-based Memory&lt;/strong&gt; — เขียนลงไฟล์ Markdown ง่ายสุด เริ่มต้นที่นี่&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAG + Vector DB&lt;/strong&gt; — เมื่อเอกสารเยอะ ใช้ semantic search หาสิ่งที่ต้องการ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Context Compaction&lt;/strong&gt; — สรุปย่อ context เมื่อใกล้เต็ม window&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fine-tuning&lt;/strong&gt; — ฝัง style/behavior ลง model weights (ไม่ใช่ความรู้)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;กุญแจสำคัญคือ &lt;strong&gt;Layered Architecture&lt;/strong&gt; — ไม่พึ่งวิธีเดียว แต่ใช้หลายวิธีร่วมกัน เริ่มจากง่าย ค่อยๆ เพิ่มชั้นตามความจำเป็น&lt;/p&gt;
&lt;p&gt;สิ่งที่ต้องจำไว้เสมอ: &lt;strong&gt;window ใหญ่ ≠ จำได้ดี&lt;/strong&gt; จากงานวิจัย &amp;ldquo;Lost in the Middle&amp;rdquo; ของ Stanford แม้ context window จะใหญ่ถึง 1 ล้าน tokens AI ก็ยังลืมข้อมูลที่อยู่กลาง context ได้&lt;/p&gt;
&lt;p&gt;ดังนั้น แทนที่จะพยายามยัดทุกอย่างใส่ context window — &lt;strong&gt;สอน AI ให้รู้จักเลือกจำ&lt;/strong&gt; ดีกว่า&lt;/p&gt;
&lt;h3 id="เรมตนยงไง-3-ขนตอนงายๆ"&gt;&lt;a href="#%e0%b9%80%e0%b8%a3%e0%b8%a1%e0%b8%95%e0%b8%99%e0%b8%a2%e0%b8%87%e0%b9%84%e0%b8%87-3-%e0%b8%82%e0%b8%99%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%87%e0%b8%b2%e0%b8%a2%e0%b9%86" class="header-anchor"&gt;&lt;/a&gt;เริ่มต้นยังไง? 3 ขั้นตอนง่ายๆ
&lt;/h3&gt;&lt;p&gt;ถ้าคุณอยากลองสร้าง memory system ให้ AI ของตัวเอง เริ่มจาก 3 ขั้นตอนนี้:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ขั้นตอนที่ 1: สร้างไฟล์ memory&lt;/strong&gt; — แค่สร้างโฟลเดอร์ &lt;code&gt;memory/&lt;/code&gt; ใน workspace แล้วสร้างไฟล์ &lt;code&gt;memory/YYYY-MM-DD.md&lt;/code&gt; สำหรับแต่ละวัน เขียนสิ่งที่คุยกับ AI ที่สำคัญลงไฟล์นี้ ไม่ต้องสมบูรณ์ ขอแค่ capture key decisions และข้อเท็จจริงสำคัญ&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ขั้นตอนที่ 2: ตั้งค่า hybrid search&lt;/strong&gt; — ถ้าใช้ OpenClaw มันมี &lt;code&gt;memory_search&lt;/code&gt; built-in อยู่แล้ว แค่ใช้งานได้เลย ถ้าสร้างเอง ให้ใช้ BM25 (จาก library เช่น &lt;code&gt;rank_bm25&lt;/code&gt; ใน Python) ร่วมกับ embeddings (จาก &lt;code&gt;sentence-transformers&lt;/code&gt;) สำหรับ hybrid search&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ขั้นตอนที่ 3: ทดสอบและปรับ&lt;/strong&gt; — ลองถาม AI เกี่ยวกับข้อมูลที่เคยบันทึกไว้ ดูว่าหาเจอไหม ถ้าไม่เจอ อาจต้องปรับ chunk size, เพิ่ม overlap, หรือเปลี่ยน embedding model แล้ว iterate ไปเรื่อยๆ จนกว่าจะได้ผลลัพธ์ที่น่าพอใจ&lt;/p&gt;
&lt;p&gt;ถ้าทำได้ 3 ขั้นตอนนี้ คุณก็มี memory system พื้นฐานที่ใช้งานได้จริงแล้ว — ไม่ต้องตั้ง server ไม่ต้องเขียน pipeline ยาวๆ ไม่ต้องเรียน machine learning ลึกซึ้ง แค่เข้าใจหลักการ แล้วเริ่มจากสิ่งที่ง่ายที่สุด&lt;/p&gt;
&lt;p&gt;ถ้าคุณกำลังเริ่มต้น แนะนำให้เริ่มจาก &lt;strong&gt;File-based Memory&lt;/strong&gt; ก่อน — ไม่ต้องตั้ง server ไม่ต้องเขียน pipeline แค่สร้างไฟล์ Markdown แล้วให้ AI อ่าน-เขียน แค่นี้ก็มี memory system ที่ใช้งานได้จริงแล้ว พอข้อมูลเริ่มเยอะค่อยขยับไป RAG หรือเพิ่ม compaction เมื่อ context เริ่มเต็ม&lt;/p&gt;
&lt;p&gt;memory system ที่ดี ไม่ใช่ระบบที่เก็บข้อมูลได้เยอะที่สุด — แต่เป็นระบบที่ &lt;strong&gt;หาสิ่งที่ต้องการเจอ ได้เร็ว และเสียค่าใช้จ่ายน้อยที่สุด&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-อางอง"&gt;&lt;a href="#-%e0%b8%ad%e0%b8%b2%e0%b8%87%e0%b8%ad%e0%b8%87" class="header-anchor"&gt;&lt;/a&gt;📚 อ้างอิง
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Vellum LLM Leaderboard (Apr 2026) — &lt;a class="link" href="https://www.vellum.ai/llm-leaderboard" target="_blank" rel="noopener"
 &gt;https://www.vellum.ai/llm-leaderboard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Codingscape &amp;ldquo;Most powerful LLMs in 2026&amp;rdquo; (Mar 2026) — &lt;a class="link" href="https://codingscape.com/blog/most-powerful-llms-large-language-models" target="_blank" rel="noopener"
 &gt;https://codingscape.com/blog/most-powerful-llms-large-language-models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Liu et al. &amp;ldquo;Lost in the Middle&amp;rdquo; (arXiv:2307.03172, TACL 2024) — &lt;a class="link" href="https://arxiv.org/abs/2307.03172" target="_blank" rel="noopener"
 &gt;https://arxiv.org/abs/2307.03172&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Stanford PDF — Lost in the Middle — &lt;a class="link" href="https://cs.stanford.edu/~nfliu/papers/lost-in-the-middle.arxiv2023.pdf" target="_blank" rel="noopener"
 &gt;https://cs.stanford.edu/~nfliu/papers/lost-in-the-middle.arxiv2023.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;TechXplore coverage (Jun 2025) — &lt;a class="link" href="https://techxplore.com/news/2025-06-lost-middle-llm-architecture-ai.html" target="_blank" rel="noopener"
 &gt;https://techxplore.com/news/2025-06-lost-middle-llm-architecture-ai.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mem0 &amp;ldquo;Architecture of Remembrance&amp;rdquo; — &lt;a class="link" href="https://mem0.ai/blog/what-is-ai-agent-memory" target="_blank" rel="noopener"
 &gt;https://mem0.ai/blog/what-is-ai-agent-memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;MemoriLabs &amp;ldquo;RAG vs Memory for AI Agents&amp;rdquo; — &lt;a class="link" href="https://memorilabs.ai/blog/rag-vs-memory-for-ai-agents/" target="_blank" rel="noopener"
 &gt;https://memorilabs.ai/blog/rag-vs-memory-for-ai-agents/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anthropic Context Engineering Cookbook — &lt;a class="link" href="https://platform.claude.com/cookbook/tool-use-context-engineering-context-engineering-tools" target="_blank" rel="noopener"
 &gt;https://platform.claude.com/cookbook/tool-use-context-engineering-context-engineering-tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Factory.ai &amp;ldquo;Evaluating Context Compression for AI Agents&amp;rdquo; — &lt;a class="link" href="https://factory.ai/news/evaluating-compression" target="_blank" rel="noopener"
 &gt;https://factory.ai/news/evaluating-compression&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ovadia et al. &amp;ldquo;Fine-Tuning or Retrieval?&amp;rdquo; (EMNLP 2024, Microsoft) — &lt;a class="link" href="https://aclanthology.org/2024.emnlp-main.15.pdf" target="_blank" rel="noopener"
 &gt;https://aclanthology.org/2024.emnlp-main.15.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw GitHub — Memory System — &lt;a class="link" href="https://github.com/openclaw/openclaw" target="_blank" rel="noopener"
 &gt;https://github.com/openclaw/openclaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitBook &amp;ldquo;OpenClaw Memory System Deep Dive&amp;rdquo; — &lt;a class="link" href="https://snowan.gitbook.io/study-notes/ai-blogs/openclaw-memory-system-deep-dive" target="_blank" rel="noopener"
 &gt;https://snowan.gitbook.io/study-notes/ai-blogs/openclaw-memory-system-deep-dive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw Docs — Context — &lt;a class="link" href="https://docs.openclaw.ai/concepts/context" target="_blank" rel="noopener"
 &gt;https://docs.openclaw.ai/concepts/context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub Issue #61347 — Selective/lazy injection — &lt;a class="link" href="https://github.com/openclaw/openclaw/issues/61347" target="_blank" rel="noopener"
 &gt;https://github.com/openclaw/openclaw/issues/61347&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mem0 LLM API Cost Breakdown — &lt;a class="link" href="https://mem0.ai/blog/llm-api-cost-breakdown-claude-gemini-openai-compared" target="_blank" rel="noopener"
 &gt;https://mem0.ai/blog/llm-api-cost-breakdown-claude-gemini-openai-compared&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Inclusion Cloud &amp;ldquo;Vector Databases as Memory Layer&amp;rdquo; — &lt;a class="link" href="https://inclusioncloud.com/insights/blog/vector-databases-enterprise-ai/" target="_blank" rel="noopener"
 &gt;https://inclusioncloud.com/insights/blog/vector-databases-enterprise-ai/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Dev Genius &amp;ldquo;RAG &amp;amp; Vector Databases: The Memory Layer of GenAI&amp;rdquo; — &lt;a class="link" href="https://blog.devgenius.io/rag-vector-databases-the-memory-layer-of-genai-88a7df2f5b25" target="_blank" rel="noopener"
 &gt;https://blog.devgenius.io/rag-vector-databases-the-memory-layer-of-genai-88a7df2f5b25&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;!-- Author Bio --&gt;
&lt;div class="author-bio"&gt;
 &lt;h4 class="author-bio-name"&gt;เกี่ยวกับผู้เขียน&lt;/h4&gt;
 &lt;p class="author-bio-text"&gt;&lt;strong&gt;เหน่ง (Neng)&lt;/strong&gt; — นักวิชาการพัฒนาชุมชน กรมการพัฒนาชุมชน กระทรวงมหาดไทย สนใจด้าน AI Engineering, Multi-Agent Systems และการประยุกต์ใช้เทคโนโลยีเพื่อการพัฒนาชุมชน&lt;/p&gt;
 &lt;p&gt;
 &lt;a href="https://github.com/jitaret-rgb" target="_blank" rel="noopener"&gt;GitHub&lt;/a&gt; · 
 &lt;a href="https://t.me/Jitaret" target="_blank" rel="noopener"&gt;Telegram&lt;/a&gt; · 
 &lt;a href="https://www.facebook.com/jittaret.phromnanra/" target="_blank" rel="noopener"&gt;Facebook&lt;/a&gt;
 &lt;/p&gt;
&lt;/div&gt;</description></item></channel></rss>