---
read_when:
    - คุณต้องการตรวจสอบหรือแก้ไขข้อมูลปลายทางรายการเดียวภายในไฟล์เวิร์กสเปซจากเทอร์มินัล
    - คุณกำลังเขียนสคริปต์เพื่อทำงานกับสถานะของพื้นที่ทำงาน และต้องการรูปแบบการระบุที่อยู่ที่เสถียรและไม่ขึ้นกับชนิด
    - คุณกำลังตัดสินใจว่าจะเปิดใช้งาน Plugin `oc-path` ซึ่งเป็นตัวเลือกเสริมบน Gateway ที่โฮสต์ด้วยตนเองหรือไม่
summary: 'Plugin `oc-path` ที่รวมมาให้: มาพร้อม CLI `openclaw path` สำหรับรูปแบบการระบุที่อยู่ไฟล์ในเวิร์กสเปซ `oc://`'
title: Plugin พาธ OC
x-i18n:
    generated_at: "2026-07-12T16:28:42Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: eb7bb1aacd37e5cc9c391372b871dc519f4048232d93a0016138ae00a6985a59
    source_path: plugins/oc-path.md
    workflow: 16
---

Plugin `oc-path` ที่มาพร้อมระบบจะเพิ่ม CLI [`openclaw path`](/th/cli/path) สำหรับรูปแบบการระบุตำแหน่งไฟล์ในพื้นที่ทำงานด้วย `oc://` โดยจัดส่งอยู่ใน repo ของ OpenClaw ภายใต้ `extensions/oc-path/` แต่เป็นแบบเลือกเปิดใช้: หลังติดตั้ง/บิลด์ Plugin จะยังไม่ทำงานจนกว่าคุณจะเปิดใช้

ที่อยู่ `oc://` ชี้ไปยังโหนดปลายทางหนึ่งรายการ (หรือชุดโหนดปลายทางที่ตรงกับไวลด์การ์ด) ภายในไฟล์พื้นที่ทำงาน Plugin รองรับไฟล์สี่ประเภท:

- **markdown** (`.md`): frontmatter, ส่วน, รายการ, ฟิลด์
- **jsonc** (`.jsonc`, `.json`): คงความคิดเห็นและการจัดรูปแบบไว้
- **jsonl** (`.jsonl`, `.ndjson`): ระเบียนแบบแยกตามบรรทัด
- **yaml** (`.yaml`, `.yml`, `.lobster`): โหนดแมป/ลำดับ/สเกลาร์ผ่าน API `Document` ของแพ็กเกจ `yaml`

ผู้ดูแลระบบที่โฮสต์เองและส่วนขยายของเอดิเตอร์ใช้ CLI เพื่ออ่านหรือเขียนโหนดปลายทางเพียงรายการเดียวโดยไม่ต้องเขียนสคริปต์เรียก SDK โดยตรง ส่วนเอเจนต์และฮุกใช้เป็นชั้นรองรับที่ให้ผลลัพธ์แน่นอน เพื่อให้การไป-กลับที่รักษาไบต์อย่างเที่ยงตรงและการป้องกันด้วยค่าระบุการปกปิดข้อมูลใช้ได้อย่างสม่ำเสมอกับไฟล์ทุกประเภท โปรดดู [เอกสารอ้างอิง CLI](/th/cli/path) สำหรับไวยากรณ์ทั้งหมด รายการแฟล็กแยกตามคำสั่ง และตัวอย่างการใช้งานของไฟล์แต่ละประเภท หน้านี้อธิบายเหตุผลและวิธีเปิดใช้ Plugin

## เหตุผลที่ควรเปิดใช้

เปิดใช้ `oc-path` เมื่อสคริปต์ ฮุก หรือเครื่องมือเอเจนต์ภายในเครื่องต้องชี้ไปยังส่วนที่เจาะจงของสถานะพื้นที่ทำงาน โดยไม่ต้องมีตัวแยกวิเคราะห์เฉพาะสำหรับรูปแบบไฟล์แต่ละแบบ ที่อยู่ `oc://` เดียวสามารถระบุคีย์ frontmatter ของ markdown, รายการในส่วน, โหนดปลายทางของการกำหนดค่า JSONC, ฟิลด์เหตุการณ์ JSONL หรือขั้นตอนเวิร์กโฟลว์ YAML ได้

สิ่งนี้สำคัญสำหรับเวิร์กโฟลว์ของผู้ดูแลที่ต้องการให้การเปลี่ยนแปลงมีขนาดเล็ก ตรวจสอบย้อนหลังได้ และทำซ้ำได้: ตรวจสอบค่าหนึ่งค่า ค้นหาระเบียนที่ตรงกัน ทดลองเขียนแบบไม่เปลี่ยนแปลงจริง แล้วจึงใช้การเปลี่ยนแปลงเฉพาะกับโหนดปลายทางนั้น โดยไม่กระทบความคิดเห็น อักขระขึ้นบรรทัดใหม่ และการจัดรูปแบบบริเวณใกล้เคียง

