---
read_when:
    - คุณต้องการความรู้ที่คงอยู่ถาวรนอกเหนือจากบันทึก MEMORY.md แบบธรรมดา
    - คุณกำลังกำหนดค่า Plugin memory-wiki ที่รวมมาในชุด
    - คุณต้องมีคลังวิกิแยกกันสำหรับเอเจนต์แต่ละตัวใน Gateway เดียว
    - คุณต้องการทำความเข้าใจ `wiki_search`, `wiki_get` หรือโหมดบริดจ์
summary: 'memory-wiki: คลังความรู้ที่รวบรวมแล้ว พร้อมแหล่งที่มา ข้อกล่าวอ้าง แดชบอร์ด และโหมดบริดจ์'
title: วิกิหน่วยความจำ
x-i18n:
    generated_at: "2026-07-12T16:25:30Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: cf6c046bfa062b9df6deaa0753d992f9dbc45e2506d6ed4fb1a2836141a901c7
    source_path: plugins/memory-wiki.md
    workflow: 16
---

`memory-wiki` เป็น Plugin ที่มาพร้อมระบบ ซึ่งคอมไพล์ความรู้ที่คงทนให้เป็น
วิกิที่นำทางได้ ได้แก่ หน้าที่สร้างแบบกำหนดแน่นอน ข้อกล่าวอ้างแบบมีโครงสร้างพร้อมหลักฐาน
ที่มา แดชบอร์ด และข้อมูลสรุปที่เครื่องอ่านได้

Plugin นี้ไม่ได้มาแทนที่ Plugin Active Memory การเรียกคืน การเลื่อนระดับ การทำดัชนี และ
Dreaming ยังคงเป็นหน้าที่ของแบ็กเอนด์หน่วยความจำที่กำหนดค่าไว้
(`memory-core`, QMD, Honcho เป็นต้น) `memory-wiki` ทำงานควบคู่กันและคอมไพล์
ความรู้เป็นชั้นวิกิที่ได้รับการดูแลรักษา

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

กฎสำหรับการใช้งานจริง:

- ใช้ `memory_search` เพื่อเรียกคืนข้อมูลแบบกว้างหนึ่งรอบจากคลังข้อมูลทั้งหมดที่กำหนดค่าไว้
- ใช้ `wiki_search` / `wiki_get` เมื่อต้องการการจัดอันดับเฉพาะวิกิ ข้อมูลที่มา หรือโครงสร้างความเชื่อระดับหน้า
- ใช้ `memory_search corpus=all` เพื่อครอบคลุมทั้งสองชั้นในการเรียกครั้งเดียว เมื่อ Plugin Active Memory รองรับการเลือกคลังข้อมูล

