Cover photo

Soul, Memory, Tools.md คู่มือปั้น OpenClaw ลูกรัก

เพื่อ : สร้าง AI Agent ที่สมบูรณ์แบบ

คำนำ

อันนี้เป็น e-book ที่ผมรวมรวมจากการเรียนรู้ Openclaw

มันไม่ยาก และสำคัญมาก ถ้าเราเข้าใจไฟล์ต่างๆ เราจะสามารถสอน Openclaw ได้ดีขึ้น มันจะเชื่อฟังเรา และทำงานได้ดีกว่าเดิมมากๆ

⏰ อ่านจบประหยัดเวลาชีวิตจากนี้ไป 100x


เราจะคุยกันเรื่องไฟล์ต่าง ๆ ที่เป็นหัวใจของระบบ เช่น IDENTITY.md, SOUL.md, MEMORY.md, tools.md, skills folder, sub-agents, และการ config memory search

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

ผมจัดเป็นหลายบท โดยแต่ละบทจะมีส่วนเปรียบเทียบแบบตารางเพื่อความชัดเจน สุดท้ายมีบทสรุปและคำแนะนำปฏิบัติ

สอนอะไรไป ย้ำมันทุกครั้งว่าบันทึกลงไฟล์รึยัง บันทึกไฟล์ไหน เพราะอะไร


บทที่ 1: พื้นฐาน OpenClaw และไฟล์สำคัญ

OpenClaw เป็นระบบที่ช่วยให้คุณสร้าง AI Agent ที่ทำงานบนเครื่อง (local) รองรับการสนทนา, tools, sub-agents, และ memory system โดยไม่ต้องพึ่ง cloud เต็มรูปแบบ การติดตั้งครั้งเดียวจะให้คุณ 1 Main Agent แต่สามารถขยายเป็น multi-agent ได้

ไฟล์สำคัญทั้งหมดอยู่ใน folder workspace (เช่น /Users/nanobro/.openclaw/workspace) ซึ่งเป็น "บ้าน" ของ Agent ไฟล์เหล่านี้ถูกโหลดทุก session เพื่อให้ Agent มีตัวตนและความจำ

เปรียบเทียบไฟล์หลักใน workspace

ไฟล์/โฟลเดอร์

บทบาทหลัก

ความแตกต่างสำคัญจากไฟล์อื่น ๆ

ตัวอย่างเนื้อหา

IDENTITY.md

กำหนดตัวตนภายนอก (presentation)

เน้น "ภาพลักษณ์" เช่น ชื่อ, vibe, emoji

ชื่อ: nanobro

Assistant, Vibe: มิตรภาพมืออาชีพ

SOUL.md

กำหนดจิตวิญญาณภายใน (behavior)

เน้น "กฎคิดและพฤติกรรม" เช่น core values

กฎ: ต้อง memory_search ก่อนตอบ preferences

MEMORY.md

ความจำถาวร (long-term facts)

เน้น "ข้อมูลที่จำ" ไม่ใช่กฎ

Preferences: ชอบ dark theme

tools.md

รายชื่อเครื่องมือ (low-level)

เน้น "มี tool อะไร" ไม่ใช่ขั้นตอน

memory_search, web_search

skills/ (folder)

Workflow ระดับสูง (high-level)

เน้น "วิธีใช้ tool รวมกัน"

research.md: ขั้นตอน search + summarize

sessions/ (folder)

Session ชั่วคราว (รวม sub-agents)

เน้น "การทำงานชั่วคราว" ไม่ถาวร

agent-main-subagent-xxx/

ความแตกต่างสำคัญ: ไฟล์ .md เหล่านี้เป็น Markdown ธรรมดา แต่ IDENTITY/SOUL/MEMORY เน้น "ตัวตนและความจำ" ในขณะที่ tools/skills เน้น "เครื่องมือและ workflow" Sessions เป็น dynamic ไม่ใช่ static file


บทที่ 2: IDENTITY.md vs SOUL.md – ตัวตนภายนอกชื่อที่อยู่เบอร์โทร vs นิสัย วิธีคิด

IDENTITY.md และ SOUL.md เป็นไฟล์ที่กำหนด "ใครคือ Agent" แต่ IDENTITY เน้นการนำเสนอตัวเองต่อผู้ใช้ ในขณะที่ SOUL เน้นกฎภายในที่ควบคุมการคิดและตัดสินใจ

เปรียบเทียบ IDENTITY.md vs SOUL.md

