▶SUBTHAIแปลไทย · ซับ · พากย์⚙
บทความแปลภาษาไทย · YouTube

Improved AI Memory?

0:000:00
เล่นเสียงต้นฉบับของวิดีโอ พร้อมแสดงซับไทยซิงก์ตามเวลา
กำลังโหลดวิดีโอ…
01

สรุปย่อ

ประเด็นสำคัญจากวิดีโอ

- **ช่อง:** Wanderloots · **ความยาว:** ~26 นาที · **ลิงก์:** https://www.youtube.com/watch?v=R1TNGOZAOZs

# สรุป: Improved AI Memory? 🧠 Full Hermes Tutorial (Mnemosyne & Hindsight)

- **ช่อง:** Wanderloots · **ความยาว:** ~26 นาที · **ลิงก์:** https://www.youtube.com/watch?v=R1TNGOZAOZs

## ประเด็นหลัก

- AI Agent ที่ไม่มีระบบความจำที่ดีจะลืมบริบทตลอดเวลา ทำให้เปลืองโทเค็นและเวลา โดยเฉพาะเมื่อใช้หลาย agent พร้อมกัน
- Memory stack ของ agentic AI ประกอบด้วย 3 ระดับ: world knowledge (Obsidian/LLM Wiki), built-in memory, และ external memory providers
- Built-in memory ของ Hermes (memory.md, user.md, soul.md + session search) ถูก inject เข้าทุก session — ดีแต่เปลืองโทเค็นถ้าใหญ่เกินไป
- Memory providers (Mnemosyne, Hindsight) เป็น external layer ที่ดึงข้อมูลเมื่อจำเป็นแทนที่จะ inject ทุกครั้ง — ช่วยให้บริบทกระชับ
- **Mnemosyne** — memory layer แบบเบา, zero-dependency, รันบน SQLite, เร็วระดับ sub-millisecond, ใช้ BEAM architecture, ไม่ต้องใช้ LLM, เหมาะสำหรับผู้ใช้ทั่วไป
- **Hindsight** — memory engine เต็มรูปแบบ, built-in ใน Hermes, มี reflect (ทบทวนด้วยเหตุผล), มี dashboard, ต้องรันเซิร์ฟเวอร์แยกและใช้ LLM
- การติดตั้ง Mnemosyne: ใช้ pipx ติดตั้งแยกจาก Hermes venv, ลิงก์เข้า plugins folder, รัน `hermes memory setup`, เลือก global scope
- การติดตั้ง Hindsight: รัน Docker container แยก, เชื่อมต่อกับ Ollama (local model), ตั้งค่าใน Hermes เป็น local external
- ทั้งสองระบบสามารถ export ข้อมูลระหว่างกันได้ — ไม่มีการล็อกอินกับผู้ให้บริการรายใด
- ขั้นต่อไป: เชื่อมต่อ agentic memory กับ Obsidian LLM Wiki เพื่อให้ agent ใช้เหตุผลกับความรู้ทั้งหมดของคุณ

## ความเห็นสรุป

วิดีโอนี้ให้คำแนะนำที่ใช้งานได้จริงในการติดตั้งระบบความจำให้ AI Agent โดย Callum อธิบายความแตกต่างระหว่าง memory layer และ memory engine อย่างชัดเจน Mnemosyne เหมาะสำหรับผู้ที่ต้องการความเร็วและความเรียบง่ายในเครื่องเดียว ส่วน Hindsight เหมาะสำหรับผู้ที่ต้องการฟีเจอร์ขั้นสูงอย่างการ reflect และ dashboard แบบเต็มรูปแบบ ทั้งสองตัวเลือกช่วยลดการเปลืองโทเค็นและทำให้ agent ทำงานได้ฉลาดขึ้นอย่างเห็นได้ชัด
02

คำแปลเต็ม

แปลตามบทสนทนาต้นฉบับ ปรับเป็นภาษาไทยธรรมชาติ

สำหรับผมแล้วนี่มันน่าทึ่งมากที่ไม่ใช่แค่เราทำให้ agent จดจำสิ่งต่างๆ ได้ แต่มันยังสร้างกราฟ (graph) จากความทรงจำของเราในแบบที่ช่วยปรับปรุง agent ให้แก้ปัญหาที่เราพยายามแก้ได้ดีขึ้นด้วย คุณเคยหงุดหงิดไหมที่ AI ของคุณชอบลืมสิ่งต่างๆ คุณต้องอธิบายบริบทเดิมซ้ำแล้วซ้ำเล่า เปลืองทั้งโทเค็นและเวลา และถ้าคุณรัน agent หลายตัว มันยิ่งแย่เข้าไปใหญ่เพราะคุณต้องแชร์บริบทให้พวกมันเข้าใจตรงกัน นั่นเป็นเพราะคุณไม่ได้ใช้ระบบความจำจริงๆ หรืออย่างน้อยก็ไม่ใช่ระบบที่ดีสักเท่าไร เรามาแก้ปัญหานี้กันเถอะ

สวัสดีครับ ผมชื่อ Callum หรือที่รู้จักในชื่อ Wanderloots ยินดีต้อนรับสู่วิดีโอวันนี้ว่าด้วยการให้ agent ของคุณมีความจำอย่างแท้จริง วันนี้ผมใช้ Hermes Agent เป็นตัวอย่าง แต่เครื่องมือด้านความจำที่ผมพูดถึงใช้ได้กับ AI แบบ agentic ทุกตัว และที่สำคัญกว่านั้นคือมันทำงานร่วมกันระหว่าง AI agent หลายตัวได้ คุณสามารถตั้งระบบนี้ครั้งเดียวแล้วเชื่อมต่อกับ agent ตัวไหนก็ได้โดยใช้หน่วยความจำกลาง (universal memory) ร่วมกัน ถ้าคุณยังใหม่กับ Hermes และอยากติดตั้งอย่างปลอดภัย ผมมีเพลย์ลิสต์เกี่ยวกับ agentic AI แบบเต็มอยู่ตรงนี้

เมื่อดูวิดีโอนี้จบ คุณจะเข้าใจลำดับชั้นต่างๆ ของ memory stack และเข้าใจว่า agentic memory แตกต่างจาก knowledge layer อย่าง Obsidian หรือ LLM Wiki อย่างไร ทำไมคุณถึงอาจอยากใช้ dedicated memory provider แทนที่จะใช้ built-in memory ตัวเลือก memory แบบต่างๆ และทำไมผมถึงเลือกสองตัวที่เราจะติดตั้งกันวันนี้ วิธีติดตั้ง memory layer แบบเบาที่ไม่เป็นทางการ และวิธีติดตั้ง memory engine แบบเต็มรูปแบบอย่างเป็นทางการ ผมตื่นเต้นมากเพราะ memory เป็นสิ่งที่ผมศึกษามานาน และผมแทบรอไม่ไหวที่จะช่วยคุณติดตั้งมันในวันนี้

ทีนี้มาดู agentic memory กันครับ ก่อนที่เราจะติดตั้งอะไร ผมอยากเคลียร์ความสับสนที่พบบ่อยเกี่ยวกับ agentic memory ก่อน — มันไม่ใช่แค่ layer เดียว แต่มันคือ stack (ระบบซ้อนชั้น) เมื่อผู้คนพูดถึง second brain หรือ agentic memory จริงๆ แล้วพวกเขากำลังหมายถึงสามอย่าง: world knowledge, built-in memory และ external memory

knowledge layer อย่าง Obsidian vaults หรือ LLM Wiki เป็นส่วนหนึ่งของ memory stack แต่ไม่ใช่ operational memory (ความจำเชิงปฏิบัติการ) จริงๆ ในแบบที่เราหมายถึงเมื่อพูดว่า agent memory มันคือ world knowledge ข้อมูลพื้นฐานที่ใช้ร่วมกันในทุกโปรเจกต์และทุก agent คุณสามารถจำกัดการเข้าถึง knowledge layer นี้ของ agent ได้ ซึ่งผมพูดถึงเพิ่มเติมในวิดีโอเรื่องการเชื่อมต่อ agentic AI กับ Obsidian

จากนั้นเรามี operational memory ซึ่งแบ่งเป็นสองระดับ: built-in memory และ dedicated memory providers operational memory เน้นไปที่สิ่งที่ agent ควรจดจำเกี่ยวกับการทำงานกับเราโดยเฉพาะ การทดสอบง่ายๆ คือ ถ้าเป็นความรู้ที่คุณอยากให้เก็บรักษาและจัดระเบียบไว้ใช้ในทุกสิ่งที่คุณทำ — นั่นคือ Obsidian แต่ถ้าเป็นข้อเท็จจริงเกี่ยวกับสไตล์การทำงานของคุณหรือสิ่งที่คุณกำลังทำอยู่ตอนนี้ — นั่นคือ agentic memory

สรุปภาพรวม: เรามี built-in memory ซึ่งดีสำหรับการสนทนาแบบ single session ง่ายๆ, memory provider สำหรับเมื่อคุณทำโปรเจกต์ซับซ้อนที่ดำเนินต่อเนื่อง หรือแค่อยากได้ประสิทธิภาพและการเรียกคืนของ agent ที่ดีขึ้นอย่างเห็นได้ชัด, และ knowledge layer อย่าง Obsidian สำหรับสร้าง world knowledge ที่ครอบคลุมทุกโปรเจกต์และทุก agent ที่คุณรัน ผมพูดถึงการเชื่อมต่อ Obsidian กับ agentic AI เพิ่มเติมในวิดีโอนี้

วันนี้ผมอยากโฟกัสเฉพาะสองระดับแรก คือ built-in memory และ external memory provider วิดีโอถัดไปของผมจะลงลึกในการตั้งค่า Obsidian LLM Wiki ที่เสริม agent memory ที่เรากำลังติดตั้งกันวันนี้ เรามาเริ่มด้วยการเปรียบเทียบ built-in memory กับ memory provider จริงๆ กันครับ

ถ้าคุณพบว่าวิดีโอนี้มีประโยชน์ ช่วยกดไลก์ กดไฮป์ และกดติดตามด้วยนะครับ ผมซาบซึ้งในการสนับสนุนของคุณมาก ถ้าคุณมองหาวิธีสนับสนุนผมเพิ่มเติม ลองพิจารณาเข้าร่วมสมาชิก YouTube หรือ Patreon ของผม ซึ่งผมให้สมาชิกเข้าถึงทิปส์ ข้อมูลเชิงลึก และมุมมองของผมเกี่ยวกับอนาคตของ agentic AI และการจัดการความรู้

แล้ว built-in memory ของ Hermes หน้าตาเป็นยังไงล่ะ? มันมีสามไฟล์: memory.md ซึ่งเป็น operational memory ของคุณ, user.md ซึ่งบอกว่าคุณเป็นใคร, และ soul.md ซึ่งทางเทคนิคแล้วไม่ใช่ memory แต่เป็นบุคลิกภาพของ agent เอง นอกจากนั้น built-in memory ยังรวมถึง session search ที่เก็บในฐานข้อมูลภายใน (local database) คุณจึงถาม Hermes ให้ค้นหาจาก session ที่ผ่านมาได้เลย

ทิปสั้นๆ: วิธีที่ดีที่สุดในการเริ่มใช้ agent อย่าง Hermes คือการบอก Hermes เกี่ยวกับตัวคุณตั้งแต่เริ่ม ถ้ามันเข้าใจมากขึ้นว่าคุณเป็นใครและชอบทำงานแบบไหน ทั้งระบบจะฉลาดขึ้นแทบจะทันที

คำถามหนึ่งที่มีคนถามผมบ่อยเกี่ยวกับการรัน built-in memory คือถ้าคุณใช้ Hermes terminal execution backend ที่รันโค้ดใน Docker Hermes จะยังเข้าถึง memory ได้ไหม? คำตอบคือได้ครับ การรันใน Docker ไม่กระทบความสามารถของ Hermes ในการเข้าถึงไฟล์ memory และ user ของตัวเอง มันใช้ memory tool ซึ่งเป็นสิ่งเดียวกับที่ memory providers ใช้ แทนที่จะรันผ่านโค้ดที่ถูก sandbox ใน Docker ผมพูดถึงเรื่องนี้เพิ่มเติมในวิดีโอวิธีแยก agent ให้ทำงานอย่างปลอดภัยบนคอมพิวเตอร์ของคุณ

ประเด็นสำคัญคือ built-in user และ memory files ถูก inject เข้าไปในทุก session ใหม่ มันกลายเป็นส่วนหนึ่งของบริบทในทุกการสนทนาที่คุณมีกับ Hermes ทีนี้ นี่เป็นเรื่องดีเพราะหมายความว่า agent ของคุณจะไม่มีวันลืมว่าคุณเป็นใคร แต่มันก็หมายความว่ามันใช้บริบทและโทเค็นไปบางส่วนในทุกการสนทนา คุณต้องทำให้มันกระชับที่สุดเพื่อไม่ให้เปลืองโทเค็น และนั่นคือจุดที่ memory provider จริงๆ เข้ามามีบทบาท

memory provider คือ external layer ที่เก็บและเรียกคืนข้อมูล ณ เวลาที่รัน (runtime) หรือเมื่อ agent ต้องการใช้จริงๆ แทนที่จะ insert เข้าไปในทุกการสนทนา นี่ช่วยให้บริบทของคุณกระชับและข้อมูลตรงประเด็นเมื่อคุณต้องการใช้จริงๆ

มาดู memory providers ให้ลึกขึ้นครับ หลายคนรู้สึก overwhelmed เวลาพยายามเลือก memory provider และนั่นก็เข้าใจได้ มีตัวเลือกและปัจจัยให้พิจารณาเยอะมาก มันขึ้นอยู่กับเป้าหมายของคุณ จำนวน agent หรือผู้ใช้ที่แชร์ memory นั้น ฮาร์ดแวร์ที่คุณมีสำหรับรัน และว่าคุณอยากใช้เครื่องมือฟรีหรือเสียเงิน

ข่าวดีคือส่วนใหญ่ — ถ้าไม่ใช่ทั้งหมด — ของพวกมันอนุญาตให้คุณย้ายข้อมูลระหว่างกันได้ คุณจึงไม่ได้ถูกล็อกกับตัวเลือกแรกที่คุณเลือก คุณสามารถทดสอบและทดลองได้ และถ้าคุณไม่ชอบเครื่องมือหนึ่ง คุณก็สามารถย้าย memory ไปอีกตัวได้เสมอ

แต่แทนที่จะเปรียบเทียบทั้งหมดในวิดีโอนี้ ซึ่งคงใช้เวลานาน ผมได้รวบรวมบทวิเคราะห์ของผมไว้ในโพสต์ Patreon ฟรีที่ผมจะแปะลิงก์ในคอมเมนต์บนสุดของวิดีโอ คุณจะได้ดูตัวเลือกต่างๆ และดูว่าอะไรเหมาะกับสถานการณ์ของคุณที่สุด แต่วันนี้ แทนที่จะดูจาก benchmark หรือรายการฟีเจอร์ ผมคิดว่าจะดูสิ่งที่คอมมูนิตี้ให้คะแนนสูงสุดและที่หลายคนแนะนำให้ผม และพวกมันคือ Mnemosyne กับ Hindsight

Mnemosyne เป็นระบบ lightweight แบบ zero-dependency (ไม่ต้องพึ่งไลบรารีภายนอก) และไม่ต้องใช้ LLM ในการทำงาน มันรันบนเครื่องคุณล้วนๆ เร็วอย่างเหลือเชื่อด้วย built-in embeddings Mnemosyne เหมาะมากถ้าคุณอยากได้ memory provider ที่ไม่ทำให้ระบบคุณช้าลง

