---
read_when:
    - คุณต้องการทำความเข้าใจว่าความจำทำงานอย่างไร
    - คุณต้องการทราบว่าควรเขียนไฟล์หน่วยความจำใด
summary: OpenClaw จดจำสิ่งต่าง ๆ ข้ามเซสชันได้อย่างไร
title: ภาพรวมหน่วยความจำ
x-i18n:
    generated_at: "2026-05-10T19:32:47Z"
    model: gpt-5.5
    provider: openai
    source_hash: ef7a67b06615897167d7aac8a9f52fe7df9eee86f5d8d1504291ec750e674833
    source_path: concepts/memory.md
    workflow: 16
---

OpenClaw จดจำสิ่งต่าง ๆ โดยเขียน **ไฟล์ Markdown แบบธรรมดา** ใน workspace
ของ agent ของคุณ โมเดลจะ "จำ" เฉพาะสิ่งที่ถูกบันทึกลงดิสก์เท่านั้น — ไม่มี
สถานะที่ซ่อนอยู่

## วิธีการทำงาน

agent ของคุณมีไฟล์ที่เกี่ยวข้องกับหน่วยความจำสามไฟล์:

- **`MEMORY.md`** — หน่วยความจำระยะยาว ข้อเท็จจริง การตั้งค่า และ
  การตัดสินใจที่คงทน โหลดเมื่อเริ่มต้นทุกเซสชัน DM
- **`memory/YYYY-MM-DD.md`** — บันทึกรายวัน บริบทและข้อสังเกตที่ดำเนินอยู่
  บันทึกของวันนี้และเมื่อวานจะถูกโหลดโดยอัตโนมัติ
- **`DREAMS.md`** (ไม่บังคับ) — ไดอารี่ Dream และสรุปการกวาด Dreaming
  สำหรับให้มนุษย์ตรวจทาน รวมถึงรายการเติมย้อนหลังทางประวัติศาสตร์ที่มีหลักฐานรองรับ

ไฟล์เหล่านี้อยู่ใน workspace ของ agent (ค่าเริ่มต้น `~/.openclaw/workspace`)

## อะไรควรอยู่ที่ไหน

`MEMORY.md` คือเลเยอร์ที่กระชับและคัดสรรแล้ว ใช้สำหรับข้อเท็จจริงที่คงทน
การตั้งค่า การตัดสินใจที่ยืนอยู่ และสรุปสั้น ๆ ที่ควรพร้อมใช้งานเมื่อเริ่มต้น
เซสชันส่วนตัวหลัก ไม่ได้มีไว้เป็น transcript ดิบ บันทึกรายวัน หรือคลังถาวรแบบครบถ้วน

ไฟล์ `memory/YYYY-MM-DD.md` คือเลเยอร์สำหรับทำงาน ใช้สำหรับบันทึกรายวันแบบละเอียด
ข้อสังเกต สรุปเซสชัน และบริบทดิบที่อาจยังมีประโยชน์ในภายหลัง ไฟล์เหล่านี้ถูกทำดัชนีสำหรับ `memory_search` และ `memory_get` แต่จะไม่ถูกแทรกเข้าไปในพรอมป์ bootstrap ปกติทุกครั้ง

เมื่อเวลาผ่านไป agent ควรกลั่นกรองเนื้อหาที่มีประโยชน์จากบันทึกรายวัน
ไปยัง `MEMORY.md` และลบรายการระยะยาวที่ล้าสมัย คำสั่ง workspace ที่สร้างขึ้นและโฟลว์ Heartbeat สามารถทำสิ่งนี้เป็นระยะได้ คุณไม่จำเป็นต้องแก้ไข `MEMORY.md` ด้วยตนเองสำหรับทุกรายละเอียดที่ต้องจดจำ

หาก `MEMORY.md` โตเกินงบประมาณไฟล์ bootstrap OpenClaw จะเก็บไฟล์บนดิสก์ไว้ครบถ้วน
แต่จะตัดสำเนาที่แทรกเข้าไปในบริบทของโมเดล ให้ถือว่านี่เป็นสัญญาณให้ย้ายเนื้อหาแบบละเอียดกลับไปที่ `memory/*.md` เก็บเฉพาะสรุปที่คงทนไว้ใน `MEMORY.md` หรือเพิ่มขีดจำกัด bootstrap หากคุณตั้งใจจะใช้งบพรอมป์มากขึ้น ใช้ `/context list`, `/context detail` หรือ `openclaw doctor` เพื่อดูขนาดดิบเทียบกับขนาดที่ถูกแทรก และสถานะการตัดทอน