เหตุผลทั่วไปที่ควรเปิดใช้:

- **ระบบอัตโนมัติภายในเครื่อง**: สคริปต์เชลล์ค้นหาหรืออัปเดตค่าหนึ่งค่าในพื้นที่ทำงานด้วย `openclaw path … --json` แทนการมีโค้ดแยกวิเคราะห์ markdown, JSONC, JSONL และ YAML แยกกัน
- **การแก้ไขที่เอเจนต์มองเห็นได้**: เอเจนต์แสดง diff จากการทดลองสำหรับโหนดปลายทางที่ระบุหนึ่งรายการก่อนเขียน ซึ่งตรวจสอบได้ง่ายกว่าการเขียนไฟล์ใหม่แบบอิสระ
- **การผสานรวมกับเอดิเตอร์**: เอดิเตอร์แมป `oc://AGENTS.md/tools/gh` ไปยังโหนด markdown และหมายเลขบรรทัดที่แน่นอน โดยไม่ต้องคาดเดาจากข้อความหัวข้อ
- **การวินิจฉัย**: `emit` ส่งไฟล์ผ่านตัวแยกวิเคราะห์และตัวสร้างผลลัพธ์แบบไป-กลับ เพื่อให้คุณตรวจสอบได้ว่าไฟล์ประเภทนั้นคงไบต์เดิมได้หรือไม่ ก่อนพึ่งพาการแก้ไขอัตโนมัติ

```bash
# Is the GitHub plugin enabled in this config?
openclaw path resolve 'oc://config.jsonc/plugins/github/enabled' --json

# Which tool-call names appear in this session log?
openclaw path find 'oc://session.jsonl/[event=tool_call]/name' --json

# What bytes would this tiny config edit write?
openclaw path set 'oc://config.jsonc/plugins/github/enabled' 'true' --dry-run
```

`oc-path` ตั้งใจไม่เป็นเจ้าของความหมายเชิงระดับสูง Plugin หน่วยความจำยังคงเป็นเจ้าของการเขียนหน่วยความจำ คำสั่งการกำหนดค่ายังคงเป็นเจ้าของการจัดการการกำหนดค่าทั้งหมด และการกู้คืนการกำหนดค่าที่ใช้งานได้ล่าสุด (LKG) ยังคงเป็นเจ้าของการคืนค่า/เลื่อนสถานะ `oc-path` เป็นชั้นการระบุตำแหน่งแบบเจาะจงและการดำเนินการกับไฟล์โดยรักษาไบต์ ซึ่งเครื่องมือระดับสูงเหล่านั้นสามารถสร้างการทำงานครอบไว้ได้

## ตำแหน่งที่ทำงาน

Plugin ทำงาน **ภายในโปรเซสของ CLI `openclaw`** บนโฮสต์ที่คุณเรียกใช้คำสั่ง ไม่จำเป็นต้องมี Gateway ที่กำลังทำงานและไม่เปิดซ็อกเก็ตเครือข่าย คำสั่งทุกคำสั่งเป็นการแปลงไฟล์ที่คุณระบุโดยไม่มีผลข้างเคียงอื่น

ข้อมูลเมตาของ Plugin อยู่ใน `extensions/oc-path/openclaw.plugin.json`:

```json
{
  "id": "oc-path",
  "name": "OC Path",
  "activation": {
    "onStartup": false,
    "onCommands": ["path"]
  },
  "commandAliases": [{ "name": "path", "kind": "cli" }]
}
```

`onStartup: false` ทำให้ Plugin ไม่อยู่ในเส้นทางเริ่มต้นของ Gateway ส่วน `commandAliases` และ `activation.onCommands` กำหนดให้ CLI โหลด Plugin แบบหน่วงเวลาเมื่อคุณเรียกใช้ `openclaw path …` ครั้งแรก ดังนั้นการติดตั้งที่ไม่เคยใช้คำสั่งนี้จึงไม่มีต้นทุนเพิ่ม

## การเปิดใช้

```bash
openclaw plugins enable oc-path
```

เริ่ม Gateway ใหม่ (หากคุณใช้งานอยู่) เพื่อให้สแนปช็อตของแมนิเฟสต์รับสถานะใหม่ การเรียก `openclaw path` โดยตรงจะทำงานทันทีบนโฮสต์เดียวกัน โดย CLI จะโหลด Plugin เมื่อต้องการ

ปิดใช้ด้วย:

```bash
openclaw plugins disable oc-path
```

## การขึ้นต่อกัน