Hindsight มีฟีเจอร์มากกว่าและมันอยู่ในอันดับต้นๆ ของ memory benchmark ส่วนใหญ่ แต่มันต้องเชื่อมต่อคลาวด์หรือมี server ของคุณเองพร้อม LLM ในการขับเคลื่อน วิธีคิดที่ง่ายที่สุดคือ Mnemosyne เป็น memory layer ส่วน Hindsight เป็น memory engine

มาเริ่มด้วยตัวเลือก lightweight อย่าง Mnemosyne ก่อน คุณจะได้เห็น memory provider ทำงานจริงก่อนที่เราจะขยับไปใช้พลังที่มากขึ้นกับ Hindsight

เรามอง Mnemosyne ได้ว่าเป็น universal memory layer สำหรับ AI agent ทุกชนิดที่รันบน SQLite backend ด้วยความเร็วระดับ sub-millisecond แบบ zero dependencies จุดประสงค์ที่ผมแสดงตัวนี้ก่อนคือมันเร็วมากและไม่ต้องติดตั้งอะไรเพิ่มเยอะ

ข้อมูลเพิ่มเติมเกี่ยวกับ Mnemosyne: มันได้แรงบันดาลใจทางชีววิทยาจาก BEAM architecture ซึ่งนำ memory ระดับต่างๆ เข้ามา เช่น working memory, episodic memory, semantic memory และ scratchpad โดยแต่ละระดับถูก optimize สำหรับรูปแบบการเข้าถึงที่ต่างกัน ทุกอย่างอยู่บนเครื่องคุณ ซึ่งดีต่อความเป็นส่วนตัว มันมีความเร็วในการ query ต่ำกว่า 100 มิลลิวินาที และมีการผสานรวมกับ Hermes โดยตรง

มาดู architecture กันสักครู่ครับ ประเด็นสำคัญคือเรากำลังสร้าง auto context injection ซึ่งหมายความว่าเมื่อคุณมีคำถาม เมื่อคุณถาม Hermes อะไรสักอย่าง Mnemosyne จะรับ query นั้น ใช้ recall tool เพื่อดูบริบทที่มีอยู่ และ inject บริบทนั้นเข้าไปใน prompt ของ agent ก่อนที่มันจะตอบคุณ เมื่อคุณสนทนาต่อไป มันจะจดจำมากขึ้นเรื่อยๆ ซึ่งจะถูกป้อนกลับเข้าไปใน Mnemosyne เพื่อช่วยมันสร้าง context assembly นี้

นี่เป็นวิธีที่ยอดเยี่ยมในการสร้างระบบความจำที่พัฒนาตัวเองได้ (self-evolving memory system) สำหรับ agent ของคุณ และอย่างที่เราเห็น มันใช้กับ Claude Code ได้ ใช้กับ Codex ได้ ใช้กับ Cursor ได้ ใช้กับ agent อะไรก็ได้ที่คุณต้องการ และเราสามารถให้ทั้งหมดเชื่อมต่อกับ memory bank เดียวกันได้ถ้าเราต้องการ

เอาล่ะ มาติดตั้ง Mnemosyne กันครับ ถ้าเราไปที่เอกสารของเขา เราจะเห็นว่ามันมีการผสานรวมกับ Hermes Agent และมีรายการคำสั่งด่วนให้ ง่ายต่อการติดตั้งมาก และมีสิ่งหนึ่งที่ผมอยากพูดถึงสั้นๆ คือถ้าคุณรัน Hermes และมี terminal execution backend รันอยู่ใน Docker เราสามารถให้ Hermes ติดตั้ง Mnemosyne ให้เราไม่ได้ เพราะ Hermes จะพยายามรัน terminal และมันจะรันใน Docker container และนั่นไม่ใช่สิ่งที่เราต้องการ เพราะเราต้องการให้ระบบ memory ของเราอยู่รอดนอก Docker container ของ terminal execution backend ถ้าคุณไม่ได้รันใน Docker คุณก็แค่บอกให้ Hermes ทำให้ได้เลย แต่โดยพื้นฐานแล้วนี่หมายความว่าเราต้องรันมันจาก host device บนคอมพิวเตอร์ของเรา

ผมจะติดตั้งมันโดยตรงจาก terminal ด้วยตัวเอง Mnemosyne ไม่ใช่ built-in provider เราจึงต้องติดตั้ง Mnemosyne แบบ manual มากกว่าเล็กน้อย แต่ประเด็นสำคัญคือเราไม่ได้ติดตั้งมันใน Hermes managed virtual environment เพราะทุกครั้งที่คุณรัน Hermes update มันจะ rebuild virtual environment นั้นแล้วลบแพ็กเกจเสริมทั้งหมดทิ้ง

เรามีสองตัวเลือกที่ระบุไว้: ใช้ pipx ซึ่งสร้าง virtual environment แยกต่างหาก หรือสร้าง virtual environment ด้วยตัวเองโดยใช้ fallback option อย่างไรก็ตาม ทั้งสองตัวเลือกนี้ใช้ไม่ได้ผลสมบูรณ์สำหรับผม ถ้าคุณติดตั้ง Mnemosyne แล้วรัน Hermes memory status แล้วได้ error plugin missing หรือตอนติดตั้งครั้งแรกแล้วเจอ error Python environments ไม่ตรงกัน คุณอาจต้องเพิ่มขั้นตอนอีกขั้นหนึ่ง

ขั้นตอนแรกคือติดตั้ง Mnemosyne Hermes ใน pipx environment ของมันเอง แล้วตั้งค่า config สองขั้นตอนนี้เหมือนเดิม แต่ก่อนที่เราจะรีสตาร์ท gateway เราต้องลิงก์ environment ใหม่ที่เราสร้างเข้ากับโฟลเดอร์ plugins ของ Hermes แล้วรันสิ่งที่เรียกว่า Hermes memory setup นั่นเป็นวิธีที่ง่ายมากที่คุณสามารถรันใน terminal และมันจะดำเนินการ configure Mnemosyne ให้คุณ เพื่อให้มันถูกรับรู้เป็น memory provider แทนที่จะเป็นแค่ plugin

มาเริ่มกันเลยครับ ผมจะไปที่เอกสาร คัดลอกคำสั่งติดตั้ง ไปที่ terminal แล้ววางลงไป เสร็จแล้วครับ ใช้เวลาไม่ถึงนาที ตอนนี้เรามี Mnemosyne Hermes ติดตั้งแล้ว ถ้าเราไปที่ Memory and Context เราจะเห็นว่าตอนนี้เรามี default memory system เปิดใช้งานอยู่ และนี่คือ built-in memory provider แต่เราจะเห็นว่าถ้าเราคลิก dropdown เรายังไม่เห็น Mnemosyne เพราะมันเป็น plugin ไม่ใช่ built-in memory provider เราจึงต้องเปิดใช้งานมันสำหรับ default profile นอกเหนือจากการตั้งค่าใน desktop app

ผมจะกลับไปที่เอกสาร คัดลอก string นี้ วางลงไป เสร็จแล้วครับ ใช้เวลาแค่ 2 วินาที และสิ่งที่เกิดขึ้นคือมันแก้ไขไฟล์ config.yaml ให้ใช้ Mnemosyne เป็น memory provider

ตอนนี้เราเพิ่งติดตั้ง Mnemosyne ใน One Bin และเราต้องการสร้าง symlink หรือ link ระหว่างที่เราติดตั้งมันโดยใช้ environment แยกนั้นกับโฟลเดอร์ plugins จริงๆ ของ Hermes นั่นคือสิ่งที่เราเห็นตรงนี้ — มันเพิ่งตรวจสอบว่า provider อย่าง Mnemosyne พร้อมใช้งานและเชื่อมต่อ Mnemosyne กับ Hermes ได้

ขั้นตอนต่อไปคือรัน Hermes memory setup และตรงนี้เราจะเลือก Mnemosyne local แล้วตอบ yes พอเรารัน Hermes memory setup เราจะดำเนินการทีละขั้นตอนและเลือกการตั้งค่าต่างๆ สำหรับ Mnemosyne ในฐานะ Hermes memory provider ผมใช้ตัวเลือก default ทุกอย่างยกเว้นการเข้าถึงแบบ global แทน session memories แต่ผมแนะนำให้อ่านสิ่งที่มันถาม และถ้าคุณไม่แน่ใจ ให้ถาม Hermes ช่วยอธิบาย setup ในแบบที่เหมาะกับคุณที่สุด

การตั้งค่าที่สำคัญที่สุด: default scope สำหรับการจดจำคืออะไร? ผมไม่อยากจำกัดมันแค่ต่อ session ผมอยากให้มันครอบคลุมทุก session นั่นคือหนึ่งในประโยชน์ของการรันระบบ memory ดังนั้นการเปลี่ยนตรงนี้เป็น global จึงสำคัญมาก เสร็จแล้วครับ เราจะเห็นว่ามันดำเนินการและบันทึก memory provider เป็น Mnemosyne

ทีนี้ถ้าเราไปที่ config.yaml ในโฟลเดอร์ .hermes เราจะเห็นว่ามีระบบ memory เต็มรูปแบบพร้อม skills และ tools ทั้งหมดที่ตั้งค่าไว้สำหรับ Mnemosyne provider

ต่อไปผมจะรีสตาร์ท Hermes Gateway พิมพ์ Hermes memory status แล้วเราจะเห็นว่า memory tools เปิดใช้งาน provider คือ Mnemosyne เรามีการตั้งค่าทั้งหมดที่เราเพิ่งทำไป เราสามารถเปลี่ยนทีหลังได้ plugin ติดตั้งแล้ว และ status เป็น available ซึ่งสำคัญมาก และตอนนี้ถ้าผมพิมพ์ Hermes Mnemosyne stats ทุกอย่างยังเป็นศูนย์เพราะเรายังไม่ได้เก็บอะไรไว้

มาลองใช้งานกันครับ ผมจะเปิด Hermes desktop app และถ้าเราไปที่ Memory and Context เราจะเห็นว่า Mnemosyne ถูกตั้งเป็น memory provider แล้ว เยี่ยมครับ ตอนนี้เรามีทุกอย่างติดตั้งแล้ว และถ้าเราอยากอัปเกรด เราก็พิมพ์ pipx upgrade Mnemosyne-Hermes ได้เลย

อีกขั้นตอนหนึ่งที่ผมอยากพูดถึงสั้นๆ คือเอกสารของ Mnemosyne แนะนำให้ปิด legacy memory และความหมายของมันก็คือ persistent memory และ user profile ที่เราตั้งไว้ เหตุผลหลักคือเพื่อหลีกเลี่ยงการซ้ำซ้อนและการเปลืองโทเค็น ผมแนะนำให้ปิดมันก่อนแล้วทดสอบดู และถ้าคุณสังเกตเห็นปัญหา คุณก็เปิดมันใหม่ได้เสมอ แต่อย่าปิดมันด้วยคำสั่งแบบนี้ — ให้คุณอัปเดตมันในไฟล์ config.yaml แทน โดยตั้ง memory enabled false, user profile enabled false ซึ่งก็เหมือนกับการ toggle ปุ่มพวกนี้ออก

มาทดสอบเร็วๆ กันครับ ถ้าผมถาม Hermes สักคำถาม มันไม่ควรรู้จักผม ก่อนหน้านี้ผมเคยบอก Hermes ว่าผมเป็นใคร แต่ตอนนี้ลองใหม่เพราะเรามี Mnemosyne แล้ว เราจะเห็นว่ามันทำงานและเปิดใช้งาน Mnemosyne recall skills และ canonical skill แต่มันยังไม่มีข้อมูลอะไร

ผมจะบอกข้อมูลเกี่ยวกับตัวผมเล็กน้อยเพื่อให้มันจำได้ ทิปสั้นๆ: นี่คือสิ่งแรกที่ผมทำเสมอเมื่อตั้งค่าระบบ memory ใหม่ — บอก Hermes หรือ agent ของคุณเกี่ยวกับตัวคุณและสิ่งที่คุณชอบ เพื่อให้มันเริ่มสร้างโปรไฟล์เกี่ยวกับคุณ และการสนทนาจะรู้สึกเป็นส่วนตัวและมีประสิทธิภาพมากขึ้นสำหรับสิ่งที่คุณพยายามทำ

ผมชื่อ Callum ใช้ชื่อว่า Wanderloots ทำช่อง YouTube เป็น patent agent ทนายความด้านทรัพย์สินทางปัญญา เรียนวิศวกรรมวัสดุศาสตร์ และนี่คือความชอบของผมในการตอบสนอง เราจะเห็นว่า Hermes กำลังรัน Mnemosyne tool มันกำลังรัน remember มีพื้นหลังอาชีพ alias และชื่อ และสิ่งเหล่านี้กำลังถูกเก็บลงในฐานข้อมูลที่ Mnemosyne ตั้งไว้

ทีนี้ ตัวอย่างเช่น ถ้าผมเปิดแชทใหม่แล้วถามว่า "ผมเป็นใคร?" เราควรเห็น Hermes เรียกคืนจาก Mnemosyne ได้แล้วครับ มันดึงข้อมูลมาได้ เยี่ยมมาก นั่นหมายความว่ามันทำงานได้สมบูรณ์ และตอนนี้ถ้าเรากลับไปที่ terminal แล้วรัน Hermes Mnemosyne stats เราจะเห็นว่ามี working memory ที่ยังไม่ consolidate ทั้งหมด 4 รายการ

นี่คือจุดที่มันจะดำเนินการต่อไปและเมื่อเวลาผ่านไปมันจะย้าย working memory ไปเป็น episodic memory และลึกลงไปอีก และนี่คือการนำสิ่งที่เรียกว่า BEAM architecture เข้ามา มันจะ observe รับการสนทนาและผลลัพธ์ของ tool และจดจำทั้งหมดนี้ใน working memory จากนั้นเมื่อเวลาผ่านไปมันจะ consolidate สิ่งนั้นเป็น long-term experiences หรือ episodic memories ทุกครั้งที่เราถาม agent ทุกครั้งที่มี input มันจะดึงจากทั้งสองส่วนนั้นแล้ว recall กลับมา

มีรายละเอียดเพิ่มเติมเกี่ยวกับ working memory แต่นี่เป็นระบบที่เจ๋งมาก โดยเฉพาะเมื่อพิจารณาว่ามันทั้งหมดเกิดขึ้นบนเครื่องคุณภายในฐานข้อมูล SQLite และที่เจ๋งอีกอย่างคือมันยังนำ structured knowledge ที่เก็บเป็น subject-predicate-object triples ซึ่งเป็นพื้นฐานของ knowledge graph เข้ามาด้วย ถ้าคุณอยากเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนั้น ผมมีวิดีโอเกี่ยวกับ knowledge graphs และวิธีใช้มันเพื่อปรับปรุงระบบ agent

แต่ผมขอแนะนำอย่างยิ่งให้คุณไปสำรวจ BEAM overview เพื่อให้เข้าใจมากขึ้นว่าระบบนี้ทำงานอย่างไร มันเจ๋งมากครับ

จำได้ไหมครับว่าตรงนี้เราต้อง manual เพิ่ม Mnemosyne เข้าไปในรายการ แต่มี built-in providers พวกนี้ทั้งหมดที่อาจทรงพลังกว่าขึ้นอยู่กับสิ่งที่คุณมองหา และผมจะทำงานติดตั้ง Hindsight ในวันนี้