ด้าน

IDENTITY.md

SOUL.md

ความแตกต่างสำคัญ

บทบาทหลัก

ตัวตนภายนอก (self-presentation)

จิตวิญญาณภายใน (core personality/behavior)

IDENTITY เป็น "ป้ายชื่อ" SOUL เป็น "DNA"

เนื้อหาหลัก

ชื่อ, summary, vibe, emoji, avatar

Core values, boundaries, decision rules, tone

IDENTITY เน้น visual/external SOUL เน้น logic/internal

การโหลด

โหลดหลัง SOUL เพื่อปรับ presentation

โหลดก่อนสุดเพื่อกำหนด behavior

SOUL มี priority สูงกว่าเพราะควบคุมการคิด

การใช้งาน

ปรับตาม platform (e.g., formal ใน WhatsApp)

กฎถาวร เช่น "ต้อง memory_search ก่อน"

IDENTITY ยืดหยุ่น SOUL เข้มงวด

ตัวอย่าง

Vibe: สนุกสนาน, Emoji: 🦞

กฎ: Proactive แต่ไม่ intrusive

IDENTITY เปลี่ยนง่าย SOUL เปลี่ยนยากเพราะกระทบพฤติกรรม

ความแตกต่างสำคัญ: ถ้า Agent พูดไม่ตรง vibe → แก้ IDENTITY แต่ถ้าตัดสินใจผิด (e.g., ลืม search memory) → แก้ SOUL SOUL สามารถรองรับหลาย persona (หลาย SOUL.md) แต่ IDENTITY มักเป็นฐานเดียว


บทที่ 3: SOUL.md vs MEMORY.md – กฎพฤติกรรม vs ข้อมูลถาวร

SOUL.md และ MEMORY.md คล้ายกันเพราะทั้งคู่ถูกโหลดทุก session และช่วยให้ Agent สม่ำเสมอ แต่ SOUL เป็น "กฎ" ในขณะที่ MEMORY เป็น "ข้อมูล"

เปรียบเทียบ SOUL.md vs MEMORY.md

ด้าน

SOUL.md

MEMORY.md

ความแตกต่างสำคัญ

บทบาทหลัก

กฎพฤติกรรมและการคิด (how to behave)

ข้อมูลถาวรที่ต้องจำ (what to remember)

SOUL เป็น "คู่มือชีวิต" MEMORY เป็น "สมุดบันทึก"

เนื้อหาหลัก

Values, boundaries, memory management rules

Preferences, projects, key facts, lessons

SOUL มี logic/rules MEMORY มี facts/data

ใครแก้ไข

คุณเป็นหลัก เพื่อกำหนด persona

Agent + คุณ (Agent เขียนจากสนทนา)

SOUL แก้เพื่อเปลี่ยนนิสัย MEMORY แก้เพื่อเพิ่มข้อมูล

การโหลด

ทุก session (private/group)

เฉพาะ private session (privacy)

MEMORY ปกป้องข้อมูลส่วนตัวมากกว่า

ตัวอย่าง

กฎ: เมื่อผู้ใช้บอก "เคยบอกแล้ว" → search memory

Preferences: ชอบ dark theme, ชื่อ: Nanobro

SOUL บอก "ทำยังไง" MEMORY บอก "ข้อมูลอะไร"

ความแตกต่างสำคัญ: ถ้า Agent ลืม preferences → MEMORY มีปัญหา แต่ถ้า Agent ไม่ search memory เลย → SOUL มีปัญหา (ต้องเพิ่มกฎใน SOUL) MEMORY เป็น curated (ไม่บันทึกทุกอย่าง) ต่างจาก daily notes ที่อัตโนมัติ


บทที่ 4: tools.md vs skills folder – เครื่องมือพื้นฐาน vs Workflow ซับซ้อน

tools.md และ skills เป็นส่วน "เครื่องมือ" แต่ tools.md เป็นรายชื่อดิบ ในขณะที่ skills เป็นสูตรใช้งานรวมกัน

เปรียบเทียบ tools.md vs skills

ด้าน

tools.md

skills (folder)

ความแตกต่างสำคัญ

บทบาทหลัก

รายชื่อ tool ต่ำระดับ (low-level)

Workflow สูงระดับ (high-level)

tools เป็น "ส่วนประกอบ" skills เป็น "สูตรอาหาร"

โครงสร้าง

ไฟล์เดียว (Markdown list)

Folder มีหลายไฟล์ (.md แยกตาม skill)