การขึ้นต่อกันของตัวแยกวิเคราะห์ทั้งหมดอยู่ภายใน Plugin การเปิดใช้ `oc-path` จะไม่ดึงแพ็กเกจใหม่เข้าสู่รันไทม์หลัก:

| การขึ้นต่อกัน     | วัตถุประสงค์                                                                |
| -------------- | ---------------------------------------------------------------------- |
| `commander`    | เชื่อมโยงคำสั่งย่อยสำหรับ `resolve`, `find`, `set`, `validate`, `emit` |
| `jsonc-parser` | แยกวิเคราะห์ JSONC และแก้ไขโหนดปลายทางโดยคงความคิดเห็นและจุลภาคท้ายไว้ |
| `markdown-it`  | แบ่ง markdown เป็นโทเค็นสำหรับโมเดลส่วน / รายการ / ฟิลด์ |
| `yaml`         | แยกวิเคราะห์ / สร้างผลลัพธ์ / แก้ไข `Document` ของ YAML โดยคงความคิดเห็นและรูปแบบโฟลว์ไว้ |

JSONL ยังคงใช้การเขียนขึ้นเอง: การแยกวิเคราะห์ตามบรรทัดเรียบง่ายกว่าการใช้การขึ้นต่อกันใด ๆ และการแยกวิเคราะห์แต่ละบรรทัดก็ผ่าน `jsonc-parser` อยู่แล้ว

## สิ่งที่มีให้

| พื้นผิว                        | จัดเตรียมโดย                                             |
| ------------------------------ | ------------------------------------------------------- |
| CLI `openclaw path`            | `extensions/oc-path/cli-registration.ts`                |
| ตัวแยกวิเคราะห์ / ตัวจัดรูปแบบ `oc://` | `extensions/oc-path/src/oc-path/oc-path.ts`             |
| การแยกวิเคราะห์ / สร้างผลลัพธ์ / แก้ไขแยกตามประเภท | `extensions/oc-path/src/oc-path/{md,jsonc,jsonl,yaml}`  |
| การค้นหาตำแหน่ง / ค้นหา / ตั้งค่าแบบสากล | `extensions/oc-path/src/oc-path/{resolve,find,edit}.ts` |
| การป้องกันด้วยค่าระบุการปกปิดข้อมูล | `extensions/oc-path/src/oc-path/sentinel.ts`            |

ปัจจุบัน CLI เป็นพื้นผิวสาธารณะเพียงอย่างเดียว คำสั่งของชั้นรองรับเป็นส่วนตัวภายใน Plugin ผู้ใช้บริการใช้ CLI (หรือสร้าง Plugin ของตนเองโดยอิง SDK)

## ความสัมพันธ์กับ Plugin อื่น

- **`memory-*`**: การเขียนหน่วยความจำดำเนินการผ่าน Plugin หน่วยความจำ ไม่ใช่ `oc-path` โดย `oc-path` เป็นชั้นรองรับไฟล์ทั่วไป ส่วน Plugin หน่วยความจำจะเพิ่มความหมายเฉพาะของตนไว้ด้านบน
- **LKG**: `path` ไม่รับรู้การคืนค่าการกำหนดค่าที่ใช้งานได้ล่าสุด หากไฟล์ที่คุณแก้ไขผ่าน `path` ถูกติดตามโดย LKG ด้วย รอบสังเกตการกำหนดค่าครั้งถัดไปจะตัดสินใจว่าจะเลื่อนสถานะหรือกู้คืนไฟล์นั้น ให้ถือว่าการแก้ไขด้วย `path` เหมือนกับการเขียนไฟล์นั้นโดยตรงด้วยวิธีอื่น

## ความปลอดภัย

`set` เขียนไบต์ดิบผ่านเส้นทางสร้างผลลัพธ์ของชั้นรองรับ ซึ่งใช้การป้องกันด้วยค่าระบุการปกปิดข้อมูลโดยอัตโนมัติ โหนดปลายทางที่มี `__OPENCLAW_REDACTED__` (ตรงตามตัวอักษรหรือเป็นส่วนหนึ่งของข้อความ) จะถูกปฏิเสธขณะเขียนด้วย `OC_EMIT_SENTINEL` นอกจากนี้ CLI ยังล้างค่าระบุดังกล่าวออกจากผลลัพธ์สำหรับมนุษย์หรือ JSON ทุกชนิดที่แสดง โดยแทนที่ด้วย `[REDACTED]` เพื่อไม่ให้การบันทึกเทอร์มินัลและไปป์ไลน์เปิดเผยเครื่องหมายนี้

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

- [เอกสารอ้างอิง CLI `openclaw path`](/th/cli/path)
- [จัดการ Plugin](/th/plugins/manage-plugins)
- [การสร้าง Plugin](/th/plugins/building-plugins)