<Tip>
ถ้าคุณต้องการให้ agent จำบางอย่าง แค่บอกมันว่า: "จำไว้ว่าฉันชอบ TypeScript" มันจะเขียนสิ่งนั้นลงไฟล์ที่เหมาะสม
</Tip>

## ข้อผูกพันที่อนุมานได้

การติดตามผลบางอย่างในอนาคตไม่ใช่ข้อเท็จจริงที่คงทน หากคุณพูดถึงการสัมภาษณ์
พรุ่งนี้ หน่วยความจำที่มีประโยชน์อาจเป็น "เช็กอินหลังการสัมภาษณ์" ไม่ใช่ "เก็บสิ่งนี้ไว้ตลอดไปใน `MEMORY.md`"

[ข้อผูกพัน](/th/concepts/commitments) เป็นหน่วยความจำติดตามผลระยะสั้นแบบเลือกใช้
สำหรับกรณีนั้น OpenClaw อนุมานสิ่งเหล่านี้ใน pass เบื้องหลังที่ซ่อนอยู่ จำกัดขอบเขตไว้กับ agent และช่องทางเดียวกัน และส่งเช็กอินที่ถึงกำหนดผ่าน Heartbeat
การเตือนความจำแบบชัดเจนยังคงใช้ [งานที่ตั้งเวลาไว้](/th/automation/cron-jobs)

## เครื่องมือหน่วยความจำ

agent มีเครื่องมือสองตัวสำหรับทำงานกับหน่วยความจำ:

- **`memory_search`** — ค้นหาบันทึกที่เกี่ยวข้องด้วยการค้นหาเชิงความหมาย แม้ถ้อยคำ
  จะแตกต่างจากต้นฉบับ
- **`memory_get`** — อ่านไฟล์หน่วยความจำเฉพาะหรือช่วงบรรทัด

เครื่องมือทั้งสองจัดเตรียมโดย Plugin หน่วยความจำที่ใช้งานอยู่ (ค่าเริ่มต้น: `memory-core`)

## Plugin คู่หู Memory Wiki

หากคุณต้องการให้หน่วยความจำที่คงทนทำงานเหมือนฐานความรู้ที่ดูแลรักษามากขึ้น
แทนที่จะเป็นเพียงบันทึกดิบ ให้ใช้ Plugin `memory-wiki` ที่รวมมาให้

`memory-wiki` คอมไพล์ความรู้ที่คงทนให้เป็นคลังวิกิที่มี:

- โครงสร้างหน้าที่กำหนดแน่นอน
- การกล่าวอ้างและหลักฐานแบบมีโครงสร้าง
- การติดตามความขัดแย้งและความสดใหม่
- dashboard ที่สร้างขึ้น
- digest ที่คอมไพล์แล้วสำหรับผู้ใช้ฝั่ง agent/runtime
- เครื่องมือแบบวิกิ เช่น `wiki_search`, `wiki_get`, `wiki_apply` และ `wiki_lint`

มันไม่ได้แทนที่ Plugin หน่วยความจำที่ใช้งานอยู่ Plugin หน่วยความจำที่ใช้งานอยู่ยังคง
เป็นเจ้าของการเรียกคืน การเลื่อนระดับ และ Dreaming `memory-wiki` เพิ่มเลเยอร์ความรู้
ที่มีแหล่งที่มาชัดเจนไว้ข้าง ๆ

ดู [Memory Wiki](/th/plugins/memory-wiki)

## การค้นหาหน่วยความจำ

เมื่อกำหนดค่า embedding provider แล้ว `memory_search` จะใช้ **การค้นหาแบบไฮบริด**
— ผสานความคล้ายคลึงแบบเวกเตอร์ (ความหมายเชิงความหมาย) เข้ากับการจับคู่คีย์เวิร์ด
(คำตรงตัว เช่น ID และสัญลักษณ์โค้ด) สิ่งนี้ใช้งานได้ทันทีเมื่อคุณมี API key สำหรับ provider ที่รองรับ

<Info>
OpenClaw ตรวจจับ embedding provider โดยอัตโนมัติจาก API key ที่มีอยู่ หากคุณ
กำหนดค่า key ของ OpenAI, Gemini, Voyage หรือ Mistral ไว้ การค้นหาหน่วยความจำจะเปิดใช้งานโดยอัตโนมัติ
</Info>

สำหรับรายละเอียดเกี่ยวกับวิธีทำงานของการค้นหา ตัวเลือกการปรับแต่ง และการตั้งค่า provider โปรดดู
[การค้นหาหน่วยความจำ](/th/concepts/memory-search)