โดยส่วนตัวแล้วผมชอบที่ Mnemosyne รันบนเครื่องได้ รันได้โดยไม่ต้องสร้างอะไรเพิ่ม ไม่มี dependencies และเร็วมาก ผมจะปล่อยให้มันเป็น default ในตอนนี้ แต่ผมจะสร้างโปรไฟล์ใหม่ชื่อ hindsight และใช้มันตั้งค่าการกำหนดค่าแยกต่างหาก

โอเค ตอนนี้ผมอยู่บน hindsight profile แล้ว ถ้าเราไปที่ Memory and Context อีกครั้ง เราจะเห็นว่าผมยังเปิด persistent memory และ user profile อยู่ และ built-in memory provider ถูกตั้งไว้ ผมยังไม่ได้ตั้งให้เชื่อมต่อกับ Mnemosyne จะเห็นว่า hindsight profile ไม่เห็น Mnemosyne ด้วยซ้ำ

สิ่งที่เราทำได้คือไปที่ memory provider ใน settings เลื่อนลงมาที่ Hindsight แล้วเปิดมัน แต่ก่อนอื่น มาดูเว็บไซต์ Hindsight กันครับ

Hindsight เป็น native memory provider ใน Hermes Agent ซึ่งหมายความว่ามันถูก built-in มาเลย และ Hindsight แตกต่างออกไปเล็กน้อยเพราะมันทำงานโดยให้ agent เชื่อมต่อกับเซิร์ฟเวอร์แยกต่างหาก มันไม่ใช่สิ่งที่รันใน Hermes เอง แต่ที่เจ๋งคือมันมีวิธีการทำงานหลากหลาย มันสร้าง mental models ของตัวเอง ดึง observations เข้ามา มี standard memories มีอะไรให้ทำมากมาย และมันสามารถ reflect (ทบทวน) แล้วดึงคำตอบที่ตระหนักรู้มากขึ้นโดยใช้เหตุผลเชิงลึก

เมื่อคุณรัน reflect มันจะรัน agentic loop ที่ค้นหา memory โดยอัตโนมัติ แล้วใช้สิ่งนั้นกำหนดรูปแบบการใช้เหตุผลของตัวเอง จากนั้นสร้างคำตอบสุดท้ายที่อิงกับสิ่งที่พบ ดังนั้นแทนที่จะแค่คืนข้อเท็จจริงดิบๆ reflect ให้การตอบสนองที่สังเคราะห์ขึ้นมากกว่า ซึ่งเป็นเหตุผลว่าทำไมมันถึงต้องใช้ LLM ด้วย มีความซับซ้อนมากกว่าเล็กน้อย

ผมขอแนะนำให้สำรวจเอกสารของ Hindsight ถ้าคุณอยากเรียนรู้เพิ่มเติม แต่ประเด็นสำคัญคือมันต้องรันเซิร์ฟเวอร์แยกหรือเชื่อมต่อกับเซิร์ฟเวอร์แยก

ถ้าเรากลับไปที่ memory provider และเลือก Hindsight เราจะเห็นว่ามี mode ปรากฏขึ้น เรามีตัวเลือก cloud และ local external เพื่อทำความเข้าใจมากขึ้น เราไปที่เอกสาร Hindsight สำหรับการตั้งค่าบน Hermes desktop โดยเฉพาะได้ และถ้าคุณอยากทำผ่าน command line ก็มีวิธีแยกในการใช้งาน Hermes memory setup เหมือนที่เราเห็นกับ Mnemosyne

โดยพื้นฐานเราแค่เลือก Hindsight ตั้ง mode ที่ต้องการ เรามี cloud ซึ่งต้องใช้ API key — ตรงนี้เราเชื่อมต่อกับ Hindsight cloud แต่มันมีค่าบริการ คุณเริ่มใช้ฟรีก่อนได้ แล้วขึ้นอยู่กับความถี่ในการใช้งานและขนาดระบบของคุณ คุณจะต้องเริ่มจ่ายเงิน คุณสามารถรันระบบด้วยตัวเองฟรีบนคอมพิวเตอร์ของคุณได้ถ้ามีฮาร์ดแวร์เพียงพอ แต่ถ้าไม่มี การดู Hindsight cloud ว่าค่าใช้จ่ายเท่าไรก็อาจคุ้มค่า ผมยังไม่ได้ลองใช้ cloud เป็นการส่วนตัว

วันนี้เราจะตั้งค่าระบบ local ครับ ลองดูการเปรียบเทียบระหว่าง cloud กับ local LLMs สำหรับการรัน agent memory — นี่คือ LLM ที่จะขับเคลื่อนระบบจริงๆ ตรงข้ามกับการเชื่อมต่อกับ Hindsight cloud ซึ่งจัดการ storage ด้วย คุณสามารถเชื่อมต่อกับ OpenAI, Anthropic หรือ Gemini API ได้ แต่คุณจะจ่ายต่อโทเค็นทุกครั้งที่ retain

คุณสามารถรันฟรีบนเครื่องตัวเองโดยใช้ Ollama ซึ่งผมมีวิดีโอเกี่ยวกับการรัน Ollama สำหรับ agentic AI ถ้าคุณสนใจ สิ่งหนึ่งที่ต้องจำคือไม่ใช่ทุกรุ่น local ที่รองรับ tool calling คุณต้องแน่ใจว่ารุ่นที่คุณใช้รองรับ ผมจะใช้ GPT-OSS 20 billion parameters ซึ่งขนาด 13 กิกะไบต์ ดังนั้นต้องแน่ใจว่าคุณติดตั้งรุ่นนั้นไว้แล้ว และต้องแน่ใจว่ามีแอป Ollama รันอยู่เบื้องหลังหรือ serve มันจาก terminal ด้วยตัวเอง

ขั้นตอนต่อไป เมื่อเรามี local model ดาวน์โหลดแล้ว คือเราเชื่อมต่อ Hindsight กับ local model นั้นและให้เซิร์ฟเวอร์รันอยู่เบื้องหลัง ผมจะทำใน Docker container เพราะช่วยเพิ่มความปลอดภัย ตอนนี้ Hermes terminal backend ของผมเชื่อมต่อกับ Docker container แล้ว เราจะเพิ่ม Docker container อีกตัวที่รันระบบ memory ใน Hindsight โดยตรง

เราวาง string นี้ ซึ่งผมจะรวมไว้ในบทความฟรีที่ลิงก์ในคอมเมนต์บนสุด โดยพื้นฐานแล้วเราอยากรัน Docker container ชื่อ hindsight และเราอยากให้มันรีสตาร์ทเองแม้คอมพิวเตอร์จะปิดแล้วเปิดใหม่ เรากำหนดพอร์ตสองพอร์ต — พอร์ตหนึ่งสำหรับรันเซิร์ฟเวอร์จริง และอีกพอร์ตสำหรับดู dashboard แล้วนี่คือ environment variables ทั้งหมดที่เรากำหนดค่าเพื่อให้มันเชื่อมต่อกับรุ่นที่ผมเลือก — GPT-OSS 20 billion

เสร็จแล้วครับ มันดาวน์โหลด hindsight ให้เราเรียบร้อย และตอนนี้ถ้าเราไปที่ Docker Desktop — ซึ่งต้องรันอยู่นะครับ ผมมีวิดีโอลงลึกเกี่ยวกับวิธีทำ Hermes Agent และ hindsight แบบ containerized ใน Docker — เราจะเห็นว่าเซิร์ฟเวอร์ของเรากำลังรันอยู่

ถ้าเราไปที่ dashboard เราสามารถเลือก memory bank สร้างใหม่ และเริ่มต้นทุกอย่างได้ แต่นี่แค่แสดงให้เห็นว่าเซิร์ฟเวอร์รันอยู่และพร้อมให้เราเชื่อมต่อ

ขั้นตอนต่อไปคือเชื่อมต่อเซิร์ฟเวอร์ที่รันอยู่นี้กับ Hermes จำได้ไหมครับว่าผมอยู่ใน hindsight profile ผมไปที่ Memory and Context เรามี hindsight settings เพราะเราเลือกจาก dropdown แล้ว ผมจะเปลี่ยนเป็น local external เพราะอย่างนั้นเราจึงเว้น API key ว่างไว้ได้ แทนที่จะเชื่อมต่อกับ Hindsight cloud ผมจะใส่ localhost server ที่เราเพิ่งตั้งค่า ผมตั้งชื่อว่า Hermes และเก็บ recall budget ไว้ที่ mid — นี่ไม่ได้ควบคุม AI model แต่แค่บอก Hermes ว่าจะหาโปรแกรม hindsight ที่เราเพิ่งเปิดตัวได้ที่ไหน

เพื่อทดสอบ ผมจะกลับไปและปิด persistent memory นี่เป็นสิ่งที่คุณรันเบื้องหลังกับ hindsight ได้ ผมจะปิดสักครู่เพื่อทดสอบ hindsight และนี่แตกต่างจาก Mnemosyne ที่แนะนำให้ปิด

ผมถามว่า "ผมเป็นใคร?" เราจะเห็นว่า hindsight recall ถูกเรียกใช้ แต่มันไม่รู้ว่าผมเป็นใคร ผมจะป้อน prompt เดิมเหมือนเดิมเพื่อดูว่ามันจำได้ไหม เราจะเห็นมันกำลังวางแผน durable memory มันพยายามอัปเดต แต่ใน memories ผมปิดตรงนั้นไว้ ตอนนี้มันกำลังรัน hindsight retain และนี่อาจใช้เวลาสักหน่อยเพราะผมใช้ local model

ถ้าเราไปดู Docker สักครู่ ไปที่ hindsight container เราจะเห็นว่ามันกำลังทริกเกอร์ memory engine ถ้ารุ่นที่ผมเลือกเข้าสู่ sleep mode มันอาจใช้เวลาสักหน่อย แต่เราเห็นว่ามันกำลังทำงานเก็บข้อมูลเป็น chunks

เสร็จแล้วครับ มันใช้ hindsight retain เพื่อเก็บ user profile และ preferences เจ๋งครับ ทีนี้มันกำลังบอกว่า optional context ที่มีประโยชน์ที่สุดคืออะไรคือคำตอบของทั้งหมดนี้ แต่ผมจะเริ่ม session ใหม่แล้วถามว่า "ผมเป็นใคร?" และดูว่ามันดึงข้อมูลนั้นจาก hindsight ได้ไหม

ได้แล้วครับ แทนที่จะเป็น retain ตอนนี้มันรัน hindsight recall และดึงรายละเอียดทั้งหมดที่เราเคยมีขึ้นมา ซึ่งเยี่ยมมาก นั่นหมายความว่า memory provider นี้ทำงานได้แล้ว

ทีนี้ถ้าเรากลับไปที่ dashboard localhost:99 เราสามารถเลือก Hermes memory bank ที่ตอนนี้มีอยู่แล้ว คลิกเข้าไป และที่เจ๋งสุดๆ คือเราสามารถดูข้อมูลทั้งหมดที่ถูกสร้างขึ้นแล้วในระบบ hindsight ได้

สำหรับผมแล้วนี่มันน่าทึ่งมากที่ไม่ใช่แค่เราทำให้ agent จดจำสิ่งต่างๆ ได้ แต่มันยังสร้างกราฟ (graph) จากความทรงจำของเรา และมีรายละเอียดมากมายที่เราลงลึกได้ นี่เรียกว่า constellation view เราสามารถเปลี่ยนเป็น table view ดู timeline ซึ่งจะมีมากขึ้นเมื่อเรามีข้อมูลเพิ่ม มี experiences, observations, mental models — มีสิ่งมากมายที่เราจัดโครงสร้างได้ ซึ่งผมตื่นเต้นมากที่จะลงลึก

ตัวอย่างเช่น ผมจะตอบคำถามที่ Hermes ถามผม โดยให้บริบทเพิ่มเติมเกี่ยวกับสิ่งที่ผมหวังจะทำกับช่อง YouTube คนที่ผมอยากช่วย และทำไมผมถึงทำสิ่งนี้ตั้งแต่แรก ผมจะให้ hindsight retain ข้อมูลนี้

โอเค มันทำงานได้แล้ว และถ้าผมคลิกรีเฟรชบนกราฟนี้ เราจะเห็นว่ามีข้อมูลเพิ่มขึ้นอีกสองสามชิ้น ผมสามารถบอก Hermes ว่า "please reflect on this conversation" (กรุณาทบทวนการสนทนานี้)

นี่คือผลลัพธ์ของการ reflect ที่ดึง recall เข้ามาด้วย มีปัญหานิดหน่อยแต่มันดูเหมือนจะทำงานได้ค่อนข้างดีในการดึงความเข้าใจที่ลึกซึ้งขึ้นเกี่ยวกับสิ่งที่ผมพยายามทำ — จากแค่การสนทนาสั้นๆ ที่ผมมี

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

อีกอย่าง การ reflect นี้เป็นสิ่งที่เท่าที่ผมเข้าใจ — อย่างน้อยในตอนนี้ — Mnemosyne ยังไม่มี

นั่นนำผมมาสู่คำถามว่า — คุณควรเลือกตัวไหน? เราควรสนใจอะไรตรงนี้และควรไปต่อที่ไหน? ผู้สร้าง Mnemosyne บอกว่าเครื่องมือทั้งสองนี้ไม่ใช่คู่แข่งโดยตรง Hindsight เป็น memory engine ที่มีการประมวลผลภาษาธรรมชาติที่ซับซ้อนและการเรียกคืนแบบ multi-signal ส่วน Mnemosyne เป็น memory layer ที่ถูก optimize เพื่อความเรียบง่าย ความเร็ว และการ deploy บนเครื่องเดียว

นี่คือบทสรุปจริงๆ — Hindsight เป็น engine ในขณะที่ Mnemosyne เป็น layer ขึ้นอยู่กับคุณว่าจะเลือกอะไรที่ดีที่สุดสำหรับคุณ ผมจะใส่ข้อมูลเพิ่มเติมและทรัพยากรทั้งหมดที่พูดถึงวันนี้ลงในบทความ Patreon ฟรีที่จะลงลึกเกี่ยวกับวิธีตัดสินใจด้วยตัวเอง

ผมคิดว่าประเด็นสำคัญคือการทดสอบ provider หนึ่งตัวเป็นเวลาหนึ่งสัปดาห์และดูว่ามันปรับปรุง workflow ของคุณไหม ถ้าไม่ ก็ลองตัวอื่น คุณสามารถ export จากตัวหนึ่งไปอีกตัวได้เสมอ — ไม่มีการล็อกอิน

และอีกอย่าง เรื่องหนึ่งที่ผมตื่นเต้นที่จะสำรวจเพิ่มเติมคือ dashboard ตรงนี้ — ผมคิดว่ามันเจ๋งมากที่สามารถเข้าไปดูองค์ประกอบทั้งหมดที่ประกอบกันขึ้นมา dashboard เต็มรูปแบบของความทรงจำที่ถูกสร้างจาก agent ของผมเพียงแค่ผมสนทนากับมัน และสำหรับผม นี่คือประโยชน์หลักของการรัน Hindsight เหนือ Mnemosyne — เพราะถึง Mnemosyne จะมี dashboard แต่มันเป็น community dashboard ไม่ได้สร้างโดยผู้สร้าง Mnemosyne Mnemosyne เป็นเครื่องมือเล็กที่สร้างโดยทีมเล็ก ส่วน Hindsight เป็นระบบเต็มรูปแบบที่มีอะไรให้อีกมาก

และนั่นนำผมไปสู่ขั้นตอนต่อไปที่ผมตื่นเต้นมาก — ไม่ใช่แค่สร้างความทรงจำจากการแชทกับ agent แต่ยังเชื่อมต่อสิ่งนี้กับ world knowledge, library หรือ second brain ของผมใน Obsidian LLM Wiki