tools เรียบง่าย skills ซับซ้อนกว่า

เนื้อหาหลัก

ชื่อ tool + parameters + description

Steps, tools used, output format

tools บอก "มีอะไร" skills บอก "ใช้ยังไง"

การเรียก

Agent เรียก tool ทีละตัว

Agent เรียก skill ชื่อเดียว (e.g., research)

skills อาศัย tools แต่ทำงานอัตโนมัติมากกว่า

ตัวอย่าง

memory_search(query)

research.md: web_search + browse + summarize

tools ต้องคิดเอง skills มีขั้นตอนสำเร็จรูป

ความแตกต่างสำคัญ: ถ้า tool ไม่มีใน tools.md → skills เรียกไม่ได้ skills เหมาะกับงานบ่อย ๆ (e.g., deep_research) แต่ tools เป็นฐานที่ยืดหยุ่นกว่า


บทที่ 5: Sub-agents vs Skills vs Model Selection – การขยายงาน

Sub-agents, skills, และการกำหนด model เป็นวิธีขยาย Agent แต่ sub-agents เน้น parallel/background ในขณะที่ skills เน้น workflow และ model เน้นคุณภาพ

เปรียบเทียบ Sub-agents vs Skills vs Model

ด้าน

Sub-agents

Skills

Model Selection

บทบาทหลัก

Agent ย่อยสำหรับงาน parallel/long-running

Workflow รวม tool

เลือก AI model สำหรับงานเฉพาะ

Isolation

สูง (context/memory แยก)

ต่ำ (ใช้ context เดียวกับ main)

ไม่มี (แค่เปลี่ยน engine)

Model

กำหนดแยกได้ (e.g., Claude สำหรับ sub)

ใช้ model เดียวกับ main

กำหนดได้ทุกที่ (main/sub/skill)

ตำแหน่ง

ใน sessions/ (ชั่วคราว ไม่มี folder ถาวร)

ใน skills/ folder

ใน config หรือ spawn command

ตัวอย่าง

Spawn สำหรับ research ยาว

research.md สำหรับ search สั้น

ใช้ Gemini สำหรับงานเร็ว

ความแตกต่างสำคัญ: Sub-agents สำหรับงานหนัก/parallel (e.g., ไม่ block main) skills สำหรับ routine workflow Model สำหรับ optimize cost/speed/quality Sub-agents ไม่ spawn อัตโนมัติเว้นแต่ตั้งใน SOUL


บทที่ 6: Memory System และ Config – การทำให้ Agent ไม่ลืม

Memory ใน OpenClaw มีหลายชั้น: MEMORY.md (ถาวร), daily notes (สั้น), และ search tools Config memorySearch ช่วยให้ search ดีขึ้น (local แนะนำสำหรับ Mac Mini M4 RAM 16GB)

เปรียบเทียบ Memory Files และ Tools

ด้าน

MEMORY.md

Daily Notes (memory/YYYY-MM-DD.md)

memory_search Tool

ประเภท

Long-term curated

Short-term automatic

Retrieval tool

การบันทึก

เขียน manual (via SOUL rules)

Append อัตโนมัติ

ค้น semantic/keyword

โหลด

ทุก private session

เฉพาะวันนี้ + เมื่อวาน

เรียกเมื่อต้องการ (mandatory ใน SOUL)

Config

ไม่ต้อง

ไม่ต้อง

เปิดใน config: enabled=true, provider=local

ความแตกต่างสำคัญ: ถ้า Agent ลืม → เพิ่มกฎใน SOUL เพื่อ flush เข้า MEMORY Local provider ดีสำหรับ privacy/speed บนเครื่องคุณ


บทสรุป: การนำไปใช้จริง

จากบทสนทนาของเรา OpenClaw เป็นระบบที่ยืดหยุ่น แต่ความสำเร็จอยู่ที่การเปรียบเทียบและ balance ไฟล์ต่าง ๆ: IDENTITY สำหรับภาพลักษณ์, SOUL สำหรับกฎ, MEMORY สำหรับข้อมูล, tools/skills สำหรับเครื่องมือ, sub-agents สำหรับขยาย

คำแนะนำ:

  • เริ่มจากแก้ SOUL.md ด้วยส่วน memory management ที่เราคุย

  • Config memorySearch เป็น local

  • ทดสอบโดยบอก Agent "จำไว้ว่าฉันชอบ dark theme" แล้วถามซ้ำวันถัดไป