## backend หน่วยความจำ

<CardGroup cols={3}>
<Card title="Builtin (default)" icon="database" href="/th/concepts/memory-builtin">
อิง SQLite ใช้งานได้ทันทีพร้อมการค้นหาคีย์เวิร์ด ความคล้ายคลึงแบบเวกเตอร์ และ
การค้นหาแบบไฮบริด ไม่มี dependency เพิ่มเติม
</Card>
<Card title="QMD" icon="search" href="/th/concepts/memory-qmd">
sidecar แบบ local-first พร้อมการจัดอันดับใหม่ การขยาย query และความสามารถในการทำดัชนี
ไดเรกทอรีนอก workspace
</Card>
<Card title="Honcho" icon="brain" href="/th/concepts/memory-honcho">
หน่วยความจำข้ามเซสชันแบบ AI-native พร้อมการสร้างโมเดลผู้ใช้ การค้นหาเชิงความหมาย และ
การรับรู้หลาย agent ติดตั้งผ่าน Plugin
</Card>
<Card title="LanceDB" icon="layers" href="/th/plugins/memory-lancedb">
หน่วยความจำที่รวมมาให้ซึ่งรองรับโดย LanceDB พร้อม embeddings ที่เข้ากันได้กับ OpenAI, auto-recall,
auto-capture และการรองรับ embedding ของ Ollama แบบ local
</Card>
</CardGroup>

## เลเยอร์วิกิความรู้

<CardGroup cols={1}>
<Card title="Memory Wiki" icon="book" href="/th/plugins/memory-wiki">
คอมไพล์หน่วยความจำที่คงทนให้เป็นคลังวิกิที่มีแหล่งที่มาชัดเจน พร้อมการกล่าวอ้าง
dashboard, bridge mode และเวิร์กโฟลว์ที่เป็นมิตรกับ Obsidian
</Card>
</CardGroup>

## การ flush หน่วยความจำอัตโนมัติ

ก่อนที่ [Compaction](/th/concepts/compaction) จะสรุปบทสนทนาของคุณ OpenClaw
จะรัน turn แบบเงียบที่เตือน agent ให้บันทึกบริบทสำคัญลงไฟล์หน่วยความจำ
สิ่งนี้เปิดใช้งานเป็นค่าเริ่มต้น — คุณไม่จำเป็นต้องกำหนดค่าอะไร

หากต้องการให้ turn ดูแลความเรียบร้อยนั้นใช้โมเดล local ให้ตั้ง override โมเดล memory-flush
แบบเจาะจง:

```json
{
  "agents": {
    "defaults": {
      "compaction": {
        "memoryFlush": {
          "model": "ollama/qwen3:8b"
        }
      }
    }
  }
}
```

override นี้มีผลเฉพาะกับ turn ของ memory-flush และจะไม่สืบทอด
fallback chain ของเซสชันที่ใช้งานอยู่

<Tip>
memory flush ป้องกันการสูญเสียบริบทระหว่าง Compaction หาก agent ของคุณมี
ข้อเท็จจริงสำคัญในบทสนทนาที่ยังไม่ได้เขียนลงไฟล์ สิ่งเหล่านั้นจะถูกบันทึกโดยอัตโนมัติก่อนการสรุปจะเกิดขึ้น
</Tip>

## Dreaming

Dreaming เป็น pass การรวบรวมหน่วยความจำเบื้องหลังแบบไม่บังคับ มันรวบรวม
สัญญาณระยะสั้น ให้คะแนนผู้สมัคร และเลื่อนระดับเฉพาะรายการที่ผ่านคุณสมบัติเข้าสู่
หน่วยความจำระยะยาว (`MEMORY.md`)

ออกแบบมาเพื่อให้หน่วยความจำระยะยาวมีสัญญาณคุณภาพสูง:

- **เลือกใช้**: ปิดใช้งานเป็นค่าเริ่มต้น
- **ตั้งเวลาไว้**: เมื่อเปิดใช้งาน `memory-core` จะจัดการ cron job แบบเกิดซ้ำหนึ่งงานโดยอัตโนมัติ
  สำหรับการกวาด Dreaming แบบเต็ม
- **มีเกณฑ์ขั้นต่ำ**: การเลื่อนระดับต้องผ่านเกณฑ์คะแนน ความถี่การเรียกคืน และความหลากหลายของ query
- **ตรวจทานได้**: สรุป phase และรายการไดอารี่จะถูกเขียนลง `DREAMS.md`
  เพื่อให้มนุษย์ตรวจทาน