ตอนนี้ agent ของคุณมี agentic memory แท้จริงแล้ว Mnemosyne ให้ memory layer ที่เร็วและเบา และถ้าคุณมองหาพลังที่มากกว่านี้ คุณสามารถใช้ memory engine อย่าง Hindsight ถ้าคุณมีคำถามเกี่ยวกับสิ่งที่เราคุยกันวันนี้หรือทิปส์สำหรับวิธีที่คุณใช้ workflow ของตัวเอง บอกผมในคอมเมนต์ได้นะครับ ผมยินดีตอบคำถามและชอบเรียนรู้ว่าคุณใช้ระบบเหล่านี้อย่างไรเช่นกัน

แต่ยังมีอีกชิ้นหนึ่งที่ขาดหายไป — world knowledge operational memory หรือ agentic memory ที่เราตั้งไว้ ตอนนี้รู้ว่าคุณทำงานอย่างไรแล้ว ถัดไปผมจะเชื่อมต่อมันกับ Obsidian LLM Wiki เพื่อให้ agent ของคุณไม่ใช่แค่จดจำข้อเท็จจริงเกี่ยวกับคุณ — แต่มันยังใช้เหตุผลกับทุกสิ่งที่คุณรู้อยู่แล้วด้วย

ถ้าคุณพบว่าวิดีโอนี้มีประโยชน์ ช่วยกดไลก์และกดติดตามด้วยนะครับ ผมซาบซึ้งมาก และอย่าลืมดูโพสต์ Patreon ฟรีที่ผมลิงก์ไว้ด้านล่าง พร้อมข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่า โค้ด และตัวเลือก memory providers ขอบคุณอีกครั้งที่รับชม แล้วเจอกันในวิดีโอถัดไปครับ

03

หมายเหตุการแปล

ความโปร่งใสเกี่ยวกับความไม่แน่นอนในต้นฉบับ

  • ไม่พบบริเวณที่ไม่ชัดเจน (unclear audio) — เสียงชัดเจนตลอดทั้งวิดีโอ
  • ## บริเวณที่ [ฟังไม่ชัด]
  • ไม่มี** — ไม่พบบริเวณที่จำเป็นต้องใช้ `[ฟังไม่ชัด]` ตลอดทั้ง transcript
04

อภิธานศัพท์เทคนิค

คำศัพท์และชื่อผลิตภัณฑ์ที่คงรูปภาษาอังกฤษ

ศัพท์คำแปล / คำอธิบาย
คำศัพท์ (English)คำแปล / คำอธิบาย (Thai)
------
Agent / AI Agentเอเจนต์ — โปรแกรม AI ที่ทำงานแทนผู้ใช้โดยอัตโนมัติ
Agentic AIAI แบบ agentic — AI ที่มีความสามารถตัดสินใจและดำเนินการด้วยตัวเอง
Agentic memoryหน่วยความจำของ agent — ข้อมูลที่ agent จดจำเกี่ยวกับผู้ใช้และวิธีการทำงาน
Auto context injectionการฉีดบริบทอัตโนมัติ — ระบบดึงความทรงจำที่เกี่ยวข้องมาใส่ใน prompt ก่อนตอบ
BEAM architectureสถาปัตยกรรม BEAM — โครงสร้างหน่วยความจำที่ได้รับแรงบันดาลใจจากชีววิทยา (working, episodic, semantic memory)
Built-in memoryหน่วยความจำในตัว — ระบบความจำที่มากับตัว agent (เช่น memory.md ของ Hermes)
Claude CodeClaude Code — เครื่องมือเขียนโค้ดด้วย AI จาก Anthropic
CodexCodex — เครื่องมือเขียนโค้ดด้วย AI จาก OpenAI
Config.yamlไฟล์ตั้งค่าหลักของ Hermes Agent
Consolidate (memory)การรวมหน่วยความจำ — ย้ายข้อมูลจาก working memory ไป episodic memory
Constellation viewมุมมองกลุ่มดาว — ฟีเจอร์ dashboard ของ Hindsight ที่แสดงความสัมพันธ์ของข้อมูล
Context assemblyการประกอบบริบท — การรวบรวมความทรงจำที่เกี่ยวข้องเพื่อใช้ในการตอบสนอง
Context injectionการฉีดบริบท — การเพิ่มข้อมูลเข้าไปใน prompt ของ AI
CursorCursor — IDE ที่มี AI ในตัว
Dedicated memory providerผู้ให้บริการหน่วยความจำเฉพาะ — ระบบความจำภายนอกที่แยกจาก built-in memory
DockerDocker — แพลตฟอร์มสำหรับรันแอปพลิเคชันใน container
Embeddingsเอมเบ็ดดิ้ง — การแปลงข้อความเป็นเวกเตอร์ตัวเลขเพื่อการค้นหาความคล้ายคลึง
Episodic memoryหน่วยความจำเหตุการณ์ — ความทรงจำระยะยาวเกี่ยวกับประสบการณ์ที่เกิดขึ้น
External memoryหน่วยความจำภายนอก — ระบบความจำที่รันแยกจาก agent (เช่น Mnemosyne, Hindsight)
Gateway (Hermes)เกตเวย์ของ Hermes — บริการที่จัดการการสื่อสารระหว่าง agent และเครื่องมือต่างๆ
Hermes AgentHermes Agent — AI Agent แบบโอเพนซอร์สที่พัฒนาโดย Nous Research
HindsightHindsight — memory engine สำหรับ AI Agent (built-in ใน Hermes)
Knowledge graphกราฟความรู้ — โครงสร้างข้อมูลที่แสดงความสัมพันธ์ระหว่าง entities
Knowledge layerชั้นความรู้ — ระบบจัดเก็บความรู้ถาวร (เช่น Obsidian, LLM Wiki)
LLM (Large Language Model)โมเดลภาษาขนาดใหญ่ — AI ที่ใช้ประมวลผลภาษา
LLM WikiLLM Wiki — ระบบ wiki ที่ขับเคลื่อนด้วย LLM
Memory bankคลังหน่วยความจำ — ที่เก็บข้อมูลในระบบ memory provider
Memory engineเอ็นจินหน่วยความจำ — ระบบความจำเต็มรูปแบบที่มีการประมวลผลซับซ้อน (เช่น Hindsight)
Memory layerชั้นหน่วยความจำ — ระบบความจำระดับเบา (เช่น Mnemosyne)
Memory providerผู้ให้บริการหน่วยความจำ — ระบบภายนอกที่จัดการการเก็บและเรียกคืนความทรงจำ
Memory stackระบบหน่วยความจำแบบซ้อนชั้น — ภาพรวมของ memory ทั้งระบบ
MnemosyneMnemosyne — memory layer แบบเบาสำหรับ AI Agent
Multi-signal retrievalการเรียกคืนแบบหลายสัญญาณ — การค้นหาความทรงจำจากหลายแหล่งพร้อมกัน
ObsidianObsidian — แอปจดบันทึกและจัดการความรู้
OllamaOllama — เครื่องมือสำหรับรัน LLM บนเครื่องตัวเอง
Operational memoryหน่วยความจำเชิงปฏิบัติการ — ข้อมูลที่ agent ใช้ในการทำงานปัจจุบัน
Patent agentตัวแทนสิทธิบัตร — ผู้เชี่ยวชาญด้านกฎหมายทรัพย์สินทางปัญญา
Pipxpipx — เครื่องมือติดตั้งแพ็กเกจ Python ใน environment แยก
Recallการเรียกคืน — การดึงความทรงจำที่เกี่ยวข้องมาใช้
Reflectการทบทวน — ฟีเจอร์ของ Hindsight ที่ใช้เหตุผลวิเคราะห์ความทรงจำ
Retainการเก็บรักษา — ฟีเจอร์ของ Hindsight สำหรับบันทึกข้อมูลลง memory
Sandboxแซนด์บ็อกซ์ — สภาพแวดล้อมแยกที่จำกัดการเข้าถึงระบบ
Scratchpadพื้นที่บันทึกชั่วคราว — หน่วยความจำชั่วคราวใน BEAM architecture
Second brainสมองที่สอง — แนวคิดการสร้างระบบความรู้ภายนอก
Semantic memoryหน่วยความจำความหมาย — ความรู้เกี่ยวกับข้อเท็จจริงและแนวคิด
Session searchการค้นหา session — ฟีเจอร์ของ Hermes สำหรับค้นหาจากการสนทนาที่ผ่านมา
SQLiteSQLite — ฐานข้อมูลขนาดเล็กที่ฝังในแอปพลิเคชัน
Sub-millisecondต่ำกว่ามิลลิวินาที — ความเร็วในการตอบสนองที่เร็วมาก
Terminal execution backendระบบรันคำสั่ง terminal ของ Hermes
Tool callingการเรียกใช้เครื่องมือ — ความสามารถของ LLM ในการเรียกใช้ฟังก์ชันภายนอก
Universal memoryหน่วยความจำกลาง — ระบบความจำที่ใช้ร่วมกันระหว่าง agent หลายตัว
Virtual environment (venv)สภาพแวดล้อมเสมือนของ Python — แยก dependencies ของโปรเจกต์
Working memoryหน่วยความจำทำงาน — ข้อมูลที่กำลังใช้งานอยู่ ณ ปัจจุบัน
World knowledgeความรู้โลก — ข้อมูลพื้นฐานถาวรที่ใช้ร่วมกันในทุกโปรเจกต์
Zero-dependencyไม่มีการพึ่งพาภายนอก — ทำงานได้โดยไม่ต้องติดตั้งไลบรารีเพิ่มเติม
05

ซับไตเติ้ลภาษาไทย

ดาวน์โหลดหรือดูซับทั้งหมด

1
00:00:00,000 --> 00:00:03,152
สำหรับผมแล้วนี่มันน่าทึ่งมากที่ไม่ใช่แค่เราทำให้

2
00:00:03,152 --> 00:00:06,436
agent จดจำสิ่งต่างๆ ได้ แต่มันยังสร้างกราฟ (graph)

3
00:00:06,436 --> 00:00:11,953
จากความทรงจำของเราในแบบที่ช่วยปรับปรุง agent ให้แก้ปัญหาที่เราพยายามแก้ได้ดีขึ้นด้วย

4
00:00:11,953 --> 00:00:17,338
คุณเคยหงุดหงิดไหมที่ AI ของคุณชอบลืมสิ่งต่างๆ คุณต้องอธิบายบริบทเดิมซ้ำแล้วซ้ำเล่า
thai-subtitles.srt
SubRip — ใช้กับเครื่องเล่นวิดีโอส่วนใหญ่
↓ ดาวน์โหลด
thai-subtitles.vtt
WebVTT — ใช้กับเว็บ / YouTube
↓ ดาวน์โหลด
เปิดดูซับไตเติ้ลทั้งหมด (412 segments)
1
00:00:00,000 --> 00:00:03,152
สำหรับผมแล้วนี่มันน่าทึ่งมากที่ไม่ใช่แค่เราทำให้

2
00:00:03,152 --> 00:00:06,436
agent จดจำสิ่งต่างๆ ได้ แต่มันยังสร้างกราฟ (graph)

3
00:00:06,436 --> 00:00:11,953
จากความทรงจำของเราในแบบที่ช่วยปรับปรุง agent ให้แก้ปัญหาที่เราพยายามแก้ได้ดีขึ้นด้วย

4
00:00:11,953 --> 00:00:17,338
คุณเคยหงุดหงิดไหมที่ AI ของคุณชอบลืมสิ่งต่างๆ คุณต้องอธิบายบริบทเดิมซ้ำแล้วซ้ำเล่า

5
00:00:17,338 --> 00:00:20,622
เปลืองทั้งโทเค็นและเวลา และถ้าคุณรัน agent หลายตัว

6
00:00:20,622 --> 00:00:24,693
มันยิ่งแย่เข้าไปใหญ่เพราะคุณต้องแชร์บริบทให้พวกมันเข้าใจตรงกัน

7
00:00:24,693 --> 00:00:29,947
นั่นเป็นเพราะคุณไม่ได้ใช้ระบบความจำจริงๆ หรืออย่างน้อยก็ไม่ใช่ระบบที่ดีสักเท่าไร

8
00:00:29,947 --> 00:00:33,100
เรามาแก้ปัญหานี้กันเถอะ สวัสดีครับ ผมชื่อ Callum

9
00:00:33,100 --> 00:00:37,828
หรือที่รู้จักในชื่อ Wanderloots ยินดีต้อนรับสู่วิดีโอวันนี้ว่าด้วยการให้

10
00:00:37,828 --> 00:00:41,177
agent ของคุณมีความจำอย่างแท้จริง วันนี้ผมใช้ Hermes

11
00:00:41,177 --> 00:00:45,249
Agent เป็นตัวอย่าง แต่เครื่องมือด้านความจำที่ผมพูดถึงใช้ได้กับ

12
00:00:45,249 --> 00:00:49,584
AI แบบ agentic ทุกตัว และที่สำคัญกว่านั้นคือมันทำงานร่วมกันระหว่าง

13
00:00:49,584 --> 00:00:53,918
AI agent หลายตัวได้ คุณสามารถตั้งระบบนี้ครั้งเดียวแล้วเชื่อมต่อกับ

14
00:00:53,918 --> 00:00:57,136
agent ตัวไหนก็ได้โดยใช้หน่วยความจำกลาง (universal

15
00:00:57,136 --> 00:01:01,471
memory) ร่วมกัน ถ้าคุณยังใหม่กับ Hermes และอยากติดตั้งอย่างปลอดภัย

16
00:01:01,471 --> 00:01:04,886
ผมมีเพลย์ลิสต์เกี่ยวกับ agentic AI แบบเต็มอยู่ตรงนี้

17
00:01:04,886 --> 00:01:08,038
เมื่อดูวิดีโอนี้จบ คุณจะเข้าใจลำดับชั้นต่างๆ ของ

18
00:01:08,038 --> 00:01:11,387
memory stack และเข้าใจว่า agentic memory แตกต่างจาก

19
00:01:11,387 --> 00:01:14,802
knowledge layer อย่าง Obsidian หรือ LLM Wiki อย่างไร

20
00:01:14,802 --> 00:01:18,612
ทำไมคุณถึงอาจอยากใช้ dedicated memory provider แทนที่จะใช้

21
00:01:18,612 --> 00:01:24,391
built-in memory ตัวเลือก memory แบบต่างๆ และทำไมผมถึงเลือกสองตัวที่เราจะติดตั้งกันวันนี้

22
00:01:24,391 --> 00:01:27,478
วิธีติดตั้ง memory layer แบบเบาที่ไม่เป็นทางการ

23
00:01:27,478 --> 00:01:31,221
และวิธีติดตั้ง memory engine แบบเต็มรูปแบบอย่างเป็นทางการ

24
00:01:31,221 --> 00:01:34,439
ผมตื่นเต้นมากเพราะ memory เป็นสิ่งที่ผมศึกษามานาน

25
00:01:34,439 --> 00:01:38,117
และผมแทบรอไม่ไหวที่จะช่วยคุณติดตั้งมันในวันนี้ ทีนี้มาดู

26
00:01:38,117 --> 00:01:43,830
agentic memory กันครับ ก่อนที่เราจะติดตั้งอะไร ผมอยากเคลียร์ความสับสนที่พบบ่อยเกี่ยวกับ

27
00:01:43,830 --> 00:01:47,508
agentic memory ก่อน — มันไม่ใช่แค่ layer เดียว แต่มันคือ

28
00:01:47,508 --> 00:01:50,792
stack (ระบบซ้อนชั้น) เมื่อผู้คนพูดถึง second brain

29
00:01:50,792 --> 00:01:54,535
หรือ agentic memory จริงๆ แล้วพวกเขากำลังหมายถึงสามอย่าง:

