---
doc-schema-version: 1
read_when:
    - การติดตั้งหรือกำหนดค่า Plugin
    - ทำความเข้าใจกฎการค้นหาและการโหลด Plugin
    - การทำงานกับชุด Plugin ที่เข้ากันได้กับ Codex/Claude
sidebarTitle: Getting Started
summary: ติดตั้ง กำหนดค่า และจัดการ Plugin ของ OpenClaw
title: Plugin
x-i18n:
    generated_at: "2026-07-19T07:32:27Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: f210dccab059527192eeb0aa2e780dcea243959273938ffaacc867ec96f5085e
    source_path: tools/plugin.md
    workflow: 16
---

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

ใช้หน้านี้เพื่อติดตั้ง Plugin รีสตาร์ท Gateway ตรวจสอบว่ารันไทม์
โหลด Plugin แล้ว และแก้ไขความล้มเหลวในการตั้งค่าที่พบบ่อย สำหรับตัวอย่างที่มีเฉพาะคำสั่ง โปรดดู
[จัดการ Plugins](/th/plugins/manage-plugins) สำหรับรายการที่สร้างขึ้นของ
Plugins แบบบันเดิล ภายนอกที่เป็นทางการ และแบบซอร์สเท่านั้น โปรดดู
[รายการ Plugins](/th/plugins/plugin-inventory)

## ข้อกำหนด

- เช็กเอาต์หรือการติดตั้ง OpenClaw ที่พร้อมใช้งาน `openclaw` CLI
- การเข้าถึงเครือข่ายไปยังแหล่งที่เลือก (ClawHub, npm หรือโฮสต์ git)
- ข้อมูลประจำตัว คีย์การกำหนดค่า หรือเครื่องมือระบบปฏิบัติการเฉพาะ Plugin ใดๆ ที่ระบุไว้ใน
  เอกสารการตั้งค่าของ Plugin นั้น
- สิทธิ์เพื่อให้ Gateway ที่ให้บริการช่องทางของคุณโหลดใหม่หรือรีสตาร์ท

## เริ่มต้นอย่างรวดเร็ว

