Plugin guides

Plugin พาธ OC

Plugin oc-path ที่มาพร้อมระบบจะเพิ่ม CLI openclaw 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 สำหรับไวยากรณ์ทั้งหมด รายการแฟล็กแยกตามคำสั่ง และตัวอย่างการใช้งานของไฟล์แต่ละประเภท หน้านี้อธิบายเหตุผลและวิธีเปิดใช้ 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] เพื่อไม่ให้การบันทึกเทอร์มินัลและไปป์ไลน์เปิดเผยเครื่องหมายนี้

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

Was this useful?
On this page

On this page