สำหรับพฤติกรรมของ phase สัญญาณการให้คะแนน และรายละเอียด Dream Diary โปรดดู
[Dreaming](/th/concepts/dreaming)

## การเติมย้อนหลังที่มีหลักฐานรองรับและการเลื่อนระดับแบบสด

ตอนนี้ระบบ Dreaming มีเลนตรวจทานสองเลนที่เกี่ยวข้องกันอย่างใกล้ชิด:

- **Live dreaming** ทำงานจาก store สำหรับ Dreaming ระยะสั้นภายใต้
  `memory/.dreams/` และเป็นสิ่งที่ phase ลึกปกติใช้เมื่อตัดสินใจว่าอะไร
  สามารถเลื่อนระดับเข้า `MEMORY.md` ได้
- **Grounded backfill** อ่านบันทึก `memory/YYYY-MM-DD.md` ในอดีตเป็น
  ไฟล์รายวันแบบแยกเดี่ยว และเขียนผลลัพธ์การตรวจทานแบบมีโครงสร้างลงใน `DREAMS.md`

Grounded backfill มีประโยชน์เมื่อคุณต้องการเล่นซ้ำบันทึกเก่าและตรวจดูว่า
ระบบคิดว่าอะไรคงทน โดยไม่ต้องแก้ไข `MEMORY.md` ด้วยตนเอง

เมื่อคุณใช้:

```bash
openclaw memory rem-backfill --path ./memory --stage-short-term
```

ผู้สมัครที่คงทนและมีหลักฐานรองรับจะไม่ถูกเลื่อนระดับโดยตรง แต่จะถูก stage เข้าไปใน
store สำหรับ Dreaming ระยะสั้นเดียวกันที่ phase ลึกปกติใช้อยู่แล้ว นั่นหมายความว่า:

- `DREAMS.md` ยังคงเป็นพื้นผิวสำหรับมนุษย์ตรวจทาน
- store ระยะสั้นยังคงเป็นพื้นผิวการจัดอันดับสำหรับเครื่อง
- `MEMORY.md` ยังคงถูกเขียนโดยการเลื่อนระดับเชิงลึกเท่านั้น

หากคุณตัดสินใจว่าการเล่นซ้ำไม่มีประโยชน์ คุณสามารถลบ artifact ที่ stage ไว้
โดยไม่แตะรายการไดอารี่ปกติหรือสถานะการเรียกคืนปกติ:

```bash
openclaw memory rem-backfill --rollback
openclaw memory rem-backfill --rollback-short-term
```

## CLI

```bash
openclaw memory status          # ตรวจสอบสถานะดัชนีและ provider
openclaw memory search "query"  # ค้นหาจากบรรทัดคำสั่ง
openclaw memory index --force   # สร้างดัชนีใหม่
```

## อ่านเพิ่มเติม

- [เอนจินหน่วยความจำ Builtin](/th/concepts/memory-builtin): backend SQLite ค่าเริ่มต้น
- [เอนจินหน่วยความจำ QMD](/th/concepts/memory-qmd): sidecar แบบ local-first ขั้นสูง
- [หน่วยความจำ Honcho](/th/concepts/memory-honcho): หน่วยความจำข้ามเซสชันแบบ AI-native
- [Memory LanceDB](/th/plugins/memory-lancedb): Plugin ที่รองรับโดย LanceDB พร้อม embeddings ที่เข้ากันได้กับ OpenAI
- [Memory Wiki](/th/plugins/memory-wiki): คลังความรู้ที่คอมไพล์แล้วและเครื่องมือแบบวิกิ
- [การค้นหาหน่วยความจำ](/th/concepts/memory-search): pipeline การค้นหา, provider และการปรับแต่ง
- [Dreaming](/th/concepts/dreaming): การเลื่อนระดับเบื้องหลังจากการเรียกคืนระยะสั้นไปสู่หน่วยความจำระยะยาว
- [อ้างอิงการกำหนดค่าหน่วยความจำ](/th/reference/memory-config): knob การกำหนดค่าทั้งหมด
- [Compaction](/th/concepts/compaction): วิธีที่ Compaction โต้ตอบกับหน่วยความจำ

## ที่เกี่ยวข้อง

- [Active memory](/th/concepts/active-memory)
- [การค้นหาหน่วยความจำ](/th/concepts/memory-search)
- [เอนจินหน่วยความจำ Builtin](/th/concepts/memory-builtin)
- [หน่วยความจำ Honcho](/th/concepts/memory-honcho)
- [Memory LanceDB](/th/plugins/memory-lancedb)
- [ข้อผูกพัน](/th/concepts/commitments)