<Steps>
  <Step title="ค้นหา Plugin">
    ค้นหาแพ็กเกจ Plugin สาธารณะใน [ClawHub](/clawhub):

    ```bash
    openclaw plugins search "calendar"
    ```

    ClawHub เป็นช่องทางหลักในการค้นหา Plugins จากชุมชน ระหว่างช่วง
    เปลี่ยนผ่านการเปิดตัว ข้อกำหนดแพ็กเกจแบบเปล่าทั่วไปจะยังติดตั้งจาก npm เว้นแต่
    จะตรงกับ id ของ Plugin อย่างเป็นทางการ ข้อกำหนด `@openclaw/*` แบบดิบที่ตรงกับ
    Plugin แบบบันเดิลจะถูกแก้เป็นสำเนาแบบบันเดิลนั้น ใช้คำนำหน้าแหล่งที่มาแบบชัดเจน
    เมื่อต้องการระบุแหล่งใดแหล่งหนึ่งโดยเฉพาะ

  </Step>

  <Step title="ติดตั้ง Plugin">
    ```bash
    # จาก ClawHub
    openclaw plugins install clawhub:<package>

    # จาก npm
    openclaw plugins install npm:<package>

    # จาก git
    openclaw plugins install git:github.com/<owner>/<repo>@<ref>

    # จากเช็กเอาต์สำหรับการพัฒนาในเครื่อง
    openclaw plugins install ./my-plugin
    openclaw plugins install --link ./my-plugin
    ```

    ให้ถือว่าการติดตั้ง Plugin เป็นการเรียกใช้โค้ด ควรใช้เวอร์ชันที่ปักหมุดไว้สำหรับ
    การติดตั้งในระบบใช้งานจริงที่ทำซ้ำได้ แพ็กเกจ ClawHub และแค็ตตาล็อก
    แบบบันเดิล/อย่างเป็นทางการของ OpenClaw เป็นแหล่งที่เชื่อถือได้ แหล่ง npm, git
    พาธ/อาร์ไคฟ์ในเครื่อง, `npm-pack:` หรือตลาดกลางใหม่ใดๆ ที่กำหนดเอง ต้องใช้
    `--force` ในการติดตั้งแบบไม่โต้ตอบ หลังจาก
    คุณตรวจสอบและเชื่อถือแหล่งที่มาแล้ว

  </Step>

  <Step title="กำหนดค่าและเปิดใช้งาน">
    กำหนดการตั้งค่าเฉพาะ Plugin ภายใต้ `plugins.entries.<id>.config`
    เปิดใช้งาน Plugin หากยังไม่ได้เปิดใช้งาน:

    ```bash
    openclaw plugins enable <plugin-id>
    ```

    หากตั้งค่า `plugins.allow` ไว้ id ของ Plugin ที่ติดตั้งต้องอยู่ในรายการนั้น
    ก่อนที่ Plugin จะโหลดได้ `openclaw plugins install` จะเพิ่ม
    id ที่ติดตั้งลงในรายการ `plugins.allow` ที่มีอยู่ และลบ id เดียวกันออกจาก
    `plugins.deny` เพื่อให้การติดตั้งแบบชัดเจนโหลดได้หลังรีสตาร์ท

  </Step>

  <Step title="ให้ Gateway โหลดใหม่">
    การติดตั้ง อัปเดต หรือถอนการติดตั้งโค้ด Plugin ต้องรีสตาร์ท Gateway
    Gateway ที่มีการจัดการและเปิดใช้การโหลดการกำหนดค่าใหม่จะตรวจพบ
    ระเบียนการติดตั้ง Plugin ที่เปลี่ยนแปลงและรีสตาร์ทโดยอัตโนมัติ มิฉะนั้นให้รีสตาร์ท
    ด้วยตนเอง:

    ```bash
    openclaw gateway restart
    ```

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

  </Step>

  <Step title="ตรวจสอบการลงทะเบียนรันไทม์">
    ```bash
    openclaw plugins inspect <plugin-id> --runtime --json
    ```

    ใช้ `--runtime` เพื่อยืนยันเครื่องมือ ฮุก บริการ เมธอดของ Gateway
    หรือคำสั่ง CLI ที่ Plugin เป็นเจ้าของซึ่งลงทะเบียนแล้ว `inspect` แบบธรรมดาเป็นเพียงการตรวจสอบ
    แมนิเฟสต์แบบเย็นและรีจิสทรีเท่านั้น

  </Step>
</Steps>

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

### เลือกแหล่งติดตั้ง

| แหล่งที่มา  | ใช้เมื่อ                                                                         | ตัวอย่าง                                                        |
| ----------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------- |
| ClawHub     | ต้องการการค้นหาแบบเนทีฟของ OpenClaw การสแกน ข้อมูลเมตาของเวอร์ชัน และคำแนะนำการติดตั้ง | `openclaw plugins install clawhub:<package>`                   |
| npm         | ต้องการเวิร์กโฟลว์รีจิสทรี npm หรือ dist-tag โดยตรง                             | `openclaw plugins install npm:<package>`                       |
| git         | ต้องการบรานช์ แท็ก หรือคอมมิตจากรีโพซิทอรี                                     | `openclaw plugins install git:github.com/<owner>/<repo>@<ref>` |
| พาธในเครื่อง | กำลังพัฒนาหรือทดสอบ Plugin บนเครื่องเดียวกัน                                  | `openclaw plugins install --link ./my-plugin`                  |
| ตลาดกลาง | กำลังติดตั้ง Plugin จากตลาดกลางที่เข้ากันได้กับ Claude                            | `openclaw plugins install <plugin> --marketplace <source>`     |