การตั้งค่าแบบเน้นการทำงานภายในเครื่องที่ใช้กันทั่วไปคือ ใช้ QMD เป็นแบ็กเอนด์ Active Memory สำหรับการเรียกคืน และ
ใช้ `memory-wiki` ในโหมด `bridge` สำหรับหน้าสังเคราะห์ที่คงทน ดูตัวอย่าง
โหมด QMD + bridge ในส่วน [การกำหนดค่า](#configuration)

หากโหมด bridge รายงานว่าอาร์ติแฟกต์ที่ส่งออกมีจำนวนเป็นศูนย์ แสดงว่า Plugin Active Memory
ยังไม่ได้เปิดเผยอินพุต bridge สาธารณะในขณะนี้ ให้เรียกใช้ `openclaw wiki doctor` ก่อน
จากนั้นยืนยันว่า Plugin Active Memory รองรับอาร์ติแฟกต์สาธารณะ

## โหมดคลัง

- `isolated` (ค่าเริ่มต้น): มีคลังและแหล่งข้อมูลของตนเอง โดยไม่ขึ้นต่อ Plugin Active Memory ใช้สำหรับคลังความรู้ที่คัดสรรและทำงานได้อย่างเป็นอิสระ
- `bridge`: อ่านอาร์ติแฟกต์หน่วยความจำสาธารณะและบันทึกเหตุการณ์จาก Plugin Active Memory ผ่านจุดเชื่อมต่อสาธารณะของ SDK สำหรับ Plugin ใช้เพื่อคอมไพล์อาร์ติแฟกต์ที่ Plugin หน่วยความจำส่งออก โดยไม่เข้าถึงส่วนภายในที่เป็นส่วนตัวของ Plugin
- `unsafe-local`: ช่องทางเลี่ยงสำหรับเครื่องเดียวกันที่ต้องเปิดใช้อย่างชัดเจน เพื่อเข้าถึงพาธภายในเครื่องที่เป็นส่วนตัว ออกแบบให้เป็นฟีเจอร์ทดลองและไม่รองรับการย้ายข้ามสภาพแวดล้อมโดยตั้งใจ ใช้เฉพาะเมื่อคุณเข้าใจขอบเขตความไว้วางใจและต้องการการเข้าถึงระบบไฟล์ภายในเครื่องซึ่งโหมด bridge ไม่สามารถให้ได้โดยเฉพาะ

โหมดคลังและขอบเขตคลังเป็นตัวเลือกที่แยกจากกัน:

- `vaultMode` เลือกแหล่งที่มาของอินพุตวิกิ
- `vault.scope` เลือกว่าจะให้เอเจนต์ทั้งหมดใช้คลังเดียวกัน หรือให้แต่ละเอเจนต์มีคลังย่อยของตนเอง

`vault.scope: "global"` เป็นค่าเริ่มต้นและคงพฤติกรรมแบบคลังเดียวที่มีอยู่เดิม
ใช้ `vault.scope: "agent"` ร่วมกับโหมด `isolated` หรือ `bridge` เมื่อ
เอเจนต์ต้องไม่ใช้หน้าวิกิ ข้อมูลสรุปที่คอมไพล์แล้ว ผลการค้นหา หรือการเขียนร่วมกัน
ขอบเขตระดับเอเจนต์ใช้ร่วมกับโหมด `unsafe-local` ไม่ได้ เนื่องจากพาธส่วนตัวที่กำหนดค่าไว้เหล่านั้น
ไม่ใช่อินพุตที่เอเจนต์เป็นเจ้าของ การตรวจสอบความถูกต้องของการกำหนดค่าจะปฏิเสธ
ชุดค่าผสมนี้

โหมด bridge สามารถทำดัชนีรายการต่อไปนี้ตามตัวเลือกเปิด/ปิดในค่ากำหนด `bridge.*`:

- อาร์ติแฟกต์หน่วยความจำที่ส่งออก (`indexMemoryRoot`)
- บันทึกรายวัน (`indexDailyNotes`)
- รายงานความฝัน (`indexDreamReports`)
- บันทึกเหตุการณ์หน่วยความจำ (`followMemoryEvents`)

เมื่อโหมด bridge ทำงานอยู่และเปิดใช้ `bridge.readMemoryArtifacts`
`openclaw wiki status`, `openclaw wiki doctor` และ `openclaw wiki bridge
import` จะส่งคำขอผ่าน Gateway ที่กำลังทำงาน เพื่อให้เห็นบริบท Plugin Active Memory
เดียวกับหน่วยความจำของเอเจนต์/รันไทม์ หากปิดใช้ bridge หรือปิดการอ่านอาร์ติแฟกต์
คำสั่งเหล่านั้นจะยังคงทำงานแบบภายในเครื่อง/ออฟไลน์

## โครงสร้างคลัง

```text
<vault>/
  AGENTS.md
  WIKI.md
  index.md
  inbox.md
  entities/
  concepts/
  syntheses/
  sources/
  reports/
  _attachments/
  _views/
  .openclaw-wiki/
```

เนื้อหาที่ระบบจัดการจะอยู่ภายในบล็อกที่สร้างขึ้น ส่วนบล็อกบันทึกของมนุษย์จะ
ถูกเก็บรักษาไว้เมื่อสร้างใหม่

- `sources/`: วัตถุดิบดิบที่นำเข้า และหน้าที่มีแหล่งข้อมูลจาก bridge/unsafe-local
- `entities/`: สิ่งที่คงทน บุคคล ระบบ โครงการ วัตถุ
- `concepts/`: แนวคิด นามธรรม รูปแบบ นโยบาย (รวมถึงเป็นตำแหน่งปลายทางสำหรับการนำเข้า OKF)
- `syntheses/`: บทสรุปที่คอมไพล์แล้วและข้อมูลสรุปรวมที่ได้รับการดูแลรักษา
- `reports/`: แดชบอร์ดที่สร้างขึ้น

## การนำเข้า Open Knowledge Format

```bash
openclaw wiki okf import ./bundles/ga4
```

นำเข้าบันเดิล Open Knowledge Format ที่แตกไฟล์แล้วไปยังหน้าแนวคิดของวิกิ เหมาะอย่างยิ่ง
เมื่อแค็ตตาล็อกข้อมูล โปรแกรมรวบรวมเอกสาร หรือเอเจนต์เสริมข้อมูลสร้าง OKF
อยู่แล้ว โดยคง OKF ไว้เป็นอาร์ติแฟกต์แลกเปลี่ยนแบบพกพา และให้ `memory-wiki`
แปลงเป็นหน้าแนวคิดแบบเนทีฟของ OpenClaw และข้อมูลสรุปที่คอมไพล์แล้ว

- ไฟล์ `.md` ที่ไม่ได้สงวนไว้เป็นเอกสารแนวคิด
- แนวคิดที่นำเข้าแต่ละรายการต้องมีฟิลด์ frontmatter `type` ที่ไม่ว่าง หากไม่มี `type` จะเกิดคำเตือน `missing-type` และข้ามไฟล์นั้น
- ยอมรับค่า `type` ที่ไม่รู้จักเป็นแนวคิดทั่วไป
- `index.md` และ `log.md` เป็นชื่อที่สงวนไว้และจะไม่ถูกนำเข้าเป็นแนวคิด
- ลิงก์ Markdown ที่เสียหายหรือชี้ไปภายนอกจะคงไว้โดยไม่เปลี่ยนแปลง

หน้าที่นำเข้าจะถูกจัดให้อยู่ในระดับเดียวกันภายใต้ `concepts/` เพื่อให้กระบวนการคอมไพล์ ค้นหา ดึงข้อมูล และ
แดชบอร์ดที่มีอยู่มองเห็นหน้าเหล่านั้นได้โดยไม่ต้องมีโครงสร้างวิกิชุดที่สอง แต่ละหน้าจะเก็บ
รหัสแนวคิด OKF ดั้งเดิม พาธต้นทาง `type`, `resource`, `tags`, การประทับเวลา
และ frontmatter ทั้งหมดของผู้สร้าง ลิงก์ OKF ภายในจะถูกเขียนใหม่ให้ชี้ไปยัง
หน้าแนวคิดวิกิที่สร้างขึ้น และสร้างรายการ `relationships` แบบมีโครงสร้างพร้อม
`kind: okf-link` ด้วย

## ข้อกล่าวอ้างและหลักฐานแบบมีโครงสร้าง

หน้าต่าง ๆ มี frontmatter `claims` แบบมีโครงสร้าง ไม่ใช่เพียงข้อความอิสระ แต่ละ
ข้อกล่าวอ้างสามารถมี `id`, `text`, `status`, `confidence`, `evidence[]` และ
`updatedAt` แต่ละรายการหลักฐานสามารถมี `kind`, `sourceId`, `path`,
`lines`, `weight`, `confidence`, `privacyTier`, `note` และ `updatedAt`

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

## เมทาดาทาเอนทิตีสำหรับเอเจนต์

หน้าเอนทิตีมีเมทาดาทาการกำหนดเส้นทางแบบทั่วไป ซึ่งใช้ได้กับบุคคล ทีม
ระบบ โครงการ หรือเอนทิตีประเภทอื่น:

- `entityType`: ตัวอย่างเช่น `person`, `team`, `system`, `project`
- `canonicalId`: คีย์ระบุตัวตนที่คงที่ระหว่างนามแฝงและการนำเข้า
- `aliases`: ชื่อ ชื่อเรียก หรือป้ายกำกับที่เชื่อมโยงมายังหน้าเดียวกัน
- `privacyTier`: สตริงรูปแบบอิสระ โดยถือว่า `public` ไม่ต้องตรวจสอบ ส่วนค่าอื่นทั้งหมด (เช่น `local-private`, `sensitive`, `confirm-before-use`) จะถูกทำเครื่องหมายใน `reports/privacy-review.md`
- `bestUsedFor` / `notEnoughFor`: คำแนะนำการกำหนดเส้นทางแบบกระชับ
- `lastRefreshedAt`: เวลาประทับของการรีเฟรชแหล่งข้อมูล ซึ่งแยกจากเวลาแก้ไขหน้า
- `personCard`: การ์ดกำหนดเส้นทางเฉพาะบุคคลที่เป็นตัวเลือก (ชื่อเรียก โซเชียล อีเมล เขตเวลา สายงาน เรื่องที่ควรถาม เรื่องที่ควรหลีกเลี่ยงการถาม ความเชื่อมั่น ระดับความเป็นส่วนตัว)
- `relationships`: เส้นเชื่อมแบบมีประเภทไปยังหน้าที่เกี่ยวข้อง (เป้าหมาย ประเภท น้ำหนัก ความเชื่อมั่น ประเภทหลักฐาน ระดับความเป็นส่วนตัว หมายเหตุ)

สำหรับวิกิบุคคล ให้เริ่มจาก `reports/person-agent-directory.md` แล้วเปิด
หน้าบุคคลด้วย `wiki_get` ก่อนใช้รายละเอียดการติดต่อหรือข้อเท็จจริงที่อนุมานได้

<Accordion title="ตัวอย่างหน้าเอนทิตี">
```yaml
pageType: entity
entityType: person
id: entity.example-person
canonicalId: maintainer.example-person
aliases:
  - Alex
  - example-handle
privacyTier: local-private
bestUsedFor:
  - Example ecosystem routing
notEnoughFor:
  - legal approval
lastRefreshedAt: "2026-04-29T00:00:00.000Z"
personCard:
  handles:
    - "@example-handle"
  socials:
    - "https://x.example/example-handle"
  emails:
    - alex@example.com
  timezone: America/Chicago
  lane: Example ecosystem
  askFor:
    - Example rollout questions
  avoidAskingFor:
    - unrelated billing decisions
  confidence: 0.8
  privacyTier: confirm-before-use
relationships:
  - targetId: entity.other-person
    targetTitle: Other Person
    kind: collaborates-with
    confidence: 0.7
    evidenceKind: discrawl-stat
claims:
  - id: claim.example.routing
    text: Alex is useful for example-ecosystem routing.
    status: supported
    confidence: 0.9
    evidence:
      - kind: maintainer-whois
        sourceId: source.maintainers
        privacyTier: local-private
```
</Accordion>

## ไปป์ไลน์การคอมไพล์

การคอมไพล์จะอ่านหน้าวิกิ ปรับบทสรุปให้เป็นรูปแบบมาตรฐาน และสร้าง
อาร์ติแฟกต์สำหรับเครื่องที่มีความคงที่ไว้ภายใต้:

- `.openclaw-wiki/cache/agent-digest.json`
- `.openclaw-wiki/cache/claims.jsonl`

เอเจนต์และโค้ดรันไทม์จะอ่านข้อมูลสรุปเหล่านี้แทนการดึงข้อมูลจาก Markdown
ผลลัพธ์ที่คอมไพล์แล้วยังขับเคลื่อนการทำดัชนีวิกิรอบแรกสำหรับการค้นหา/ดึงข้อมูล การค้นหาหน้าเจ้าของ
จากรหัสข้อกล่าวอ้าง ส่วนเสริมพรอมต์แบบกระชับ และการสร้างรายงาน

## แดชบอร์ดและรายงานสถานะระบบ

เมื่อเปิดใช้ `render.createDashboards` การคอมไพล์จะดูแลแดชบอร์ดภายใต้
`reports/`:

| รายงาน                              | ติดตาม                                             |
| ----------------------------------- | -------------------------------------------------- |
| `reports/open-questions.md`         | หน้าที่มีคำถามที่ยังไม่ได้ข้อยุติ                    |
| `reports/contradictions.md`         | กลุ่มบันทึกข้อขัดแย้ง                               |
| `reports/low-confidence.md`         | หน้าและข้อกล่าวอ้างที่มีความเชื่อมั่นต่ำ             |
| `reports/claim-health.md`           | ข้อกล่าวอ้างที่ไม่มีหลักฐานแบบมีโครงสร้าง            |
| `reports/stale-pages.md`            | ข้อมูลที่ล้าสมัยหรือไม่ทราบความสดใหม่                |
| `reports/person-agent-directory.md` | การ์ดกำหนดเส้นทางสำหรับบุคคล/เอนทิตี                |
| `reports/relationship-graph.md`     | เส้นเชื่อมความสัมพันธ์แบบมีโครงสร้าง                 |
| `reports/provenance-coverage.md`    | ความครอบคลุมของประเภทหลักฐาน                        |
| `reports/privacy-review.md`         | ระดับความเป็นส่วนตัวที่ไม่ใช่สาธารณะและต้องตรวจสอบก่อนใช้ |

## การค้นหาและการดึงข้อมูล

มีแบ็กเอนด์การค้นหาสองแบบ:

- `shared`: ใช้กระบวนการค้นหาหน่วยความจำร่วมเมื่อพร้อมใช้งาน
- `local`: ค้นหาวิกิภายในเครื่อง

มีคลังข้อมูลสามแบบ: `wiki`, `memory`, `all`

- `wiki_search` / `wiki_get` ใช้ข้อมูลสรุปที่คอมไพล์แล้วเป็นรอบแรกเมื่อทำได้
- รหัสข้อกล่าวอ้างเชื่อมโยงกลับไปยังหน้าที่เป็นเจ้าของ
- ข้อกล่าวอ้างที่ถูกโต้แย้ง/ล้าสมัย/สดใหม่มีผลต่อการจัดอันดับ
- ป้ายกำกับที่มาจะยังคงอยู่ในผลลัพธ์

โหมดการค้นหา (`--mode` / พารามิเตอร์ `mode` ของเครื่องมือ):

| โหมด              | เพิ่มน้ำหนัก                                                         |
| ----------------- | -------------------------------------------------------------- |
| `auto`            | ค่าเริ่มต้นที่สมดุล                                               |
| `find-person`     | เอนทิตีที่มีลักษณะเป็นบุคคล นามแฝง ชื่อเรียก โซเชียล รหัสมาตรฐาน |
| `route-question`  | การ์ดเอเจนต์ คำแนะนำเรื่องที่ควรถาม/เหมาะใช้ที่สุด บริบทความสัมพันธ์ |
| `source-evidence` | หน้าต้นทางและเมทาดาทาหลักฐานแบบมีโครงสร้าง                      |
| `raw-claim`       | ข้อกล่าวอ้างแบบมีโครงสร้างที่ตรงกัน โดยส่งคืนเมทาดาทาข้อกล่าวอ้าง/หลักฐาน |

เมื่อผลลัพธ์ตรงกับข้อกล่าวอ้างแบบมีโครงสร้าง `wiki_search` จะส่งคืน
`matchedClaimId`, `matchedClaimStatus`, `matchedClaimConfidence`,
`evidenceKinds` และ `evidenceSourceIds` ในเพย์โหลดรายละเอียด ผลลัพธ์ข้อความ
จะมีบรรทัด `Claim:` และ `Evidence:` แบบกระชับเมื่อพร้อมใช้งาน

## เครื่องมือสำหรับเอเจนต์

| เครื่องมือ     | วัตถุประสงค์                                                                                                                                                                      |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `wiki_status`  | โหมดและขอบเขตของคลังปัจจุบัน เอเจนต์ที่ได้รับการระบุ สถานะการทำงาน และความพร้อมใช้งานของ Obsidian CLI                                                                            |
| `wiki_search`  | ค้นหาหน้าวิกิและคลังข้อมูลหน่วยความจำที่ใช้ร่วมกันเมื่อกำหนดค่าไว้ รองรับ `mode` สำหรับค้นหาบุคคล กำหนดเส้นทางคำถาม ตรวจสอบหลักฐานแหล่งที่มา หรือเจาะลึกข้อกล่าวอ้างดิบ             |
| `wiki_get`     | อ่านหน้าวิกิตามรหัส/พาธ โดยย้อนกลับไปใช้คลังข้อมูลหน่วยความจำที่ใช้ร่วมกันเมื่อเปิดใช้การค้นหาแบบใช้ร่วมกันและไม่พบผลลัพธ์                                                         |
| `wiki_apply`   | แก้ไขการสังเคราะห์/เมทาดาทาในขอบเขตจำกัด โดยไม่ผ่าตัดแก้ไขหน้าแบบอิสระ                                                                                                           |
| `wiki_lint`    | ตรวจสอบโครงสร้าง ช่องว่างของที่มา ข้อขัดแย้ง และคำถามที่ยังไม่มีคำตอบ                                                                                                             |

Plugin ยังลงทะเบียนส่วนเสริมคลังข้อมูลหน่วยความจำแบบไม่ผูกขาดด้วย ดังนั้น
`memory_search` และ `memory_get` ที่ใช้ร่วมกันจึงเข้าถึงวิกิได้ เมื่อ Plugin
หน่วยความจำที่ใช้งานอยู่รองรับการเลือกคลังข้อมูล

## ลักษณะการทำงานของพรอมต์และบริบท

เมื่อเปิดใช้ `context.includeCompiledDigestPrompt` ส่วนหน่วยความจำของพรอมต์
จะต่อท้ายสแนปช็อตแบบย่อที่คอมไพล์จาก `agent-digest.json` ได้แก่ เฉพาะหน้าอันดับต้น
เฉพาะข้อกล่าวอ้างอันดับต้น จำนวนข้อขัดแย้ง จำนวนคำถาม และตัวระบุระดับความเชื่อมั่น/
ความใหม่ คุณลักษณะนี้ต้องเปิดใช้โดยสมัครใจเนื่องจากเปลี่ยนรูปแบบพรอมต์ โดยมีความสำคัญ
เป็นหลักต่อกลไกบริบทหรือการประกอบพรอมต์ที่ใช้ส่วนเสริมหน่วยความจำอย่างชัดเจน

## การกำหนดค่า

ใส่การกำหนดค่าไว้ภายใต้ `plugins.entries.memory-wiki.config`:

```json5
{
  plugins: {
    entries: {
      "memory-wiki": {
        enabled: true,
        config: {
          vaultMode: "isolated",
          vault: {
            scope: "global",
            path: "~/.openclaw/wiki/main",
            renderMode: "obsidian",
          },
          obsidian: {
            enabled: true,
            useOfficialCli: true,
            vaultName: "OpenClaw Wiki",
            openAfterWrites: false,
          },
          bridge: {
            enabled: false,
            readMemoryArtifacts: true,
            indexDreamReports: true,
            indexDailyNotes: true,
            indexMemoryRoot: true,
            followMemoryEvents: true,
          },
          unsafeLocal: {
            allowPrivateMemoryCoreAccess: false,
            paths: [],
          },
          ingest: {
            autoCompile: true,
            maxConcurrentJobs: 1,
            allowUrlIngest: true,
          },
          search: {
            backend: "shared",
            corpus: "wiki",
          },
          context: {
            includeCompiledDigestPrompt: false,
          },
          render: {
            preserveHumanBlocks: true,
            createBacklinks: true,
            createDashboards: true,
          },
        },
      },
    },
  },
}
```

ตัวเลือกสำคัญ:

| คีย์                                       | ค่า / ค่าเริ่มต้น                              | หมายเหตุ                                                                                         |
| ------------------------------------------ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| `vaultMode`                                | `isolated` (ค่าเริ่มต้น), `bridge`, `unsafe-local` | เลือกลักษณะการทำงานของอินพุตและการผสานรวม                                                        |
| `vault.scope`                              | `global` (ค่าเริ่มต้น), `agent`                | ใช้คลังร่วมกันหนึ่งคลัง หรือคลังย่อยหนึ่งคลังต่อเอเจนต์                                          |
| `vault.path`                               | ค่าเริ่มต้นส่วนกลาง `~/.openclaw/wiki/main`    | พาธคลังที่แน่นอนสำหรับขอบเขตส่วนกลาง ส่วนไดเรกทอรีแม่ของขอบเขตเอเจนต์มีค่าเริ่มต้นเป็น `~/.openclaw/wiki` |
| `vault.renderMode`                         | `native` (ค่าเริ่มต้น), `obsidian`             |                                                                                                  |
| `bridge.readMemoryArtifacts`               | ค่าเริ่มต้น `true`                             | นำเข้าอาร์ติแฟกต์สาธารณะของ Plugin หน่วยความจำที่ใช้งานอยู่                                      |
| `bridge.followMemoryEvents`                | ค่าเริ่มต้น `true`                             | รวมบันทึกเหตุการณ์ในโหมดบริดจ์                                                                  |
| `unsafeLocal.allowPrivateMemoryCoreAccess` | ค่าเริ่มต้น `false`                            | จำเป็นสำหรับเรียกใช้การนำเข้าแบบ `unsafe-local`                                                  |
| `unsafeLocal.paths`                        | ค่าเริ่มต้น `[]`                               | พาธภายในเครื่องที่ระบุอย่างชัดเจนสำหรับนำเข้าในโหมด `unsafe-local`                               |
| `search.backend`                           | `shared` (ค่าเริ่มต้น), `local`                |                                                                                                  |
| `search.corpus`                            | `wiki` (ค่าเริ่มต้น), `memory`, `all`          |                                                                                                  |
| `context.includeCompiledDigestPrompt`      | ค่าเริ่มต้น `false`                            | ต่อท้ายสแนปช็อตสรุปแบบย่อของเอเจนต์ที่เลือกลงในส่วนหน่วยความจำของพรอมต์                          |
| `render.createBacklinks`                   | ค่าเริ่มต้น `true`                             | สร้างบล็อกที่เกี่ยวข้องแบบกำหนดผลลัพธ์แน่นอน                                                     |
| `render.createDashboards`                  | ค่าเริ่มต้น `true`                             | สร้างหน้าแดชบอร์ด                                                                                |

### คลังแยกตามเอเจนต์

ตั้งค่า `vault.scope` เป็น `agent` เพื่อให้เอเจนต์ที่กำหนดค่าไว้แต่ละตัวมีวิกิแยกกัน
ในขอบเขตนี้ `vault.path` คือไดเรกทอรีแม่ และ OpenClaw จะต่อท้ายรหัสเอเจนต์
ที่ปรับให้อยู่ในรูปแบบมาตรฐาน:

```json5
{
  agents: {
    list: [{ id: "support" }, { id: "marketing" }],
  },
  plugins: {
    entries: {
      "memory-wiki": {
        enabled: true,
        config: {
          vaultMode: "bridge",
          vault: {
            scope: "agent",
            path: "~/.openclaw/wiki",
          },
          bridge: {
            enabled: true,
            readMemoryArtifacts: true,
          },
        },
      },
    },
  },
}
```

การกำหนดค่านี้จะแปลงเป็น `~/.openclaw/wiki/support` และ
`~/.openclaw/wiki/marketing` หากละเว้น `vault.path` ในขอบเขตเอเจนต์
ไดเรกทอรีแม่จะมีค่าเริ่มต้นเป็น `~/.openclaw/wiki` ดังนั้นเอเจนต์ `main`
เริ่มต้นจึงยังคงใช้พาธ `~/.openclaw/wiki/main` เดิม

เครื่องมือเอเจนต์ สรุปพรอมต์ที่คอมไพล์ และส่วนเสริมวิกิที่เปิดเผยผ่าน
`memory_search` / `memory_get` จะระบุคลังจากบริบทของเอเจนต์ที่ใช้งานอยู่
สำหรับการเรียกผ่าน CLI และ Gateway ในการตั้งค่าที่มีเอเจนต์หลายตัว
ให้ระบุเอเจนต์อย่างชัดเจนด้วย `openclaw wiki --agent <agentId> ...`
หรือ `agentId` ของคำขอ Gateway หากกำหนดค่าเอเจนต์ไว้เพียงตัวเดียว
เอเจนต์นั้นจะยังคงเป็นค่าเริ่มต้นเมื่อไม่ได้ระบุรหัส

ในโหมดบริดจ์ การนำเข้าในขอบเขตเอเจนต์จะยอมรับอาร์ติแฟกต์หน่วยความจำสาธารณะ
เฉพาะเมื่อ `agentIds` ของอาร์ติแฟกต์นั้นมีเอเจนต์ที่เลือก อาร์ติแฟกต์ที่เป็นของ
เอเจนต์อื่น ไม่มีเมทาดาทาความเป็นเจ้าของ หรือไม่ทราบเจ้าของจะถูกข้าม
ขอบเขตส่วนกลางยังคงใช้ลักษณะการทำงานเดิมสำหรับอาร์ติแฟกต์ที่ใช้ร่วมกัน

<Warning>
การเปลี่ยน `vault.scope` จะไม่คัดลอกหรือแบ่งคลังที่มีอยู่ ในขอบเขตเอเจนต์
`vault.path` ที่กำหนดไว้อย่างชัดเจนจะกลายเป็นไดเรกทอรีแม่ ดังนั้นให้ย้ายหรือ
นำเข้าหน้าที่มีอยู่อย่างรอบคอบก่อนสลับเอเจนต์ที่ใช้งานจริง สำรองข้อมูลคลังก่อน

คลังแยกตามเอเจนต์เป็นขอบเขตความรู้ภายในโปรเซสเดียวกัน ไม่ใช่ขอบเขตความปลอดภัย
ระดับระบบปฏิบัติการ Plugin และเครื่องมือที่ไม่อยู่ในแซนด์บ็อกซ์ซึ่งเข้าถึงระบบไฟล์
ของโฮสต์ได้ยังคงอ่านไดเรกทอรีของเอเจนต์อื่นได้ ใช้
[การทำแซนด์บ็อกซ์](/th/gateway/sandboxing) หรือ
[โปรไฟล์ Gateway แยกกัน](/th/gateway/multiple-gateways) เมื่อเอเจนต์ไม่ไว้วางใจกัน
</Warning>

### ตัวอย่าง: QMD + โหมดบริดจ์

ใช้รูปแบบนี้เมื่อคุณต้องการ QMD สำหรับการเรียกคืน และ `memory-wiki`
สำหรับชั้นความรู้ที่ได้รับการดูแล แต่ละชั้นยังคงมุ่งเน้นหน้าที่ของตน:
QMD ทำให้บันทึกดิบ ข้อมูลส่งออกของเซสชัน และคอลเลกชันเพิ่มเติมค้นหาได้
ขณะที่ `memory-wiki` คอมไพล์เอนทิตี ข้อกล่าวอ้าง แดชบอร์ด และหน้าแหล่งที่มา
ที่มีเสถียรภาพ

```json5
{
  memory: {
    backend: "qmd",
  },
  plugins: {
    entries: {
      "memory-wiki": {
        enabled: true,
        config: {
          vaultMode: "bridge",
          bridge: {
            enabled: true,
            readMemoryArtifacts: true,
            indexDreamReports: true,
            indexDailyNotes: true,
            indexMemoryRoot: true,
            followMemoryEvents: true,
          },
          search: {
            backend: "shared",
            corpus: "all",
          },
          context: {
            includeCompiledDigestPrompt: false,
          },
        },
      },
    },
  },
}
```

การกำหนดค่านี้ทำให้ QMD รับผิดชอบการเรียกคืนหน่วยความจำที่ใช้งานอยู่
ทำให้ `memory-wiki` มุ่งเน้นหน้าที่คอมไพล์และแดชบอร์ด และคงรูปแบบพรอมต์ไว้
โดยไม่เปลี่ยนแปลงจนกว่าคุณจะเปิดใช้พรอมต์สรุปที่คอมไพล์โดยเจตนา

## CLI

```bash
openclaw wiki status
openclaw wiki doctor
openclaw wiki init
openclaw wiki ingest ./notes/alpha.md
openclaw wiki compile
openclaw wiki lint
openclaw wiki search "alpha"
openclaw wiki get entity.alpha
openclaw wiki apply synthesis "Alpha Summary" --body "..." --source-id source.alpha
openclaw wiki bridge import
openclaw wiki obsidian status
```

ดูข้อมูลอ้างอิงคำสั่งฉบับเต็มได้ที่ [CLI: วิกิ](/th/cli/wiki) รวมถึง
`wiki okf import`, `wiki apply metadata`, `wiki unsafe-local import`,
`wiki chatgpt import` / `wiki chatgpt rollback` และชุดคำสั่งย่อย
`wiki obsidian` ทั้งหมด

## การรองรับ Obsidian

เมื่อ `vault.renderMode` เป็น `obsidian` Plugin จะเขียน Markdown
ที่ใช้งานร่วมกับ Obsidian ได้ และสามารถเลือกใช้ CLI `obsidian` อย่างเป็นทางการ
สำหรับตรวจสอบสถานะ ค้นหาคลัง เปิดหน้า เรียกใช้คำสั่ง และไปยังบันทึกประจำวัน
คุณลักษณะนี้เป็นทางเลือก วิกิยังคงทำงานในโหมดเนทีฟได้โดยไม่ต้องใช้ Obsidian

คลังในขอบเขตเอเจนต์ยังคงใช้ Markdown ที่เข้ากันได้กับ Obsidian ได้
แต่การตรวจสอบความถูกต้องของการกำหนดค่าจะปฏิเสธ
`obsidian.useOfficialCli: true` เมื่อใช้ `vault.scope: "agent"`
การตั้งค่า `obsidian.vaultName` ปัจจุบันเป็นแบบส่วนกลางและไม่สามารถเลือก
คลัง Obsidian แยกสำหรับเอเจนต์แต่ละตัวได้ ให้ใช้เครื่องมือวิกิและการดำเนินการ
ผ่าน CLI แทน หรือคงวิกิที่ดำเนินการผ่าน Obsidian ไว้ในขอบเขตส่วนกลาง

## เวิร์กโฟลว์ที่แนะนำ

<Steps>
<Step title="คง Plugin หน่วยความจำที่ใช้งานอยู่ไว้สำหรับการเรียกคืน">
การเรียกคืน การยกระดับ และ Dreaming ยังคงอยู่ภายใต้ความรับผิดชอบของแบ็กเอนด์หน่วยความจำที่กำหนดค่าไว้
</Step>
<Step title="เปิดใช้ memory-wiki">
เริ่มต้นด้วยโหมด `isolated` เว้นแต่คุณต้องการโหมดบริดจ์อย่างชัดเจน
</Step>
<Step title="ใช้ wiki_search / wiki_get เมื่อที่มามีความสำคัญ">
เลือกใช้เครื่องมือเหล่านี้แทน `memory_search` เมื่อคุณต้องการการจัดอันดับเฉพาะวิกิหรือโครงสร้างความเชื่อระดับหน้า
</Step>
<Step title="ใช้ wiki_apply สำหรับการสังเคราะห์หรืออัปเดตเมทาดาทาในขอบเขตจำกัด">
หลีกเลี่ยงการแก้ไขบล็อกที่สร้างและจัดการโดยระบบด้วยตนเอง
</Step>
<Step title="เรียกใช้ wiki_lint หลังการเปลี่ยนแปลงที่มีนัยสำคัญ">
ตรวจจับข้อขัดแย้ง คำถามที่ยังไม่มีคำตอบ และช่องว่างของที่มา
</Step>
<Step title="เปิดแดชบอร์ดเพื่อให้มองเห็นข้อมูลเก่าและข้อขัดแย้ง">
ตั้งค่า `render.createDashboards: true` (ค่าเริ่มต้น)
</Step>
</Steps>

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

- [ภาพรวมหน่วยความจำ](/th/concepts/memory)
- [CLI: หน่วยความจำ](/th/cli/memory)
- [CLI: วิกิ](/th/cli/wiki)
- [ภาพรวม Plugin SDK](/th/plugins/sdk-overview)