30
00:01:54,535 --> 00:01:57,950
world knowledge, built-in memory และ external memory

31
00:01:57,950 --> 00:02:01,300
knowledge layer อย่าง Obsidian vaults หรือ LLM Wiki

32
00:02:01,300 --> 00:02:04,649
เป็นส่วนหนึ่งของ memory stack แต่ไม่ใช่ operational

33
00:02:04,649 --> 00:02:08,918
memory (ความจำเชิงปฏิบัติการ) จริงๆ ในแบบที่เราหมายถึงเมื่อพูดว่า

34
00:02:08,918 --> 00:02:14,237
agent memory มันคือ world knowledge ข้อมูลพื้นฐานที่ใช้ร่วมกันในทุกโปรเจกต์และทุก

35
00:02:14,237 --> 00:02:17,718
agent คุณสามารถจำกัดการเข้าถึง knowledge layer นี้ของ

36
00:02:17,718 --> 00:02:21,461
agent ได้ ซึ่งผมพูดถึงเพิ่มเติมในวิดีโอเรื่องการเชื่อมต่อ

37
00:02:21,461 --> 00:02:24,614
agentic AI กับ Obsidian จากนั้นเรามี operational

38
00:02:24,614 --> 00:02:27,766
memory ซึ่งแบ่งเป็นสองระดับ: built-in memory และ

39
00:02:27,766 --> 00:02:31,838
dedicated memory providers operational memory เน้นไปที่สิ่งที่

40
00:02:31,838 --> 00:02:35,647
agent ควรจดจำเกี่ยวกับการทำงานกับเราโดยเฉพาะ การทดสอบง่ายๆ

41
00:02:35,647 --> 00:02:40,638
คือ ถ้าเป็นความรู้ที่คุณอยากให้เก็บรักษาและจัดระเบียบไว้ใช้ในทุกสิ่งที่คุณทำ

42
00:02:40,638 --> 00:02:47,140
— นั่นคือ Obsidian แต่ถ้าเป็นข้อเท็จจริงเกี่ยวกับสไตล์การทำงานของคุณหรือสิ่งที่คุณกำลังทำอยู่ตอนนี้

43
00:02:47,140 --> 00:02:50,489
— นั่นคือ agentic memory สรุปภาพรวม: เรามี built-in

44
00:02:50,489 --> 00:02:53,904
memory ซึ่งดีสำหรับการสนทนาแบบ single session ง่ายๆ,

45
00:02:53,904 --> 00:02:58,173
memory provider สำหรับเมื่อคุณทำโปรเจกต์ซับซ้อนที่ดำเนินต่อเนื่อง

46
00:02:58,173 --> 00:03:01,325
หรือแค่อยากได้ประสิทธิภาพและการเรียกคืนของ agent

47
00:03:01,325 --> 00:03:04,675
ที่ดีขึ้นอย่างเห็นได้ชัด, และ knowledge layer อย่าง

48
00:03:04,675 --> 00:03:08,944
Obsidian สำหรับสร้าง world knowledge ที่ครอบคลุมทุกโปรเจกต์และทุก

49
00:03:08,944 --> 00:03:12,162
agent ที่คุณรัน ผมพูดถึงการเชื่อมต่อ Obsidian กับ

50
00:03:12,162 --> 00:03:16,430
agentic AI เพิ่มเติมในวิดีโอนี้ วันนี้ผมอยากโฟกัสเฉพาะสองระดับแรก

51
00:03:16,430 --> 00:03:19,583
คือ built-in memory และ external memory provider

52
00:03:19,583 --> 00:03:22,735
วิดีโอถัดไปของผมจะลงลึกในการตั้งค่า Obsidian LLM

53
00:03:22,735 --> 00:03:26,281
Wiki ที่เสริม agent memory ที่เรากำลังติดตั้งกันวันนี้

54
00:03:26,281 --> 00:03:29,434
เรามาเริ่มด้วยการเปรียบเทียบ built-in memory กับ

55
00:03:29,434 --> 00:03:33,374
memory provider จริงๆ กันครับ ถ้าคุณพบว่าวิดีโอนี้มีประโยชน์

56
00:03:33,374 --> 00:03:38,037
ช่วยกดไลก์ กดไฮป์ และกดติดตามด้วยนะครับ ผมซาบซึ้งในการสนับสนุนของคุณมาก

57
00:03:38,037 --> 00:03:41,912
ถ้าคุณมองหาวิธีสนับสนุนผมเพิ่มเติม ลองพิจารณาเข้าร่วมสมาชิก

58
00:03:41,912 --> 00:03:45,458
YouTube หรือ Patreon ของผม ซึ่งผมให้สมาชิกเข้าถึงทิปส์

59
00:03:45,458 --> 00:03:48,939
ข้อมูลเชิงลึก และมุมมองของผมเกี่ยวกับอนาคตของ agentic

60
00:03:48,939 --> 00:03:52,026
AI และการจัดการความรู้ แล้ว built-in memory ของ

61
00:03:52,026 --> 00:03:55,309
Hermes หน้าตาเป็นยังไงล่ะ? มันมีสามไฟล์: memory.md

62
00:03:55,309 --> 00:03:59,578
ซึ่งเป็น operational memory ของคุณ, user.md ซึ่งบอกว่าคุณเป็นใคร,

63
00:03:59,578 --> 00:04:03,650
และ soul.md ซึ่งทางเทคนิคแล้วไม่ใช่ memory แต่เป็นบุคลิกภาพของ

64
00:04:03,650 --> 00:04:07,196
agent เอง นอกจากนั้น built-in memory ยังรวมถึง session

65
00:04:07,196 --> 00:04:10,283
search ที่เก็บในฐานข้อมูลภายใน (local database)

66
00:04:10,283 --> 00:04:13,698
คุณจึงถาม Hermes ให้ค้นหาจาก session ที่ผ่านมาได้เลย

67
00:04:13,698 --> 00:04:16,982
ทิปสั้นๆ: วิธีที่ดีที่สุดในการเริ่มใช้ agent อย่าง

68
00:04:16,982 --> 00:04:20,331
Hermes คือการบอก Hermes เกี่ยวกับตัวคุณตั้งแต่เริ่ม

69
00:04:20,331 --> 00:04:23,549
ถ้ามันเข้าใจมากขึ้นว่าคุณเป็นใครและชอบทำงานแบบไหน

70
00:04:23,549 --> 00:04:28,146
ทั้งระบบจะฉลาดขึ้นแทบจะทันที คำถามหนึ่งที่มีคนถามผมบ่อยเกี่ยวกับการรัน

71
00:04:28,146 --> 00:04:31,693
built-in memory คือถ้าคุณใช้ Hermes terminal execution

72
00:04:31,693 --> 00:04:34,779
backend ที่รันโค้ดใน Docker Hermes จะยังเข้าถึง

73
00:04:34,779 --> 00:04:39,245
memory ได้ไหม? คำตอบคือได้ครับ การรันใน Docker ไม่กระทบความสามารถของ

74
00:04:39,245 --> 00:04:42,463
Hermes ในการเข้าถึงไฟล์ memory และ user ของตัวเอง

75
00:04:42,463 --> 00:04:45,681
มันใช้ memory tool ซึ่งเป็นสิ่งเดียวกับที่ memory

76
00:04:45,681 --> 00:04:48,768
providers ใช้ แทนที่จะรันผ่านโค้ดที่ถูก sandbox

77
00:04:48,768 --> 00:04:52,117
ใน Docker ผมพูดถึงเรื่องนี้เพิ่มเติมในวิดีโอวิธีแยก

78
00:04:52,117 --> 00:04:56,123
agent ให้ทำงานอย่างปลอดภัยบนคอมพิวเตอร์ของคุณ ประเด็นสำคัญคือ

79
00:04:56,123 --> 00:04:59,604
built-in user และ memory files ถูก inject เข้าไปในทุก

80
00:04:59,604 --> 00:05:03,873
session ใหม่ มันกลายเป็นส่วนหนึ่งของบริบทในทุกการสนทนาที่คุณมีกับ

81
00:05:03,873 --> 00:05:07,156
Hermes ทีนี้ นี่เป็นเรื่องดีเพราะหมายความว่า agent

82
00:05:07,156 --> 00:05:13,330
ของคุณจะไม่มีวันลืมว่าคุณเป็นใคร แต่มันก็หมายความว่ามันใช้บริบทและโทเค็นไปบางส่วนในทุกการสนทนา

83
00:05:13,330 --> 00:05:16,613
คุณต้องทำให้มันกระชับที่สุดเพื่อไม่ให้เปลืองโทเค็น

84
00:05:16,613 --> 00:05:20,028
และนั่นคือจุดที่ memory provider จริงๆ เข้ามามีบทบาท

85
00:05:20,028 --> 00:05:23,903
memory provider คือ external layer ที่เก็บและเรียกคืนข้อมูล

86
00:05:23,903 --> 00:05:27,450
ณ เวลาที่รัน (runtime) หรือเมื่อ agent ต้องการใช้จริงๆ

87
00:05:27,450 --> 00:05:34,345
แทนที่จะ insert เข้าไปในทุกการสนทนา นี่ช่วยให้บริบทของคุณกระชับและข้อมูลตรงประเด็นเมื่อคุณต้องการใช้จริงๆ

88
00:05:34,345 --> 00:05:37,563
มาดู memory providers ให้ลึกขึ้นครับ หลายคนรู้สึก

89
00:05:37,563 --> 00:05:41,635
overwhelmed เวลาพยายามเลือก memory provider และนั่นก็เข้าใจได้

90
00:05:41,635 --> 00:05:45,904
มีตัวเลือกและปัจจัยให้พิจารณาเยอะมาก มันขึ้นอยู่กับเป้าหมายของคุณ

91
00:05:45,904 --> 00:05:50,370
จำนวน agent หรือผู้ใช้ที่แชร์ memory นั้น ฮาร์ดแวร์ที่คุณมีสำหรับรัน

92
00:05:50,370 --> 00:05:54,244
และว่าคุณอยากใช้เครื่องมือฟรีหรือเสียเงิน ข่าวดีคือส่วนใหญ่

93
00:05:54,244 --> 00:05:58,513
— ถ้าไม่ใช่ทั้งหมด — ของพวกมันอนุญาตให้คุณย้ายข้อมูลระหว่างกันได้

94
00:05:58,513 --> 00:06:03,110
คุณจึงไม่ได้ถูกล็อกกับตัวเลือกแรกที่คุณเลือก คุณสามารถทดสอบและทดลองได้

95
00:06:03,110 --> 00:06:06,591
และถ้าคุณไม่ชอบเครื่องมือหนึ่ง คุณก็สามารถย้าย memory

96
00:06:06,591 --> 00:06:10,269
ไปอีกตัวได้เสมอ แต่แทนที่จะเปรียบเทียบทั้งหมดในวิดีโอนี้

97
00:06:10,269 --> 00:06:13,815
ซึ่งคงใช้เวลานาน ผมได้รวบรวมบทวิเคราะห์ของผมไว้ในโพสต์

98
00:06:13,815 --> 00:06:17,099
Patreon ฟรีที่ผมจะแปะลิงก์ในคอมเมนต์บนสุดของวิดีโอ

99
00:06:17,099 --> 00:06:21,368
คุณจะได้ดูตัวเลือกต่างๆ และดูว่าอะไรเหมาะกับสถานการณ์ของคุณที่สุด

100
00:06:21,368 --> 00:06:24,717
แต่วันนี้ แทนที่จะดูจาก benchmark หรือรายการฟีเจอร์

101
00:06:24,717 --> 00:06:28,986
ผมคิดว่าจะดูสิ่งที่คอมมูนิตี้ให้คะแนนสูงสุดและที่หลายคนแนะนำให้ผม

102
00:06:28,986 --> 00:06:32,598
และพวกมันคือ Mnemosyne กับ Hindsight Mnemosyne เป็นระบบ

103
00:06:32,598 --> 00:06:36,407
lightweight แบบ zero-dependency (ไม่ต้องพึ่งไลบรารีภายนอก)

104
00:06:36,407 --> 00:06:39,822
และไม่ต้องใช้ LLM ในการทำงาน มันรันบนเครื่องคุณล้วนๆ

105
00:06:39,822 --> 00:06:43,303
เร็วอย่างเหลือเชื่อด้วย built-in embeddings Mnemosyne

106
00:06:43,303 --> 00:06:47,309
เหมาะมากถ้าคุณอยากได้ memory provider ที่ไม่ทำให้ระบบคุณช้าลง

107
00:06:47,309 --> 00:06:50,461
Hindsight มีฟีเจอร์มากกว่าและมันอยู่ในอันดับต้นๆ

108
00:06:50,461 --> 00:06:54,467
ของ memory benchmark ส่วนใหญ่ แต่มันต้องเชื่อมต่อคลาวด์หรือมี

109
00:06:54,467 --> 00:06:58,736
server ของคุณเองพร้อม LLM ในการขับเคลื่อน วิธีคิดที่ง่ายที่สุดคือ

110
00:06:58,736 --> 00:07:01,823
Mnemosyne เป็น memory layer ส่วน Hindsight เป็น

111
00:07:01,823 --> 00:07:05,172
memory engine มาเริ่มด้วยตัวเลือก lightweight อย่าง

112
00:07:05,172 --> 00:07:11,148
Mnemosyne ก่อน คุณจะได้เห็น memory provider ทำงานจริงก่อนที่เราจะขยับไปใช้พลังที่มากขึ้นกับ

113
00:07:11,148 --> 00:07:14,235
Hindsight เรามอง Mnemosyne ได้ว่าเป็น universal

114
00:07:14,235 --> 00:07:17,585
memory layer สำหรับ AI agent ทุกชนิดที่รันบน SQLite

115
00:07:17,585 --> 00:07:20,868
backend ด้วยความเร็วระดับ sub-millisecond แบบ zero

116
00:07:20,868 --> 00:07:26,450
dependencies จุดประสงค์ที่ผมแสดงตัวนี้ก่อนคือมันเร็วมากและไม่ต้องติดตั้งอะไรเพิ่มเยอะ

117
00:07:26,450 --> 00:07:30,851
ข้อมูลเพิ่มเติมเกี่ยวกับ Mnemosyne: มันได้แรงบันดาลใจทางชีววิทยาจาก

118
00:07:30,851 --> 00:07:34,069
BEAM architecture ซึ่งนำ memory ระดับต่างๆ เข้ามา

119
00:07:34,069 --> 00:07:37,549
เช่น working memory, episodic memory, semantic memory

120
00:07:37,549 --> 00:07:42,344
และ scratchpad โดยแต่ละระดับถูก optimize สำหรับรูปแบบการเข้าถึงที่ต่างกัน

121
00:07:42,344 --> 00:07:45,562
ทุกอย่างอยู่บนเครื่องคุณ ซึ่งดีต่อความเป็นส่วนตัว

122
00:07:45,562 --> 00:07:48,714
มันมีความเร็วในการ query ต่ำกว่า 100 มิลลิวินาที

123
00:07:48,714 --> 00:07:51,998
และมีการผสานรวมกับ Hermes โดยตรง มาดู architecture

124
00:07:51,998 --> 00:07:55,150
กันสักครู่ครับ ประเด็นสำคัญคือเรากำลังสร้าง auto

125
00:07:55,150 --> 00:07:58,302
context injection ซึ่งหมายความว่าเมื่อคุณมีคำถาม

126
00:07:58,302 --> 00:08:01,389
เมื่อคุณถาม Hermes อะไรสักอย่าง Mnemosyne จะรับ