ข้อกำหนดแพ็กเกจแบบเปล่ามีพฤติกรรมความเข้ากันได้เป็นพิเศษ: ชื่อแบบเปล่าที่
ตรงกับ id ของ Plugin แบบบันเดิลจะใช้แหล่งแบบบันเดิลนั้น ชื่อแบบเปล่าที่ตรงกับ
id ของ Plugin ภายนอกอย่างเป็นทางการจะใช้แค็ตตาล็อกแพ็กเกจอย่างเป็นทางการ ส่วน
ข้อกำหนดแบบเปล่าอื่นๆ จะติดตั้งผ่าน npm ระหว่างช่วงเปลี่ยนผ่านการเปิดตัว ข้อกำหนด `@openclaw/*`
แบบดิบที่ตรงกับ Plugins แบบบันเดิลจะถูกแก้เป็นสำเนาแบบบันเดิลก่อน
ย้อนกลับไปใช้ npm เช่นกัน ใช้ `npm:@openclaw/<plugin>@<version>` เพื่อตั้งใจติดตั้ง
แพ็กเกจ npm ภายนอกแทนสำเนาแบบบันเดิล ใช้ `clawhub:`, `npm:`,
`git:` หรือ `npm-pack:` เพื่อเลือกแหล่งที่มาแบบกำหนดผลได้แน่นอน โปรดดู
[`openclaw plugins`](/th/cli/plugins#install) สำหรับสัญญาคำสั่งฉบับเต็ม

สำหรับการติดตั้ง npm ข้อกำหนดที่ไม่ได้ปักหมุดและ `@latest` จะเลือกแพ็กเกจ
เสถียรล่าสุดที่ประกาศความเข้ากันได้กับบิลด์ OpenClaw นี้ หากรีลีสล่าสุด
ในปัจจุบันของ npm ประกาศ `openclaw.compat.pluginApi` หรือ
`openclaw.install.minHostVersion` ที่ใหม่กว่าที่บิลด์นี้รองรับ OpenClaw จะสแกน
เวอร์ชันเสถียรที่เก่ากว่าและติดตั้งเวอร์ชันใหม่ที่สุดที่เข้ากันได้ เวอร์ชันที่ระบุแน่นอน
และแท็กช่องทางแบบชัดเจน เช่น `@beta` จะยังคงปักหมุดกับแพ็กเกจที่เลือก
และล้มเหลวเมื่อเข้ากันไม่ได้

### นโยบายการติดตั้งของผู้ดำเนินการ

กำหนดค่า `security.installPolicy` เพื่อเรียกใช้คำสั่งนโยบายในเครื่องที่เชื่อถือได้
ก่อนดำเนินการติดตั้งหรืออัปเดต Plugin นโยบายจะรับข้อมูลเมตาพร้อม
พาธแหล่งที่มาที่จัดเตรียมไว้ และสามารถอนุญาตหรือบล็อกการติดตั้งได้ นโยบายครอบคลุมทั้งเส้นทาง
ติดตั้ง/อัปเดตผ่าน CLI และ Gateway ฮุก `before_install` ของ Plugin จะทำงาน
ภายหลัง และเฉพาะในกระบวนการ OpenClaw ที่โหลดฮุกของ Plugin แล้วเท่านั้น ดังนั้นให้ใช้
`security.installPolicy` สำหรับการตัดสินใจติดตั้งที่ผู้ดำเนินการเป็นเจ้าของแทน แฟล็ก
`--dangerously-force-unsafe-install` ที่เลิกใช้แล้วได้รับการยอมรับเพื่อ
ความเข้ากันได้ แต่ไม่มีผล: แฟล็กนี้ไม่ข้ามนโยบายการติดตั้งหรือรายการปฏิเสธ
การขึ้นต่อกันของ Plugin ที่ติดตั้งมากับ OpenClaw

โปรดดู [การกำหนดค่า Skills](/th/tools/skills-config#operator-install-policy-securityinstallpolicy)
สำหรับสคีมา exec ของ `security.installPolicy` ที่ใช้ร่วมกันโดยทั้ง Skills และ
Plugins

### กำหนดค่านโยบาย Plugin

รูปแบบการกำหนดค่า Plugin ทั่วไปคือ:

```json5
{
  plugins: {
    enabled: true,
    allow: ["voice-call"],
    deny: ["untrusted-plugin"],
    load: { paths: ["~/Projects/oss/voice-call-plugin"] },
    slots: { memory: "memory-core" },
    entries: {
      "voice-call": { enabled: true, config: { provider: "twilio" } },
    },
  },
}
```

กฎนโยบายสำคัญ:

- `plugins.enabled: false` ปิดใช้งาน Plugins ทั้งหมดและข้ามงานค้นหา/โหลด
  การอ้างอิง Plugin ที่ล้าสมัยจะไม่ทำงานขณะเปิดใช้งานค่านี้ เปิดใช้งาน
  Plugins อีกครั้งก่อนเรียกใช้การล้างข้อมูลของ doctor หากต้องการลบ id ที่ล้าสมัย
- `plugins.deny` มีลำดับความสำคัญเหนือรายการอนุญาตและการเปิดใช้งานต่อ Plugin
- `plugins.allow` เป็นรายการอนุญาตแบบเอกสิทธิ์ เครื่องมือที่ Plugin เป็นเจ้าของซึ่งอยู่นอก
  รายการอนุญาตจะยังไม่พร้อมใช้งาน แม้ว่า `tools.allow` จะมี `"*"`
- `plugins.entries.<id>.enabled: false` ปิดใช้งาน Plugin หนึ่งรายการโดยยังคง
  การกำหนดค่าไว้
- `plugins.load.paths` เพิ่มไฟล์หรือไดเรกทอรี Plugin ในเครื่องแบบชัดเจน
  พาธในเครื่อง `plugins install` ที่มีการจัดการต้องเป็นไดเรกทอรีหรือ
  อาร์ไคฟ์ของ Plugin ให้ใช้ `plugins.load.paths` สำหรับไฟล์ Plugin แบบเดี่ยว
- Plugins ที่มาจากเวิร์กสเปซจะถูกปิดใช้งานโดยค่าเริ่มต้น ให้เปิดใช้งานหรือ
  เพิ่มลงในรายการอนุญาตอย่างชัดเจนก่อนใช้โค้ดเวิร์กสเปซในเครื่อง
- Plugins แบบบันเดิลจะเป็นไปตามข้อมูลเมตาเปิดตามค่าเริ่มต้น/ปิดตามค่าเริ่มต้นที่ติดตั้งมา
  เว้นแต่การกำหนดค่าจะเขียนทับไว้อย่างชัดเจน
- `plugins.slots.<slot>` (`memory` หรือ `contextEngine`) เลือก Plugin หนึ่งรายการสำหรับ
  หมวดหมู่แบบเอกสิทธิ์ การเลือกสล็อตนับเป็นการเปิดใช้งานอย่างชัดเจน และ
  บังคับเปิดใช้งาน Plugin ที่เลือกสำหรับสล็อตนั้น แม้ว่าในกรณีอื่นจะ
  ต้องเลือกเข้าร่วมก็ตาม `plugins.deny` และ `plugins.entries.<id>.enabled: false` ยังคง
  บล็อก Plugin นั้น
- Plugins แบบบันเดิลที่ต้องเลือกเข้าร่วมสามารถเปิดใช้งานโดยอัตโนมัติเมื่อการกำหนดค่าระบุหนึ่งใน
  พื้นผิวที่ Plugins นั้นเป็นเจ้าของ เช่น การอ้างอิงผู้ให้บริการ/โมเดล การกำหนดค่าช่องทาง แบ็กเอนด์ CLI
  หรือรันไทม์ระบบควบคุมเอเจนต์
- การกำหนดเส้นทาง Codex ในตระกูล OpenAI จะแยกขอบเขต Plugin ของผู้ให้บริการและรันไทม์
  ออกจากกัน: การอ้างอิงโมเดล Codex แบบเดิมเป็นการกำหนดค่าเดิมที่ doctor ซ่อมแซม
  ขณะที่ Plugin `codex` แบบบันเดิลเป็นเจ้าของรันไทม์เซิร์ฟเวอร์แอป Codex สำหรับ
  การอ้างอิงเอเจนต์ `openai/*` แบบมาตรฐาน, `agentRuntime.id: "codex"` แบบชัดเจน และ
  การอ้างอิง `codex/*` แบบเดิม

เมื่อไม่ได้ตั้งค่า `plugins.allow` และมีการค้นพบ Plugins ที่ไม่ใช่แบบบันเดิลโดยอัตโนมัติจาก
เวิร์กสเปซหรือรูท Plugin ส่วนกลาง บันทึกการเริ่มต้นจะแสดง
`plugins.allow is empty; discovered non-bundled plugins may auto-load: ...`
พร้อม id ของ Plugins ที่ค้นพบ และสำหรับรายการสั้นๆ จะแสดงส่วนย่อย `plugins.allow`
แบบขั้นต่ำ เรียกใช้ [`openclaw plugins list --enabled --verbose`](/th/cli/plugins#list)
หรือ [`openclaw plugins inspect <id>`](/th/cli/plugins#inspect) กับ id ของ
Plugin ที่ระบุ ก่อนคัดลอก Plugins ที่เชื่อถือได้ลงใน `openclaw.json` การปักหมุด
ความเชื่อถือแบบเดียวกันนี้ใช้เมื่อการวินิจฉัยแจ้งว่า Plugin โหลด
`without install/load-path provenance`: ตรวจสอบ id ของ Plugin นั้น แล้วปักหมุดไว้ใน
`plugins.allow` หรือติดตั้งใหม่จากแหล่งที่เชื่อถือได้ เพื่อให้ OpenClaw บันทึก
ที่มาของการติดตั้ง

เรียกใช้ `openclaw doctor` หรือ `openclaw doctor --fix` เมื่อการตรวจสอบความถูกต้องของการกำหนดค่า
รายงาน id ของ Plugin ที่ล้าสมัย รายการอนุญาต/เครื่องมือไม่ตรงกัน หรือพาธ Plugin
แบบบันเดิลเดิม

## ทำความเข้าใจรูปแบบ Plugin

OpenClaw รองรับ Plugin สองรูปแบบ:

| รูปแบบ                 | วิธีโหลด                                                                    | ใช้เมื่อ                                                               |
| ---------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| Plugin แบบเนทีฟของ OpenClaw | `openclaw.plugin.json` พร้อมโมดูลรันไทม์ที่โหลดภายในกระบวนการ               | กำลังติดตั้งหรือสร้างความสามารถรันไทม์เฉพาะ OpenClaw  |
| บันเดิลที่เข้ากันได้      | เลย์เอาต์ Plugin ของ Codex, Claude หรือ Cursor ที่แมปเข้าสู่รายการ Plugin ของ OpenClaw | กำลังนำ Skills คำสั่ง ฮุก หรือข้อมูลเมตาบันเดิลที่เข้ากันได้มาใช้ซ้ำ |

ทั้งสองรูปแบบปรากฏใน `openclaw plugins list`, `openclaw plugins inspect`,
`openclaw plugins enable` และ `openclaw plugins disable` โปรดดู
[บันเดิล Plugin](/th/plugins/bundles) สำหรับขอบเขตความเข้ากันได้ของบันเดิล และ
[การสร้าง Plugins](/th/plugins/building-plugins) สำหรับการสร้าง Plugin แบบเนทีฟ

## ฮุกของ Plugin

Plugins สามารถลงทะเบียนฮุกที่รันไทม์ผ่าน API สองแบบที่แตกต่างกัน:

- `api.on(...)` ฮุกแบบมีชนิดสำหรับเหตุการณ์วงจรชีวิตของรันไทม์ นี่คือ
  พื้นผิวที่แนะนำสำหรับมิดเดิลแวร์ นโยบาย การเขียนข้อความใหม่ การปรับรูปแบบพรอมป์ต์
  และการควบคุมเครื่องมือ
- `api.registerHook(...)` สำหรับระบบฮุกภายในที่อธิบายไว้ใน
  [ฮุก](/th/automation/hooks) ซึ่งมีไว้สำหรับผลข้างเคียงระดับกว้างของคำสั่ง/วงจรชีวิต
  และความเข้ากันได้กับระบบอัตโนมัติแบบ HOOK ที่มีอยู่เป็นหลัก

กฎโดยสรุป: หากตัวจัดการต้องใช้ลำดับความสำคัญ ซีแมนทิกส์การผสาน หรือ
พฤติกรรมบล็อก/ยกเลิก ให้ใช้ฮุกแบบมีชนิด หากเพียงตอบสนองต่อ `command:new`,
`command:reset`, `message:sent` หรือเหตุการณ์ระดับกว้างที่คล้ายกัน `api.registerHook`
ก็เพียงพอ

ฮุกภายในที่ Plugin จัดการจะแสดงใน `openclaw hooks list` พร้อม
`plugin:<id>` คุณไม่สามารถเปิดหรือปิดใช้งานฮุกเหล่านั้นผ่าน `openclaw hooks`;
ให้เปิดหรือปิดใช้งาน Plugin แทน

## ตรวจสอบ Gateway ที่ใช้งานอยู่

`openclaw plugins list` และ `openclaw plugins inspect` แบบธรรมดาจะอ่านการกำหนดค่า สถานะไฟล์ manifest และรีจิสทรีแบบ cold แต่ไม่ได้พิสูจน์ว่า Gateway ที่กำลังทำงานได้นำเข้าโค้ด Plugin เดียวกันแล้ว

เมื่อ Plugin แสดงว่าติดตั้งแล้ว แต่การรับส่งข้อมูลแชตสดไม่ได้ใช้งาน:

```bash
openclaw gateway status --deep --require-rpc
openclaw plugins inspect <plugin-id> --runtime --json
openclaw gateway restart
```

Gateway ที่มีการจัดการจะรีสตาร์ตโดยอัตโนมัติหลังการติดตั้ง อัปเดต และถอนการติดตั้ง Plugin ซึ่งเปลี่ยนแปลงซอร์สของ Plugin สำหรับการติดตั้งบน VPS หรือคอนเทนเนอร์ โปรดตรวจสอบว่าการรีสตาร์ตด้วยตนเองมุ่งไปที่โปรเซสลูก `openclaw gateway run` จริงที่ให้บริการช่องทางของคุณ ไม่ใช่เพียงตัวห่อหุ้มหรือตัวควบคุมโปรเซส

## การแก้ไขปัญหา

| อาการ                                                        | ตรวจสอบ                                                                                                                                      | วิธีแก้ไข                                                                                                     |
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |
| Plugin ปรากฏใน `plugins list` แต่ฮุกขณะรันไทม์ไม่ทำงาน  | ใช้ `openclaw plugins inspect <id> --runtime --json` และยืนยัน Gateway ที่ใช้งานอยู่ด้วย `gateway status --deep --require-rpc`             | รีสตาร์ต Gateway ที่ใช้งานจริงหลังการติดตั้ง อัปเดต เปลี่ยนการกำหนดค่า หรือเปลี่ยนซอร์ส                               |
| มีข้อความวินิจฉัยการเป็นเจ้าของช่องทางหรือเครื่องมือซ้ำ         | เรียกใช้ `openclaw plugins list --enabled --verbose` ตรวจสอบ Plugin แต่ละรายการที่สงสัยด้วย `--runtime --json` และเปรียบเทียบการเป็นเจ้าของช่องทาง/เครื่องมือ | ปิดใช้งานเจ้าของหนึ่งรายการ ลบการติดตั้งที่ล้าสมัย หรือใช้ `preferOver` ใน manifest สำหรับการแทนที่โดยเจตนา      |
| การกำหนดค่าระบุว่าไม่มี Plugin                                | ตรวจสอบ [รายการ Plugin](/th/plugins/plugin-inventory) ว่าเป็น Plugin ที่รวมมาให้ Plugin ภายนอกอย่างเป็นทางการ หรือมีเฉพาะซอร์ส                           | ติดตั้งแพ็กเกจภายนอก เปิดใช้งาน Plugin ที่รวมมาให้ หรือลบการกำหนดค่าที่ล้าสมัย                         |
| การกำหนดค่าไม่ถูกต้องระหว่างการติดตั้ง                               | อ่านข้อความตรวจสอบความถูกต้องและเรียกใช้ `openclaw doctor --fix` หากข้อความชี้ไปยังสถานะ Plugin ที่ล้าสมัย                                             | Doctor สามารถกักกันการกำหนดค่า Plugin ที่ไม่ถูกต้องได้โดยปิดใช้งานรายการและนำเพย์โหลดที่ไม่ถูกต้องออก     |
| พาธ Plugin ถูกบล็อกเนื่องจากการเป็นเจ้าของหรือสิทธิ์ที่น่าสงสัย | ตรวจสอบข้อความวินิจฉัยก่อนข้อผิดพลาดการกำหนดค่า                                                                                             | แก้ไขการเป็นเจ้าของ/สิทธิ์ของระบบไฟล์ แล้วเรียกใช้ `openclaw plugins registry --refresh`                    |
| `OPENCLAW_NIX_MODE=1` บล็อกคำสั่งวงจรชีวิต                | ยืนยันว่าการติดตั้งได้รับการจัดการโดย Nix                                                                                                      | เปลี่ยนการเลือก Plugin ในซอร์ส Nix แทนการใช้คำสั่งแก้ไข Plugin                      |
| การนำเข้าดีเพนเดนซีล้มเหลวขณะรันไทม์                             | ตรวจสอบว่า Plugin ติดตั้งผ่าน npm/git/ClawHub หรือโหลดจากพาธภายในเครื่อง                                                 | เรียกใช้ `openclaw plugins update <id>` ติดตั้งซอร์สใหม่ หรือติดตั้งดีเพนเดนซีของ Plugin ภายในเครื่องด้วยตนเอง |

เมื่อ Plugin ที่มีการจัดการและเปิดใช้งานอยู่ตรวจสอบเพย์โหลดไม่ผ่านระหว่างการเริ่มต้น Gateway OpenClaw จะกักกันรูทของ Plugin ที่ติดตั้งรายการนั้นโดยเฉพาะสำหรับการบูตครั้งนั้น และให้บริการ Plugin อื่นต่อไป `openclaw status --all`, `openclaw health` และ `openclaw doctor` จะรายงานเป็น `configured-unavailable` แก้ไขหรือติดตั้ง Plugin ใหม่ แล้วรีสตาร์ต Gateway การแทนที่ `plugins.load.paths` ที่ระบุอย่างชัดเจนและทำงานปกติซึ่งมีรหัส Plugin เดียวกันจะไม่ถูกกักกันเพราะการติดตั้งเก่าที่เสียหาย

เมื่อการกำหนดค่า Plugin ที่ล้าสมัยยังคงระบุชื่อ Plugin ช่องทางที่ค้นหาไม่พบแล้ว การตรวจสอบความถูกต้องของการกำหนดค่าจะลดระดับคีย์ช่องทางนั้นเป็นคำเตือนแทนความล้มเหลวร้ายแรง เพื่อให้ Gateway ยังสามารถเริ่มต้นและให้บริการช่องทางอื่นทั้งหมดได้ เรียกใช้ `openclaw doctor --fix` เพื่อลบรายการ Plugin และช่องทางที่ล้าสมัย คีย์ช่องทางที่ไม่รู้จักและไม่มีหลักฐานว่าเป็น Plugin ที่ล้าสมัยจะยังคงทำให้การตรวจสอบความถูกต้องล้มเหลว เพื่อให้ข้อผิดพลาดจากการพิมพ์ยังมองเห็นได้

สำหรับการแทนที่ช่องทางโดยเจตนา Plugin ที่ต้องการควรประกาศ `channelConfigs.<channel-id>.preferOver` พร้อมรหัส Plugin รุ่นเก่าหรือที่มีลำดับความสำคัญต่ำกว่า หาก Plugin ทั้งสองถูกเปิดใช้งานอย่างชัดเจน OpenClaw จะคงคำขอนั้นไว้และรายงานข้อความวินิจฉัยช่องทาง/เครื่องมือซ้ำ แทนที่จะเลือกเจ้าของรายการหนึ่งโดยไม่แจ้งให้ทราบ

หากแพ็กเกจที่ติดตั้งรายงานว่า `requires compiled runtime output for
TypeScript entry ...` แสดงว่าแพ็กเกจถูกเผยแพร่โดยไม่มีไฟล์ JavaScript ที่ OpenClaw ต้องใช้ขณะรันไทม์ ให้อัปเดตหรือติดตั้งใหม่หลังจากผู้เผยแพร่จัดส่ง JavaScript ที่คอมไพล์แล้ว หรือปิดใช้งาน/ถอนการติดตั้ง Plugin จนกว่าจะถึงเวลานั้น

### การเป็นเจ้าของพาธ Plugin ที่ถูกบล็อก

หากข้อความวินิจฉัยระบุว่า
`blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)`
และการตรวจสอบความถูกต้องตามมาด้วย `plugin present but blocked` แสดงว่า OpenClaw พบไฟล์ Plugin ที่ผู้ใช้ Unix คนละรายกับโปรเซสที่กำลังโหลดไฟล์เหล่านั้นเป็นเจ้าของ ให้คงการกำหนดค่า Plugin ไว้ แก้ไขการเป็นเจ้าของระบบไฟล์ หรือเรียกใช้ OpenClaw ด้วยผู้ใช้คนเดียวกับที่เป็นเจ้าของไดเรกทอรีสถานะ

สำหรับการติดตั้ง Docker อิมเมจอย่างเป็นทางการจะทำงานเป็น `node` (uid `1000`) ดังนั้นโดยปกติไดเรกทอรีการกำหนดค่าและเวิร์กสเปซ OpenClaw ที่ bind mount จากโฮสต์ควรเป็นของ uid `1000`:

```bash
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace
```

หากตั้งใจเรียกใช้ OpenClaw เป็น root ให้แก้ไขรูท Plugin ที่มีการจัดการให้เป็นของ root แทน:

```bash
sudo chown -R root:root /path/to/openclaw-config/npm
```

หลังจากแก้ไขการเป็นเจ้าของแล้ว ให้เรียกใช้ `openclaw doctor --fix` หรือ `openclaw plugins registry --refresh` อีกครั้ง เพื่อให้รีจิสทรี Plugin ที่คงอยู่ตรงกับไฟล์ที่แก้ไขแล้ว

### การตั้งค่าเครื่องมือ Plugin ที่ช้า

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

```bash
openclaw config set logging.level trace
openclaw logs --follow
```

มองหา:

```text
[trace:plugin-tools] เวลาของแฟกทอรี ...
```

ข้อมูลสรุปจะแสดงเวลารวมของแฟกทอรีและแฟกทอรีเครื่องมือ Plugin ที่ช้าที่สุด รวมถึงรหัส Plugin ชื่อเครื่องมือที่ประกาศ รูปแบบผลลัพธ์ และระบุว่าเครื่องมือเป็นแบบไม่บังคับหรือไม่ บรรทัดที่ช้าจะได้รับการยกระดับเป็นคำเตือนเมื่อแฟกทอรีหนึ่งใช้เวลาอย่างน้อย 1s หรือการเตรียมแฟกทอรีเครื่องมือ Plugin ทั้งหมดใช้เวลาอย่างน้อย 5s

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

หาก Plugin หนึ่งใช้เวลาส่วนใหญ่ ให้ตรวจสอบการลงทะเบียนรันไทม์:

```bash
openclaw plugins inspect <plugin-id> --runtime --json
```

จากนั้นอัปเดต ติดตั้งใหม่ หรือปิดใช้งาน Plugin นั้น ผู้เขียน Plugin ควรย้ายการโหลดดีเพนเดนซีที่ใช้ทรัพยากรมากไปไว้หลังเส้นทางการเรียกใช้เครื่องมือ แทนการทำภายในแฟกทอรีเครื่องมือ

สำหรับรูทดีเพนเดนซี การตรวจสอบความถูกต้องของข้อมูลเมตาแพ็กเกจ ระเบียนรีจิสทรี พฤติกรรมการโหลดใหม่เมื่อเริ่มต้น และการล้างข้อมูลรุ่นเก่า โปรดดู [การแก้ไขดีเพนเดนซีของ Plugin](/th/plugins/dependency-resolution)

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

- [จัดการ Plugin](/th/plugins/manage-plugins) - ตัวอย่างคำสั่งสำหรับแสดงรายการ ติดตั้ง อัปเดต ถอนการติดตั้ง และเผยแพร่
- [`openclaw plugins`](/th/cli/plugins) - เอกสารอ้างอิง CLI ฉบับเต็ม
- [รายการ Plugin](/th/plugins/plugin-inventory) - รายการ Plugin ที่รวมมาให้และ Plugin ภายนอกซึ่งสร้างขึ้นโดยอัตโนมัติ
- [เอกสารอ้างอิง Plugin](/th/plugins/reference) - หน้าเอกสารอ้างอิงต่อ Plugin ที่สร้างขึ้นโดยอัตโนมัติ
- [Plugin จากชุมชน](/th/plugins/community) - การค้นหาผ่าน ClawHub และนโยบาย PR เอกสาร
- [การแก้ไขดีเพนเดนซีของ Plugin](/th/plugins/dependency-resolution) - รูทการติดตั้ง ระเบียนรีจิสทรี และขอบเขตรันไทม์
- [การสร้าง Plugin](/th/plugins/building-plugins) - คู่มือการเขียน Plugin แบบเนทีฟ
- [ภาพรวม Plugin SDK](/th/plugins/sdk-overview) - การลงทะเบียนรันไทม์ ฮุก และฟิลด์ API
- [manifest ของ Plugin](/th/plugins/manifest) - manifest และข้อมูลเมตาแพ็กเกจ