127
00:08:01,389 --> 00:08:04,541
query นั้น ใช้ recall tool เพื่อดูบริบทที่มีอยู่

128
00:08:04,541 --> 00:08:08,744
และ inject บริบทนั้นเข้าไปใน prompt ของ agent ก่อนที่มันจะตอบคุณ

129
00:08:08,744 --> 00:08:13,210
เมื่อคุณสนทนาต่อไป มันจะจดจำมากขึ้นเรื่อยๆ ซึ่งจะถูกป้อนกลับเข้าไปใน

130
00:08:13,210 --> 00:08:16,363
Mnemosyne เพื่อช่วยมันสร้าง context assembly นี้

131
00:08:16,363 --> 00:08:20,303
นี่เป็นวิธีที่ยอดเยี่ยมในการสร้างระบบความจำที่พัฒนาตัวเองได้

132
00:08:20,303 --> 00:08:23,521
(self-evolving memory system) สำหรับ agent ของคุณ

133
00:08:23,521 --> 00:08:26,870
และอย่างที่เราเห็น มันใช้กับ Claude Code ได้ ใช้กับ

134
00:08:26,870 --> 00:08:31,008
Codex ได้ ใช้กับ Cursor ได้ ใช้กับ agent อะไรก็ได้ที่คุณต้องการ

135
00:08:31,008 --> 00:08:35,671
และเราสามารถให้ทั้งหมดเชื่อมต่อกับ memory bank เดียวกันได้ถ้าเราต้องการ

136
00:08:35,671 --> 00:08:39,480
เอาล่ะ มาติดตั้ง Mnemosyne กันครับ ถ้าเราไปที่เอกสารของเขา

137
00:08:39,480 --> 00:08:43,946
เราจะเห็นว่ามันมีการผสานรวมกับ Hermes Agent และมีรายการคำสั่งด่วนให้

138
00:08:43,946 --> 00:08:47,558
ง่ายต่อการติดตั้งมาก และมีสิ่งหนึ่งที่ผมอยากพูดถึงสั้นๆ

139
00:08:47,558 --> 00:08:50,973
คือถ้าคุณรัน Hermes และมี terminal execution backend

140
00:08:50,973 --> 00:08:54,519
รันอยู่ใน Docker เราสามารถให้ Hermes ติดตั้ง Mnemosyne

141
00:08:54,519 --> 00:08:58,459
ให้เราไม่ได้ เพราะ Hermes จะพยายามรัน terminal และมันจะรันใน

142
00:08:58,459 --> 00:09:01,546
Docker container และนั่นไม่ใช่สิ่งที่เราต้องการ

143
00:09:01,546 --> 00:09:05,027
เพราะเราต้องการให้ระบบ memory ของเราอยู่รอดนอก Docker

144
00:09:05,027 --> 00:09:08,836
container ของ terminal execution backend ถ้าคุณไม่ได้รันใน

145
00:09:08,836 --> 00:09:14,615
Docker คุณก็แค่บอกให้ Hermes ทำให้ได้เลย แต่โดยพื้นฐานแล้วนี่หมายความว่าเราต้องรันมันจาก

146
00:09:14,615 --> 00:09:18,227
host device บนคอมพิวเตอร์ของเรา ผมจะติดตั้งมันโดยตรงจาก

147
00:09:18,227 --> 00:09:21,774
terminal ด้วยตัวเอง Mnemosyne ไม่ใช่ built-in provider

148
00:09:21,774 --> 00:09:25,320
เราจึงต้องติดตั้ง Mnemosyne แบบ manual มากกว่าเล็กน้อย

149
00:09:25,320 --> 00:09:28,866
แต่ประเด็นสำคัญคือเราไม่ได้ติดตั้งมันใน Hermes managed

150
00:09:28,866 --> 00:09:32,084
virtual environment เพราะทุกครั้งที่คุณรัน Hermes

151
00:09:32,084 --> 00:09:36,944
update มันจะ rebuild virtual environment นั้นแล้วลบแพ็กเกจเสริมทั้งหมดทิ้ง

152
00:09:36,944 --> 00:09:40,491
เรามีสองตัวเลือกที่ระบุไว้: ใช้ pipx ซึ่งสร้าง virtual

153
00:09:40,491 --> 00:09:43,906
environment แยกต่างหาก หรือสร้าง virtual environment

154
00:09:43,906 --> 00:09:49,816
ด้วยตัวเองโดยใช้ fallback option อย่างไรก็ตาม ทั้งสองตัวเลือกนี้ใช้ไม่ได้ผลสมบูรณ์สำหรับผม

155
00:09:49,816 --> 00:09:53,231
ถ้าคุณติดตั้ง Mnemosyne แล้วรัน Hermes memory status

156
00:09:53,231 --> 00:09:57,041
แล้วได้ error plugin missing หรือตอนติดตั้งครั้งแรกแล้วเจอ

157
00:09:57,041 --> 00:10:01,638
error Python environments ไม่ตรงกัน คุณอาจต้องเพิ่มขั้นตอนอีกขั้นหนึ่ง

158
00:10:01,638 --> 00:10:05,381
ขั้นตอนแรกคือติดตั้ง Mnemosyne Hermes ใน pipx environment

159
00:10:05,381 --> 00:10:08,796
ของมันเอง แล้วตั้งค่า config สองขั้นตอนนี้เหมือนเดิม

160
00:10:08,796 --> 00:10:12,474
แต่ก่อนที่เราจะรีสตาร์ท gateway เราต้องลิงก์ environment

161
00:10:12,474 --> 00:10:15,692
ใหม่ที่เราสร้างเข้ากับโฟลเดอร์ plugins ของ Hermes

162
00:10:15,692 --> 00:10:21,077
แล้วรันสิ่งที่เรียกว่า Hermes memory setup นั่นเป็นวิธีที่ง่ายมากที่คุณสามารถรันใน

163
00:10:21,077 --> 00:10:24,558
terminal และมันจะดำเนินการ configure Mnemosyne ให้คุณ

164
00:10:24,558 --> 00:10:28,236
เพื่อให้มันถูกรับรู้เป็น memory provider แทนที่จะเป็นแค่

165
00:10:28,236 --> 00:10:32,176
plugin มาเริ่มกันเลยครับ ผมจะไปที่เอกสาร คัดลอกคำสั่งติดตั้ง

166
00:10:32,176 --> 00:10:35,985
ไปที่ terminal แล้ววางลงไป เสร็จแล้วครับ ใช้เวลาไม่ถึงนาที

167
00:10:35,985 --> 00:10:39,400
ตอนนี้เรามี Mnemosyne Hermes ติดตั้งแล้ว ถ้าเราไปที่

168
00:10:39,400 --> 00:10:42,684
Memory and Context เราจะเห็นว่าตอนนี้เรามี default

169
00:10:42,684 --> 00:10:45,770
memory system เปิดใช้งานอยู่ และนี่คือ built-in

170
00:10:45,770 --> 00:10:49,054
memory provider แต่เราจะเห็นว่าถ้าเราคลิก dropdown

171
00:10:49,054 --> 00:10:52,338
เรายังไม่เห็น Mnemosyne เพราะมันเป็น plugin ไม่ใช่

172
00:10:52,338 --> 00:10:55,884
built-in memory provider เราจึงต้องเปิดใช้งานมันสำหรับ

173
00:10:55,884 --> 00:10:58,971
default profile นอกเหนือจากการตั้งค่าใน desktop

174
00:10:58,971 --> 00:11:02,189
app ผมจะกลับไปที่เอกสาร คัดลอก string นี้ วางลงไป

175
00:11:02,189 --> 00:11:06,589
เสร็จแล้วครับ ใช้เวลาแค่ 2 วินาที และสิ่งที่เกิดขึ้นคือมันแก้ไขไฟล์

176
00:11:06,589 --> 00:11:09,807
config.yaml ให้ใช้ Mnemosyne เป็น memory provider

177
00:11:09,807 --> 00:11:13,813
ตอนนี้เราเพิ่งติดตั้ง Mnemosyne ใน One Bin และเราต้องการสร้าง

178
00:11:13,813 --> 00:11:16,900
symlink หรือ link ระหว่างที่เราติดตั้งมันโดยใช้

179
00:11:16,900 --> 00:11:20,052
environment แยกนั้นกับโฟลเดอร์ plugins จริงๆ ของ

180
00:11:20,052 --> 00:11:23,664
Hermes นั่นคือสิ่งที่เราเห็นตรงนี้ — มันเพิ่งตรวจสอบว่า

181
00:11:23,664 --> 00:11:26,817
provider อย่าง Mnemosyne พร้อมใช้งานและเชื่อมต่อ

182
00:11:26,817 --> 00:11:30,100
Mnemosyne กับ Hermes ได้ ขั้นตอนต่อไปคือรัน Hermes

183
00:11:30,100 --> 00:11:33,253
memory setup และตรงนี้เราจะเลือก Mnemosyne local

184
00:11:33,253 --> 00:11:39,098
แล้วตอบ yes พอเรารัน Hermes memory setup เราจะดำเนินการทีละขั้นตอนและเลือกการตั้งค่าต่างๆ

185
00:11:39,098 --> 00:11:43,038
สำหรับ Mnemosyne ในฐานะ Hermes memory provider ผมใช้ตัวเลือก

186
00:11:43,038 --> 00:11:46,584
default ทุกอย่างยกเว้นการเข้าถึงแบบ global แทน session

187
00:11:46,584 --> 00:11:50,328
memories แต่ผมแนะนำให้อ่านสิ่งที่มันถาม และถ้าคุณไม่แน่ใจ

188
00:11:50,328 --> 00:11:54,006
ให้ถาม Hermes ช่วยอธิบาย setup ในแบบที่เหมาะกับคุณที่สุด

189
00:11:54,006 --> 00:11:58,012
การตั้งค่าที่สำคัญที่สุด: default scope สำหรับการจดจำคืออะไร?

190
00:11:58,012 --> 00:12:01,624
ผมไม่อยากจำกัดมันแค่ต่อ session ผมอยากให้มันครอบคลุมทุก

191
00:12:01,624 --> 00:12:04,907
session นั่นคือหนึ่งในประโยชน์ของการรันระบบ memory

192
00:12:04,907 --> 00:12:08,848
ดังนั้นการเปลี่ยนตรงนี้เป็น global จึงสำคัญมาก เสร็จแล้วครับ

193
00:12:08,848 --> 00:12:12,066
เราจะเห็นว่ามันดำเนินการและบันทึก memory provider

194
00:12:12,066 --> 00:12:15,612
เป็น Mnemosyne ทีนี้ถ้าเราไปที่ config.yaml ในโฟลเดอร์

195
00:12:15,612 --> 00:12:18,830
.hermes เราจะเห็นว่ามีระบบ memory เต็มรูปแบบพร้อม

196
00:12:18,830 --> 00:12:22,311
skills และ tools ทั้งหมดที่ตั้งค่าไว้สำหรับ Mnemosyne

197
00:12:22,311 --> 00:12:25,398
provider ต่อไปผมจะรีสตาร์ท Hermes Gateway พิมพ์

198
00:12:25,398 --> 00:12:28,681
Hermes memory status แล้วเราจะเห็นว่า memory tools

199
00:12:28,681 --> 00:12:33,344
เปิดใช้งาน provider คือ Mnemosyne เรามีการตั้งค่าทั้งหมดที่เราเพิ่งทำไป

200
00:12:33,344 --> 00:12:36,497
เราสามารถเปลี่ยนทีหลังได้ plugin ติดตั้งแล้ว และ

201
00:12:36,497 --> 00:12:40,043
status เป็น available ซึ่งสำคัญมาก และตอนนี้ถ้าผมพิมพ์

202
00:12:40,043 --> 00:12:44,706
Hermes Mnemosyne stats ทุกอย่างยังเป็นศูนย์เพราะเรายังไม่ได้เก็บอะไรไว้

203
00:12:44,706 --> 00:12:48,712
มาลองใช้งานกันครับ ผมจะเปิด Hermes desktop app และถ้าเราไปที่

204
00:12:48,712 --> 00:12:52,193
Memory and Context เราจะเห็นว่า Mnemosyne ถูกตั้งเป็น

205
00:12:52,193 --> 00:12:56,264
memory provider แล้ว เยี่ยมครับ ตอนนี้เรามีทุกอย่างติดตั้งแล้ว

206
00:12:56,264 --> 00:13:00,270
และถ้าเราอยากอัปเกรด เราก็พิมพ์ pipx upgrade Mnemosyne-Hermes

207
00:13:00,270 --> 00:13:03,882
ได้เลย อีกขั้นตอนหนึ่งที่ผมอยากพูดถึงสั้นๆ คือเอกสารของ

208
00:13:03,882 --> 00:13:07,692
Mnemosyne แนะนำให้ปิด legacy memory และความหมายของมันก็คือ

209
00:13:07,692 --> 00:13:10,844
persistent memory และ user profile ที่เราตั้งไว้

210
00:13:10,844 --> 00:13:14,522
เหตุผลหลักคือเพื่อหลีกเลี่ยงการซ้ำซ้อนและการเปลืองโทเค็น

211
00:13:14,522 --> 00:13:18,199
ผมแนะนำให้ปิดมันก่อนแล้วทดสอบดู และถ้าคุณสังเกตเห็นปัญหา

212
00:13:18,199 --> 00:13:21,680
คุณก็เปิดมันใหม่ได้เสมอ แต่อย่าปิดมันด้วยคำสั่งแบบนี้

213
00:13:21,680 --> 00:13:24,767
— ให้คุณอัปเดตมันในไฟล์ config.yaml แทน โดยตั้ง

214
00:13:24,767 --> 00:13:27,919
memory enabled false, user profile enabled false

215
00:13:27,919 --> 00:13:31,334
ซึ่งก็เหมือนกับการ toggle ปุ่มพวกนี้ออก มาทดสอบเร็วๆ

216
00:13:31,334 --> 00:13:34,618
กันครับ ถ้าผมถาม Hermes สักคำถาม มันไม่ควรรู้จักผม

217
00:13:34,618 --> 00:13:38,952
ก่อนหน้านี้ผมเคยบอก Hermes ว่าผมเป็นใคร แต่ตอนนี้ลองใหม่เพราะเรามี

218
00:13:38,952 --> 00:13:42,105
Mnemosyne แล้ว เราจะเห็นว่ามันทำงานและเปิดใช้งาน

219
00:13:42,105 --> 00:13:46,570
Mnemosyne recall skills และ canonical skill แต่มันยังไม่มีข้อมูลอะไร

220
00:13:46,570 --> 00:13:49,920
ผมจะบอกข้อมูลเกี่ยวกับตัวผมเล็กน้อยเพื่อให้มันจำได้

221
00:13:49,920 --> 00:13:53,204
ทิปสั้นๆ: นี่คือสิ่งแรกที่ผมทำเสมอเมื่อตั้งค่าระบบ

222
00:13:53,204 --> 00:13:57,998
memory ใหม่ — บอก Hermes หรือ agent ของคุณเกี่ยวกับตัวคุณและสิ่งที่คุณชอบ

223
00:13:57,998 --> 00:14:05,747
เพื่อให้มันเริ่มสร้างโปรไฟล์เกี่ยวกับคุณ และการสนทนาจะรู้สึกเป็นส่วนตัวและมีประสิทธิภาพมากขึ้นสำหรับสิ่งที่คุณพยายามทำ

224
00:14:05,747 --> 00:14:09,097
ผมชื่อ Callum ใช้ชื่อว่า Wanderloots ทำช่อง YouTube

225
00:14:09,097 --> 00:14:12,183
เป็น patent agent ทนายความด้านทรัพย์สินทางปัญญา

226
00:14:12,183 --> 00:14:15,992
เรียนวิศวกรรมวัสดุศาสตร์ และนี่คือความชอบของผมในการตอบสนอง

227
00:14:15,992 --> 00:14:19,604
เราจะเห็นว่า Hermes กำลังรัน Mnemosyne tool มันกำลังรัน

228
00:14:19,604 --> 00:14:24,990
remember มีพื้นหลังอาชีพ alias และชื่อ และสิ่งเหล่านี้กำลังถูกเก็บลงในฐานข้อมูลที่

229
00:14:24,990 --> 00:14:29,127
Mnemosyne ตั้งไว้ ทีนี้ ตัวอย่างเช่น ถ้าผมเปิดแชทใหม่แล้วถามว่า

230
00:14:29,127 --> 00:14:32,542
"ผมเป็นใคร?" เราควรเห็น Hermes เรียกคืนจาก Mnemosyne

231
00:14:32,542 --> 00:14:37,336
ได้แล้วครับ มันดึงข้อมูลมาได้ เยี่ยมมาก นั่นหมายความว่ามันทำงานได้สมบูรณ์

232
00:14:37,336 --> 00:14:40,489
และตอนนี้ถ้าเรากลับไปที่ terminal แล้วรัน Hermes

233
00:14:40,489 --> 00:14:44,101
Mnemosyne stats เราจะเห็นว่ามี working memory ที่ยังไม่

234
00:14:44,101 --> 00:14:49,814
consolidate ทั้งหมด 4 รายการ นี่คือจุดที่มันจะดำเนินการต่อไปและเมื่อเวลาผ่านไปมันจะย้าย

235
00:14:49,814 --> 00:14:53,164
working memory ไปเป็น episodic memory และลึกลงไปอีก

236
00:14:53,164 --> 00:14:56,250
และนี่คือการนำสิ่งที่เรียกว่า BEAM architecture

237
00:14:56,250 --> 00:14:59,534
เข้ามา มันจะ observe รับการสนทนาและผลลัพธ์ของ tool

238
00:14:59,534 --> 00:15:03,606
และจดจำทั้งหมดนี้ใน working memory จากนั้นเมื่อเวลาผ่านไปมันจะ

239
00:15:03,606 --> 00:15:06,955
consolidate สิ่งนั้นเป็น long-term experiences หรือ

240
00:15:06,955 --> 00:15:10,567
episodic memories ทุกครั้งที่เราถาม agent ทุกครั้งที่มี

241
00:15:10,567 --> 00:15:13,851
input มันจะดึงจากทั้งสองส่วนนั้นแล้ว recall กลับมา

242
00:15:13,851 --> 00:15:18,448
มีรายละเอียดเพิ่มเติมเกี่ยวกับ working memory แต่นี่เป็นระบบที่เจ๋งมาก

243
00:15:18,448 --> 00:15:22,848
โดยเฉพาะเมื่อพิจารณาว่ามันทั้งหมดเกิดขึ้นบนเครื่องคุณภายในฐานข้อมูล

244
00:15:22,848 --> 00:15:25,935
SQLite และที่เจ๋งอีกอย่างคือมันยังนำ structured

245
00:15:25,935 --> 00:15:29,481
knowledge ที่เก็บเป็น subject-predicate-object triples

246
00:15:29,481 --> 00:15:35,523
ซึ่งเป็นพื้นฐานของ knowledge graph เข้ามาด้วย ถ้าคุณอยากเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนั้น

247
00:15:35,523 --> 00:15:39,923
ผมมีวิดีโอเกี่ยวกับ knowledge graphs และวิธีใช้มันเพื่อปรับปรุงระบบ

248
00:15:39,923 --> 00:15:43,470
agent แต่ผมขอแนะนำอย่างยิ่งให้คุณไปสำรวจ BEAM overview

249
00:15:43,470 --> 00:15:47,279
เพื่อให้เข้าใจมากขึ้นว่าระบบนี้ทำงานอย่างไร มันเจ๋งมากครับ

250
00:15:47,279 --> 00:15:50,628
จำได้ไหมครับว่าตรงนี้เราต้อง manual เพิ่ม Mnemosyne

251
00:15:50,628 --> 00:15:56,933
เข้าไปในรายการ แต่มี built-in providers พวกนี้ทั้งหมดที่อาจทรงพลังกว่าขึ้นอยู่กับสิ่งที่คุณมองหา

252
00:15:56,933 --> 00:16:00,939
และผมจะทำงานติดตั้ง Hindsight ในวันนี้ โดยส่วนตัวแล้วผมชอบที่

253
00:16:00,939 --> 00:16:04,617
Mnemosyne รันบนเครื่องได้ รันได้โดยไม่ต้องสร้างอะไรเพิ่ม

254
00:16:04,617 --> 00:16:07,835
ไม่มี dependencies และเร็วมาก ผมจะปล่อยให้มันเป็น

255
00:16:07,835 --> 00:16:11,381
default ในตอนนี้ แต่ผมจะสร้างโปรไฟล์ใหม่ชื่อ hindsight

256
00:16:11,381 --> 00:16:15,125
และใช้มันตั้งค่าการกำหนดค่าแยกต่างหาก โอเค ตอนนี้ผมอยู่บน

257
00:16:15,125 --> 00:16:18,605
hindsight profile แล้ว ถ้าเราไปที่ Memory and Context

258
00:16:18,605 --> 00:16:21,758
อีกครั้ง เราจะเห็นว่าผมยังเปิด persistent memory

259
00:16:21,758 --> 00:16:25,041
และ user profile อยู่ และ built-in memory provider

260
00:16:25,041 --> 00:16:28,391
ถูกตั้งไว้ ผมยังไม่ได้ตั้งให้เชื่อมต่อกับ Mnemosyne

261
00:16:28,391 --> 00:16:31,871
จะเห็นว่า hindsight profile ไม่เห็น Mnemosyne ด้วยซ้ำ

262
00:16:31,871 --> 00:16:35,221
สิ่งที่เราทำได้คือไปที่ memory provider ใน settings

263
00:16:35,221 --> 00:16:38,307
เลื่อนลงมาที่ Hindsight แล้วเปิดมัน แต่ก่อนอื่น

264
00:16:38,307 --> 00:16:41,722
มาดูเว็บไซต์ Hindsight กันครับ Hindsight เป็น native

265
00:16:41,722 --> 00:16:45,203
memory provider ใน Hermes Agent ซึ่งหมายความว่ามันถูก

266
00:16:45,203 --> 00:16:49,669
built-in มาเลย และ Hindsight แตกต่างออกไปเล็กน้อยเพราะมันทำงานโดยให้

267
00:16:49,669 --> 00:16:53,675
agent เชื่อมต่อกับเซิร์ฟเวอร์แยกต่างหาก มันไม่ใช่สิ่งที่รันใน

268
00:16:53,675 --> 00:16:56,893
Hermes เอง แต่ที่เจ๋งคือมันมีวิธีการทำงานหลากหลาย

269
00:16:56,893 --> 00:17:00,111
มันสร้าง mental models ของตัวเอง ดึง observations

270
00:17:00,111 --> 00:17:03,920
เข้ามา มี standard memories มีอะไรให้ทำมากมาย และมันสามารถ

271
00:17:03,920 --> 00:17:08,320
reflect (ทบทวน) แล้วดึงคำตอบที่ตระหนักรู้มากขึ้นโดยใช้เหตุผลเชิงลึก

272
00:17:08,320 --> 00:17:11,604
เมื่อคุณรัน reflect มันจะรัน agentic loop ที่ค้นหา

273
00:17:11,604 --> 00:17:16,004
memory โดยอัตโนมัติ แล้วใช้สิ่งนั้นกำหนดรูปแบบการใช้เหตุผลของตัวเอง

274
00:17:16,004 --> 00:17:21,192
จากนั้นสร้างคำตอบสุดท้ายที่อิงกับสิ่งที่พบ ดังนั้นแทนที่จะแค่คืนข้อเท็จจริงดิบๆ

275
00:17:21,192 --> 00:17:26,446
reflect ให้การตอบสนองที่สังเคราะห์ขึ้นมากกว่า ซึ่งเป็นเหตุผลว่าทำไมมันถึงต้องใช้

276
00:17:26,446 --> 00:17:30,649
LLM ด้วย มีความซับซ้อนมากกว่าเล็กน้อย ผมขอแนะนำให้สำรวจเอกสารของ

277
00:17:30,649 --> 00:17:37,874
Hindsight ถ้าคุณอยากเรียนรู้เพิ่มเติม แต่ประเด็นสำคัญคือมันต้องรันเซิร์ฟเวอร์แยกหรือเชื่อมต่อกับเซิร์ฟเวอร์แยก

278
00:17:37,874 --> 00:17:41,157
ถ้าเรากลับไปที่ memory provider และเลือก Hindsight

279
00:17:41,157 --> 00:17:44,375
เราจะเห็นว่ามี mode ปรากฏขึ้น เรามีตัวเลือก cloud

280
00:17:44,375 --> 00:17:48,184
และ local external เพื่อทำความเข้าใจมากขึ้น เราไปที่เอกสาร

281
00:17:48,184 --> 00:17:51,796
Hindsight สำหรับการตั้งค่าบน Hermes desktop โดยเฉพาะได้

282
00:17:51,796 --> 00:17:55,408
และถ้าคุณอยากทำผ่าน command line ก็มีวิธีแยกในการใช้งาน

283
00:17:55,408 --> 00:17:58,626
Hermes memory setup เหมือนที่เราเห็นกับ Mnemosyne

284
00:17:58,626 --> 00:18:02,042
โดยพื้นฐานเราแค่เลือก Hindsight ตั้ง mode ที่ต้องการ

285
00:18:02,042 --> 00:18:05,654
เรามี cloud ซึ่งต้องใช้ API key — ตรงนี้เราเชื่อมต่อกับ

286
00:18:05,654 --> 00:18:09,266
Hindsight cloud แต่มันมีค่าบริการ คุณเริ่มใช้ฟรีก่อนได้

287
00:18:09,266 --> 00:18:12,549
แล้วขึ้นอยู่กับความถี่ในการใช้งานและขนาดระบบของคุณ

288
00:18:12,549 --> 00:18:18,788
คุณจะต้องเริ่มจ่ายเงิน คุณสามารถรันระบบด้วยตัวเองฟรีบนคอมพิวเตอร์ของคุณได้ถ้ามีฮาร์ดแวร์เพียงพอ

289
00:18:18,788 --> 00:18:23,057
แต่ถ้าไม่มี การดู Hindsight cloud ว่าค่าใช้จ่ายเท่าไรก็อาจคุ้มค่า

290
00:18:23,057 --> 00:18:27,063
ผมยังไม่ได้ลองใช้ cloud เป็นการส่วนตัว วันนี้เราจะตั้งค่าระบบ

291
00:18:27,063 --> 00:18:30,150
local ครับ ลองดูการเปรียบเทียบระหว่าง cloud กับ

292
00:18:30,150 --> 00:18:33,368
local LLMs สำหรับการรัน agent memory — นี่คือ LLM

293
00:18:33,368 --> 00:18:36,652
ที่จะขับเคลื่อนระบบจริงๆ ตรงข้ามกับการเชื่อมต่อกับ

294
00:18:36,652 --> 00:18:40,658
Hindsight cloud ซึ่งจัดการ storage ด้วย คุณสามารถเชื่อมต่อกับ

295
00:18:40,658 --> 00:18:45,255
OpenAI, Anthropic หรือ Gemini API ได้ แต่คุณจะจ่ายต่อโทเค็นทุกครั้งที่

296
00:18:45,255 --> 00:18:48,539
retain คุณสามารถรันฟรีบนเครื่องตัวเองโดยใช้ Ollama

297
00:18:48,539 --> 00:18:51,888
ซึ่งผมมีวิดีโอเกี่ยวกับการรัน Ollama สำหรับ agentic

298
00:18:51,888 --> 00:18:55,040
AI ถ้าคุณสนใจ สิ่งหนึ่งที่ต้องจำคือไม่ใช่ทุกรุ่น

299
00:18:55,040 --> 00:18:59,178
local ที่รองรับ tool calling คุณต้องแน่ใจว่ารุ่นที่คุณใช้รองรับ

300
00:18:59,178 --> 00:19:02,396
ผมจะใช้ GPT-OSS 20 billion parameters ซึ่งขนาด 13

301
00:19:02,396 --> 00:19:05,876
กิกะไบต์ ดังนั้นต้องแน่ใจว่าคุณติดตั้งรุ่นนั้นไว้แล้ว

302
00:19:05,876 --> 00:19:09,094
และต้องแน่ใจว่ามีแอป Ollama รันอยู่เบื้องหลังหรือ

303
00:19:09,094 --> 00:19:12,772
serve มันจาก terminal ด้วยตัวเอง ขั้นตอนต่อไป เมื่อเรามี

304
00:19:12,772 --> 00:19:16,122
local model ดาวน์โหลดแล้ว คือเราเชื่อมต่อ Hindsight

305
00:19:16,122 --> 00:19:19,668
กับ local model นั้นและให้เซิร์ฟเวอร์รันอยู่เบื้องหลัง

306
00:19:19,668 --> 00:19:23,017
ผมจะทำใน Docker container เพราะช่วยเพิ่มความปลอดภัย

307
00:19:23,017 --> 00:19:26,170
ตอนนี้ Hermes terminal backend ของผมเชื่อมต่อกับ

308
00:19:26,170 --> 00:19:29,388
Docker container แล้ว เราจะเพิ่ม Docker container

309
00:19:29,388 --> 00:19:32,671
อีกตัวที่รันระบบ memory ใน Hindsight โดยตรง เราวาง

310
00:19:32,671 --> 00:19:36,546
string นี้ ซึ่งผมจะรวมไว้ในบทความฟรีที่ลิงก์ในคอมเมนต์บนสุด

311
00:19:36,546 --> 00:19:40,224
โดยพื้นฐานแล้วเราอยากรัน Docker container ชื่อ hindsight

312
00:19:40,224 --> 00:19:44,033
และเราอยากให้มันรีสตาร์ทเองแม้คอมพิวเตอร์จะปิดแล้วเปิดใหม่

313
00:19:44,033 --> 00:19:47,842
เรากำหนดพอร์ตสองพอร์ต — พอร์ตหนึ่งสำหรับรันเซิร์ฟเวอร์จริง

314
00:19:47,842 --> 00:19:51,257
และอีกพอร์ตสำหรับดู dashboard แล้วนี่คือ environment

315
00:19:51,257 --> 00:19:55,723
variables ทั้งหมดที่เรากำหนดค่าเพื่อให้มันเชื่อมต่อกับรุ่นที่ผมเลือก

316
00:19:55,723 --> 00:19:58,810
— GPT-OSS 20 billion เสร็จแล้วครับ มันดาวน์โหลด

317
00:19:58,810 --> 00:20:02,290
hindsight ให้เราเรียบร้อย และตอนนี้ถ้าเราไปที่ Docker

318
00:20:02,290 --> 00:20:06,362
Desktop — ซึ่งต้องรันอยู่นะครับ ผมมีวิดีโอลงลึกเกี่ยวกับวิธีทำ

319
00:20:06,362 --> 00:20:09,449
Hermes Agent และ hindsight แบบ containerized ใน

320
00:20:09,449 --> 00:20:12,732
Docker — เราจะเห็นว่าเซิร์ฟเวอร์ของเรากำลังรันอยู่

321
00:20:12,732 --> 00:20:15,885
ถ้าเราไปที่ dashboard เราสามารถเลือก memory bank

322
00:20:15,885 --> 00:20:22,255
สร้างใหม่ และเริ่มต้นทุกอย่างได้ แต่นี่แค่แสดงให้เห็นว่าเซิร์ฟเวอร์รันอยู่และพร้อมให้เราเชื่อมต่อ

323
00:20:22,255 --> 00:20:25,604
ขั้นตอนต่อไปคือเชื่อมต่อเซิร์ฟเวอร์ที่รันอยู่นี้กับ

324
00:20:25,604 --> 00:20:28,757
Hermes จำได้ไหมครับว่าผมอยู่ใน hindsight profile

325
00:20:28,757 --> 00:20:32,106
ผมไปที่ Memory and Context เรามี hindsight settings

326
00:20:32,106 --> 00:20:35,521
เพราะเราเลือกจาก dropdown แล้ว ผมจะเปลี่ยนเป็น local

327
00:20:35,521 --> 00:20:38,936
external เพราะอย่างนั้นเราจึงเว้น API key ว่างไว้ได้

328
00:20:38,936 --> 00:20:42,483
แทนที่จะเชื่อมต่อกับ Hindsight cloud ผมจะใส่ localhost

329
00:20:42,483 --> 00:20:46,029
server ที่เราเพิ่งตั้งค่า ผมตั้งชื่อว่า Hermes และเก็บ

330
00:20:46,029 --> 00:20:49,378
recall budget ไว้ที่ mid — นี่ไม่ได้ควบคุม AI model

331
00:20:49,378 --> 00:20:53,910
แต่แค่บอก Hermes ว่าจะหาโปรแกรม hindsight ที่เราเพิ่งเปิดตัวได้ที่ไหน

332
00:20:53,910 --> 00:20:59,098
เพื่อทดสอบ ผมจะกลับไปและปิด persistent memory นี่เป็นสิ่งที่คุณรันเบื้องหลังกับ

333
00:20:59,098 --> 00:21:02,250
hindsight ได้ ผมจะปิดสักครู่เพื่อทดสอบ hindsight

334
00:21:02,250 --> 00:21:05,534
และนี่แตกต่างจาก Mnemosyne ที่แนะนำให้ปิด ผมถามว่า

335
00:21:05,534 --> 00:21:09,081
"ผมเป็นใคร?" เราจะเห็นว่า hindsight recall ถูกเรียกใช้

336
00:21:09,081 --> 00:21:14,072
แต่มันไม่รู้ว่าผมเป็นใคร ผมจะป้อน prompt เดิมเหมือนเดิมเพื่อดูว่ามันจำได้ไหม

337
00:21:14,072 --> 00:21:17,618
เราจะเห็นมันกำลังวางแผน durable memory มันพยายามอัปเดต

338
00:21:17,618 --> 00:21:20,770
แต่ใน memories ผมปิดตรงนั้นไว้ ตอนนี้มันกำลังรัน

339
00:21:20,770 --> 00:21:24,120
hindsight retain และนี่อาจใช้เวลาสักหน่อยเพราะผมใช้

340
00:21:24,120 --> 00:21:27,601
local model ถ้าเราไปดู Docker สักครู่ ไปที่ hindsight

341
00:21:27,601 --> 00:21:31,081
container เราจะเห็นว่ามันกำลังทริกเกอร์ memory engine

342
00:21:31,081 --> 00:21:34,825
ถ้ารุ่นที่ผมเลือกเข้าสู่ sleep mode มันอาจใช้เวลาสักหน่อย

343
00:21:34,825 --> 00:21:37,911
แต่เราเห็นว่ามันกำลังทำงานเก็บข้อมูลเป็น chunks

344
00:21:37,911 --> 00:21:40,998
เสร็จแล้วครับ มันใช้ hindsight retain เพื่อเก็บ

345
00:21:40,998 --> 00:21:44,741
user profile และ preferences เจ๋งครับ ทีนี้มันกำลังบอกว่า

346
00:21:44,741 --> 00:21:48,945
optional context ที่มีประโยชน์ที่สุดคืออะไรคือคำตอบของทั้งหมดนี้

347
00:21:48,945 --> 00:21:52,097
แต่ผมจะเริ่ม session ใหม่แล้วถามว่า "ผมเป็นใคร?"

348
00:21:52,097 --> 00:21:55,775
และดูว่ามันดึงข้อมูลนั้นจาก hindsight ได้ไหม ได้แล้วครับ

349
00:21:55,775 --> 00:21:58,993
แทนที่จะเป็น retain ตอนนี้มันรัน hindsight recall

350
00:21:58,993 --> 00:22:02,539
และดึงรายละเอียดทั้งหมดที่เราเคยมีขึ้นมา ซึ่งเยี่ยมมาก

351
00:22:02,539 --> 00:22:05,626
นั่นหมายความว่า memory provider นี้ทำงานได้แล้ว

352
00:22:05,626 --> 00:22:09,435
ทีนี้ถ้าเรากลับไปที่ dashboard localhost:99 เราสามารถเลือก

353
00:22:09,435 --> 00:22:12,653
Hermes memory bank ที่ตอนนี้มีอยู่แล้ว คลิกเข้าไป

354
00:22:12,653 --> 00:22:17,053
และที่เจ๋งสุดๆ คือเราสามารถดูข้อมูลทั้งหมดที่ถูกสร้างขึ้นแล้วในระบบ

355
00:22:17,053 --> 00:22:21,125
hindsight ได้ สำหรับผมแล้วนี่มันน่าทึ่งมากที่ไม่ใช่แค่เราทำให้

356
00:22:21,125 --> 00:22:24,408
agent จดจำสิ่งต่างๆ ได้ แต่มันยังสร้างกราฟ (graph)

357
00:22:24,408 --> 00:22:27,955
จากความทรงจำของเรา และมีรายละเอียดมากมายที่เราลงลึกได้

358
00:22:27,955 --> 00:22:31,304
นี่เรียกว่า constellation view เราสามารถเปลี่ยนเป็น

359
00:22:31,304 --> 00:22:35,179
table view ดู timeline ซึ่งจะมีมากขึ้นเมื่อเรามีข้อมูลเพิ่ม

360
00:22:35,179 --> 00:22:40,367
มี experiences, observations, mental models — มีสิ่งมากมายที่เราจัดโครงสร้างได้

361
00:22:40,367 --> 00:22:44,045
ซึ่งผมตื่นเต้นมากที่จะลงลึก ตัวอย่างเช่น ผมจะตอบคำถามที่

362
00:22:44,045 --> 00:22:48,379
Hermes ถามผม โดยให้บริบทเพิ่มเติมเกี่ยวกับสิ่งที่ผมหวังจะทำกับช่อง

363
00:22:48,379 --> 00:22:51,991
YouTube คนที่ผมอยากช่วย และทำไมผมถึงทำสิ่งนี้ตั้งแต่แรก

364
00:22:51,991 --> 00:22:55,603
ผมจะให้ hindsight retain ข้อมูลนี้ โอเค มันทำงานได้แล้ว

365
00:22:55,603 --> 00:23:00,201
และถ้าผมคลิกรีเฟรชบนกราฟนี้ เราจะเห็นว่ามีข้อมูลเพิ่มขึ้นอีกสองสามชิ้น

366
00:23:00,201 --> 00:23:04,141
ผมสามารถบอก Hermes ว่า "please reflect on this conversation"

367
00:23:04,141 --> 00:23:07,490
(กรุณาทบทวนการสนทนานี้) นี่คือผลลัพธ์ของการ reflect

368
00:23:07,490 --> 00:23:16,159
ที่ดึง recall เข้ามาด้วย มีปัญหานิดหน่อยแต่มันดูเหมือนจะทำงานได้ค่อนข้างดีในการดึงความเข้าใจที่ลึกซึ้งขึ้นเกี่ยวกับสิ่งที่ผมพยายามทำ

369
00:23:16,159 --> 00:23:21,545
— จากแค่การสนทนาสั้นๆ ที่ผมมี ผมค่อนข้างประทับใจที่มันดึงข้อมูลนี้มาได้เร็วขนาดนี้

370
00:23:21,545 --> 00:23:26,404
— คนที่ผมแชทด้วยและสอนอยู่เป็นคนช่างสร้างที่มีความสามารถแต่มีภาระมากเกินไป

371
00:23:26,404 --> 00:23:33,103
พวกเขาอยากรู้และอยากเข้าใจมากกว่าแค่ได้คำตอบ แต่ผมหวังว่าคุณจะเห็นว่าไม่ใช่แค่ความทรงจำเหล่านี้ถูกเก็บ

372
00:23:33,103 --> 00:23:36,255
— มันถูกใช้ในแบบที่ปรับปรุงการ reflect ของ agent

373
00:23:36,255 --> 00:23:39,342
ต่อปัญหาที่ผมกำลังพยายามแก้และสิ่งที่ผมสนใจจะทำ

374
00:23:39,342 --> 00:23:42,823
และนั่นมาจากข้อมูลพื้นฐานแค่นิดเดียวเอง — เจ๋งมากครับ

375
00:23:42,823 --> 00:23:46,107
อีกอย่าง การ reflect นี้เป็นสิ่งที่เท่าที่ผมเข้าใจ

376
00:23:46,107 --> 00:23:50,178
— อย่างน้อยในตอนนี้ — Mnemosyne ยังไม่มี นั่นนำผมมาสู่คำถามว่า

377
00:23:50,178 --> 00:23:54,053
— คุณควรเลือกตัวไหน? เราควรสนใจอะไรตรงนี้และควรไปต่อที่ไหน?

378
00:23:54,053 --> 00:23:58,256
ผู้สร้าง Mnemosyne บอกว่าเครื่องมือทั้งสองนี้ไม่ใช่คู่แข่งโดยตรง

379
00:23:58,256 --> 00:24:03,773
Hindsight เป็น memory engine ที่มีการประมวลผลภาษาธรรมชาติที่ซับซ้อนและการเรียกคืนแบบ

380
00:24:03,773 --> 00:24:07,188
multi-signal ส่วน Mnemosyne เป็น memory layer ที่ถูก

381
00:24:07,188 --> 00:24:10,472
optimize เพื่อความเรียบง่าย ความเร็ว และการ deploy

382
00:24:10,472 --> 00:24:13,690
บนเครื่องเดียว นี่คือบทสรุปจริงๆ — Hindsight เป็น

383
00:24:13,690 --> 00:24:19,272
engine ในขณะที่ Mnemosyne เป็น layer ขึ้นอยู่กับคุณว่าจะเลือกอะไรที่ดีที่สุดสำหรับคุณ

384
00:24:19,272 --> 00:24:23,541
ผมจะใส่ข้อมูลเพิ่มเติมและทรัพยากรทั้งหมดที่พูดถึงวันนี้ลงในบทความ

385
00:24:23,541 --> 00:24:26,956
Patreon ฟรีที่จะลงลึกเกี่ยวกับวิธีตัดสินใจด้วยตัวเอง

386
00:24:26,956 --> 00:24:32,735
ผมคิดว่าประเด็นสำคัญคือการทดสอบ provider หนึ่งตัวเป็นเวลาหนึ่งสัปดาห์และดูว่ามันปรับปรุง

387
00:24:32,735 --> 00:24:35,887
workflow ของคุณไหม ถ้าไม่ ก็ลองตัวอื่น คุณสามารถ

388
00:24:35,887 --> 00:24:39,237
export จากตัวหนึ่งไปอีกตัวได้เสมอ — ไม่มีการล็อกอิน

389
00:24:39,237 --> 00:24:43,046
และอีกอย่าง เรื่องหนึ่งที่ผมตื่นเต้นที่จะสำรวจเพิ่มเติมคือ

390
00:24:43,046 --> 00:24:48,891
dashboard ตรงนี้ — ผมคิดว่ามันเจ๋งมากที่สามารถเข้าไปดูองค์ประกอบทั้งหมดที่ประกอบกันขึ้นมา

391
00:24:48,891 --> 00:24:52,306
dashboard เต็มรูปแบบของความทรงจำที่ถูกสร้างจาก agent

392
00:24:52,306 --> 00:24:56,640
ของผมเพียงแค่ผมสนทนากับมัน และสำหรับผม นี่คือประโยชน์หลักของการรัน

393
00:24:56,640 --> 00:24:59,990
Hindsight เหนือ Mnemosyne — เพราะถึง Mnemosyne จะมี

394
00:24:59,990 --> 00:25:04,127
dashboard แต่มันเป็น community dashboard ไม่ได้สร้างโดยผู้สร้าง

395
00:25:04,127 --> 00:25:07,805
Mnemosyne Mnemosyne เป็นเครื่องมือเล็กที่สร้างโดยทีมเล็ก

396
00:25:07,805 --> 00:25:11,154
ส่วน Hindsight เป็นระบบเต็มรูปแบบที่มีอะไรให้อีกมาก

397
00:25:11,154 --> 00:25:16,539
และนั่นนำผมไปสู่ขั้นตอนต่อไปที่ผมตื่นเต้นมาก — ไม่ใช่แค่สร้างความทรงจำจากการแชทกับ

398
00:25:16,539 --> 00:25:19,692
agent แต่ยังเชื่อมต่อสิ่งนี้กับ world knowledge,

399
00:25:19,692 --> 00:25:23,041
library หรือ second brain ของผมใน Obsidian LLM Wiki

400
00:25:23,041 --> 00:25:26,193
ตอนนี้ agent ของคุณมี agentic memory แท้จริงแล้ว

401
00:25:26,193 --> 00:25:30,922
Mnemosyne ให้ memory layer ที่เร็วและเบา และถ้าคุณมองหาพลังที่มากกว่านี้

402
00:25:30,922 --> 00:25:38,474
คุณสามารถใช้ memory engine อย่าง Hindsight ถ้าคุณมีคำถามเกี่ยวกับสิ่งที่เราคุยกันวันนี้หรือทิปส์สำหรับวิธีที่คุณใช้

403
00:25:38,474 --> 00:25:45,567
workflow ของตัวเอง บอกผมในคอมเมนต์ได้นะครับ ผมยินดีตอบคำถามและชอบเรียนรู้ว่าคุณใช้ระบบเหล่านี้อย่างไรเช่นกัน

404
00:25:45,567 --> 00:25:48,785
แต่ยังมีอีกชิ้นหนึ่งที่ขาดหายไป — world knowledge

405
00:25:48,785 --> 00:25:52,200
operational memory หรือ agentic memory ที่เราตั้งไว้

406
00:25:52,200 --> 00:25:55,878
ตอนนี้รู้ว่าคุณทำงานอย่างไรแล้ว ถัดไปผมจะเชื่อมต่อมันกับ

407
00:25:55,878 --> 00:26:00,804
Obsidian LLM Wiki เพื่อให้ agent ของคุณไม่ใช่แค่จดจำข้อเท็จจริงเกี่ยวกับคุณ

408
00:26:00,804 --> 00:26:04,153
— แต่มันยังใช้เหตุผลกับทุกสิ่งที่คุณรู้อยู่แล้วด้วย

409
00:26:04,153 --> 00:26:08,225
ถ้าคุณพบว่าวิดีโอนี้มีประโยชน์ ช่วยกดไลก์และกดติดตามด้วยนะครับ

410
00:26:08,225 --> 00:26:12,362
ผมซาบซึ้งมาก และอย่าลืมดูโพสต์ Patreon ฟรีที่ผมลิงก์ไว้ด้านล่าง

411
00:26:12,362 --> 00:26:16,040
พร้อมข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่า โค้ด และตัวเลือก

412
00:26:16,040 --> 00:26:20,440
memory providers ขอบคุณอีกครั้งที่รับชม แล้วเจอกันในวิดีโอถัดไปครับ