Plugins
ชุดรวม Plugin
OpenClaw สามารถติดตั้ง Plugin จากระบบนิเวศภายนอกได้สามแบบ: Codex, Claude, และ Cursor สิ่งเหล่านี้เรียกว่า บันเดิล ซึ่งเป็นแพ็กเนื้อหาและเมตาดาต้าที่ OpenClaw แมปเข้ากับฟีเจอร์เนทีฟ เช่น Skills, ฮุก และเครื่องมือ MCP
เหตุผลที่มีบันเดิล
Plugin ที่มีประโยชน์จำนวนมากเผยแพร่ในรูปแบบ Codex, Claude หรือ Cursor แทนที่จะ บังคับให้ผู้เขียนเขียนใหม่เป็น Plugin แบบเนทีฟของ OpenClaw, OpenClaw จะตรวจจับรูปแบบเหล่านี้และแมปเนื้อหาที่รองรับเข้าไปในชุดฟีเจอร์เนทีฟ ซึ่งหมายความว่า คุณสามารถติดตั้งแพ็กคำสั่ง Claude หรือบันเดิล Skills ของ Codex แล้วใช้งานได้ทันที
ติดตั้งบันเดิล
ติดตั้งจากไดเรกทอรี อาร์ไคฟ์ หรือมาร์เก็ตเพลซ
# Local directoryopenclaw plugins install ./my-bundle # Archiveopenclaw plugins install ./my-bundle.tgz # Claude marketplaceopenclaw plugins marketplace list <marketplace-name>openclaw plugins install <plugin-name>@<marketplace-name>ตรวจสอบการตรวจจับ
openclaw plugins listopenclaw plugins inspect <id>บันเดิลจะแสดงเป็น Format: bundle พร้อมชนิดย่อยเป็น codex, claude หรือ cursor
รีสตาร์ตและใช้งาน
openclaw gateway restartฟีเจอร์ที่แมปแล้ว (Skills, ฮุก, เครื่องมือ MCP, ค่าเริ่มต้น LSP) จะพร้อมใช้งานในเซสชันถัดไป
สิ่งที่ OpenClaw แมปจากบันเดิล
ไม่ใช่ทุกฟีเจอร์ของบันเดิลจะทำงานใน OpenClaw ตอนนี้ ต่อไปนี้คือสิ่งที่ใช้งานได้และสิ่งที่ ตรวจพบแล้วแต่ยังไม่ได้เชื่อมต่อ
รองรับแล้วตอนนี้
| ฟีเจอร์ | วิธีที่แมป | ใช้กับ |
|---|---|---|
| เนื้อหา Skills | ราก Skills ของบันเดิลโหลดเป็น Skills ปกติของ OpenClaw | ทุกรูปแบบ |
| คำสั่ง | commands/ และ .cursor/commands/ ถูกจัดการเป็นราก Skills |
Claude, Cursor |
| แพ็กฮุก | เลย์เอาต์ HOOK.md + handler.ts ในรูปแบบ OpenClaw |
Codex |
| เครื่องมือ MCP | คอนฟิก MCP ของบันเดิลถูกผสานเข้าในการตั้งค่า OpenClaw แบบฝังตัว; โหลดเซิร์ฟเวอร์ stdio และ HTTP ที่รองรับ | ทุกรูปแบบ |
| เซิร์ฟเวอร์ LSP | Claude .lsp.json และ lspServers ที่ประกาศใน manifest ถูกผสานเข้าในค่าเริ่มต้น LSP ของ OpenClaw แบบฝังตัว |
Claude |
| การตั้งค่า | นำเข้า Claude settings.json เป็นค่าเริ่มต้น OpenClaw แบบฝังตัว |
Claude |
เนื้อหา Skills
- ราก Skills ของบันเดิลโหลดเป็นราก Skills ปกติของ OpenClaw
- ราก
commandsของ Claude ถูกจัดการเป็นราก Skills เพิ่มเติม - ราก
.cursor/commandsของ Cursor ถูกจัดการเป็นราก Skills เพิ่มเติม
ซึ่งหมายความว่าไฟล์คำสั่ง markdown ของ Claude ทำงานผ่านตัวโหลด Skills ปกติของ OpenClaw ส่วน markdown คำสั่งของ Cursor ทำงานผ่านเส้นทางเดียวกัน
แพ็กฮุก
- รากฮุกของบันเดิลทำงาน เฉพาะ เมื่อใช้เลย์เอาต์แพ็กฮุก OpenClaw ปกติ
ปัจจุบันกรณีนี้คือกรณีที่เข้ากันได้กับ Codex เป็นหลัก:
HOOK.mdhandler.tsหรือhandler.js
MCP สำหรับ OpenClaw แบบฝังตัว
- บันเดิลที่เปิดใช้งานสามารถเพิ่มคอนฟิกเซิร์ฟเวอร์ MCP ได้
- OpenClaw ผสานคอนฟิก MCP ของบันเดิลเข้าในการตั้งค่า OpenClaw แบบฝังตัวที่มีผลใช้งานเป็น
mcpServers - OpenClaw เปิดให้ใช้เครื่องมือ MCP ของบันเดิลที่รองรับระหว่างเทิร์นของเอเจนต์ OpenClaw แบบฝังตัว โดย เปิดเซิร์ฟเวอร์ stdio หรือเชื่อมต่อกับเซิร์ฟเวอร์ HTTP
- โปรไฟล์เครื่องมือ
codingและmessagingรวมเครื่องมือ MCP ของบันเดิลไว้ ตามค่าเริ่มต้น; ใช้tools.deny: ["bundle-mcp"]เพื่อไม่ใช้สำหรับเอเจนต์หรือ Gateway - การตั้งค่าเอเจนต์แบบฝังตัวเฉพาะโปรเจกต์ยังคงมีผลหลังค่าเริ่มต้นของบันเดิล ดังนั้นการตั้งค่าพื้นที่ทำงาน สามารถแทนที่รายการ MCP ของบันเดิลได้เมื่อจำเป็น
- แคตตาล็อกเครื่องมือ MCP ของบันเดิลถูกเรียงอย่างกำหนดแน่นอนก่อนลงทะเบียน ดังนั้น
การเปลี่ยนลำดับ
listTools()จากต้นทางจะไม่ทำให้บล็อกเครื่องมือในพรอมป์แคชสั่นไหว
ทรานสปอร์ต
เซิร์ฟเวอร์ MCP สามารถใช้ทรานสปอร์ต stdio หรือ HTTP:
Stdio เปิดโปรเซสลูก:
{ "mcp": { "servers": { "my-server": { "command": "node", "args": ["server.js"], "env": { "PORT": "3000" } } } }}HTTP เชื่อมต่อกับเซิร์ฟเวอร์ MCP ที่กำลังทำงานผ่าน sse ตามค่าเริ่มต้น หรือ streamable-http เมื่อร้องขอ:
{ "mcp": { "servers": { "my-server": { "url": "http://localhost:3100/mcp", "transport": "streamable-http", "headers": { "Authorization": "Bearer ${MY_SECRET_TOKEN}" }, "connectionTimeoutMs": 30000 } } }}transportอาจตั้งเป็น"streamable-http"หรือ"sse"; เมื่อไม่ได้ระบุ OpenClaw จะใช้ssetype: "http"เป็นรูปทรง downstream แบบเนทีฟของ CLI; ใช้transport: "streamable-http"ในคอนฟิก OpenClawopenclaw mcp setและopenclaw doctor --fixจะทำให้ alias ทั่วไปเป็นรูปแบบมาตรฐาน- อนุญาตเฉพาะ URL scheme
http:และhttps: - ค่า
headersรองรับการแทรกค่า${ENV_VAR} - รายการเซิร์ฟเวอร์ที่มีทั้ง
commandและurlจะถูกปฏิเสธ - ข้อมูลรับรองใน URL (userinfo และ query params) จะถูกปกปิดจากคำอธิบายเครื่องมือ และล็อก
connectionTimeoutMsจะแทนที่ค่า timeout การเชื่อมต่อเริ่มต้น 30 วินาทีสำหรับ ทรานสปอร์ตทั้ง stdio และ HTTP
การตั้งชื่อเครื่องมือ
OpenClaw ลงทะเบียนเครื่องมือ MCP ของบันเดิลด้วยชื่อที่ปลอดภัยสำหรับ provider ในรูปแบบ
serverName__toolName ตัวอย่างเช่น เซิร์ฟเวอร์ที่ใช้คีย์ "vigil-harbor" และเปิดเผยเครื่องมือ
memory_search จะลงทะเบียนเป็น vigil-harbor__memory_search
- อักขระนอกเหนือจาก
A-Za-z0-9_-จะถูกแทนที่ด้วย- - ชิ้นส่วนที่อาจขึ้นต้นด้วยอักขระที่ไม่ใช่ตัวอักษรจะได้รับคำนำหน้าเป็นตัวอักษร ดังนั้นคีย์เซิร์ฟเวอร์แบบตัวเลข
เช่น
12306จะกลายเป็นคำนำหน้าเครื่องมือที่ปลอดภัยสำหรับ provider - คำนำหน้าเซิร์ฟเวอร์จำกัดไว้ที่ 30 อักขระ
- ชื่อเครื่องมือเต็มจำกัดไว้ที่ 64 อักขระ
- ชื่อเซิร์ฟเวอร์ว่างจะใช้
mcpแทน - ชื่อที่ผ่านการ sanitize แล้วชนกันจะถูกแยกด้วย suffix ตัวเลข
- ลำดับเครื่องมือสุดท้ายที่เปิดเผยถูกกำหนดแน่นอนตามชื่อที่ปลอดภัย เพื่อให้เทิร์นเอเจนต์แบบฝังตัวซ้ำๆ มีแคชที่เสถียร
- การกรองโปรไฟล์ถือว่าเครื่องมือทั้งหมดจากเซิร์ฟเวอร์ MCP ของบันเดิลเดียวเป็นของ Plugin
โดย
bundle-mcpดังนั้น allowlist และ deny list ของโปรไฟล์สามารถรวมได้ทั้ง ชื่อเครื่องมือที่เปิดเผยรายตัว หรือคีย์ Pluginbundle-mcp
การตั้งค่า OpenClaw แบบฝังตัว
settings.jsonของ Claude ถูกนำเข้าเป็นการตั้งค่าเริ่มต้นของ OpenClaw แบบฝังตัวเมื่อ เปิดใช้งานบันเดิล- OpenClaw sanitize คีย์ shell override ก่อนนำไปใช้
คีย์ที่ sanitize แล้ว:
shellPathshellCommandPrefix
LSP ของ OpenClaw แบบฝังตัว
- บันเดิล Claude ที่เปิดใช้งานสามารถเพิ่มคอนฟิกเซิร์ฟเวอร์ LSP ได้
- OpenClaw โหลด
.lsp.jsonพร้อมพาธlspServersที่ประกาศใน manifest - คอนฟิก LSP ของบันเดิลถูกผสานเข้าในค่าเริ่มต้น LSP ของ OpenClaw แบบฝังตัวที่มีผลใช้งาน
- ปัจจุบันเฉพาะเซิร์ฟเวอร์ LSP ที่รองรับและใช้ stdio เท่านั้นที่เรียกใช้งานได้; ทรานสปอร์ตที่ไม่รองรับ
ยังแสดงใน
openclaw plugins inspect <id>
ตรวจพบแต่ไม่เรียกใช้งาน
สิ่งเหล่านี้ถูกจดจำและแสดงในการวินิจฉัย แต่ OpenClaw ไม่เรียกใช้งาน:
- Claude
agents, automationhooks.json,outputStyles - Cursor
.cursor/agents,.cursor/hooks.json,.cursor/rules - เมตาดาต้า inline/app ของ Codex นอกเหนือจากการรายงานความสามารถ
รูปแบบบันเดิล
บันเดิล Codex
ตัวบ่งชี้: .codex-plugin/plugin.json
เนื้อหาเสริม: skills/, hooks/, .mcp.json, .app.json
บันเดิล Codex เข้ากับ OpenClaw ได้ดีที่สุดเมื่อใช้ราก Skills และไดเรกทอรี
แพ็กฮุกแบบ OpenClaw (HOOK.md + handler.ts)
บันเดิล Claude
โหมดการตรวจจับสองแบบ:
- อิง manifest:
.claude-plugin/plugin.json - ไม่มี manifest: เลย์เอาต์ Claude เริ่มต้น (
skills/,commands/,agents/,hooks/,.mcp.json,.lsp.json,settings.json)
พฤติกรรมเฉพาะของ Claude:
commands/ถูกจัดการเป็นเนื้อหา Skillssettings.jsonถูกนำเข้าในการตั้งค่า OpenClaw แบบฝังตัว (คีย์ shell override จะถูก sanitize).mcp.jsonเปิดเผยเครื่องมือ stdio ที่รองรับไปยัง OpenClaw แบบฝังตัว.lsp.jsonพร้อมพาธlspServersที่ประกาศใน manifest จะโหลดเข้าในค่าเริ่มต้น LSP ของ OpenClaw แบบฝังตัวhooks/hooks.jsonถูกตรวจพบแต่ไม่เรียกใช้งาน- พาธคอมโพเนนต์แบบกำหนดเองใน manifest เป็นแบบเพิ่มต่อยอด (ขยายค่าเริ่มต้น ไม่ใช่แทนที่)
บันเดิล Cursor
ตัวบ่งชี้: .cursor-plugin/plugin.json
เนื้อหาเสริม: skills/, .cursor/commands/, .cursor/agents/, .cursor/rules/, .cursor/hooks.json, .mcp.json
.cursor/commands/ถูกจัดการเป็นเนื้อหา Skills.cursor/rules/,.cursor/agents/, และ.cursor/hooks.jsonเป็นแบบตรวจจับเท่านั้น
ลำดับความสำคัญในการตรวจจับ
OpenClaw ตรวจหารูปแบบ Plugin แบบเนทีฟก่อน:
openclaw.plugin.jsonหรือpackage.jsonที่ถูกต้องพร้อมopenclaw.extensions— ถูกจัดการเป็น Plugin แบบเนทีฟ- ตัวบ่งชี้บันเดิล (
.codex-plugin/,.claude-plugin/หรือเลย์เอาต์ Claude/Cursor เริ่มต้น) — ถูกจัดการเป็น บันเดิล
หากไดเรกทอรีมีทั้งสองแบบ OpenClaw จะใช้เส้นทางเนทีฟ วิธีนี้ป้องกันไม่ให้ แพ็กเกจแบบสองรูปแบบถูกติดตั้งบางส่วนเป็นบันเดิล
การพึ่งพารันไทม์และการล้างข้อมูล
- บันเดิลจากภายนอกที่เข้ากันได้จะไม่ได้รับการซ่อมแซม
npm installตอนเริ่มต้นระบบ บันเดิลเหล่านี้ ควรถูกติดตั้งผ่านopenclaw plugins installและจัดส่งทุกอย่าง ที่ต้องใช้ไว้ในไดเรกทอรี Plugin ที่ติดตั้งแล้ว - Plugin แบบบันเดิลที่ OpenClaw เป็นเจ้าของจะถูกจัดส่งแบบเบาใน core หรือ ดาวน์โหลดได้ผ่านตัวติดตั้ง Plugin การเริ่มต้น Gateway จะไม่เรียกใช้ package manager สำหรับสิ่งเหล่านี้
openclaw doctor --fixจะลบไดเรกทอรี dependency แบบ staged เดิม และสามารถ กู้คืน Plugin ที่ดาวน์โหลดได้ซึ่งหายไปจากดัชนี Plugin ในเครื่องเมื่อ คอนฟิกอ้างอิงถึงสิ่งเหล่านั้น
ความปลอดภัย
บันเดิลมีขอบเขตความเชื่อถือที่แคบกว่า Plugin แบบเนทีฟ:
- OpenClaw ไม่ โหลดโมดูลรันไทม์ของบันเดิลตามอำเภอใจในโปรเซสเดียวกัน
- พาธ Skills และแพ็กฮุกต้องอยู่ภายในราก Plugin (ตรวจสอบขอบเขตแล้ว)
- ไฟล์การตั้งค่าถูกอ่านด้วยการตรวจสอบขอบเขตแบบเดียวกัน
- เซิร์ฟเวอร์ MCP แบบ stdio ที่รองรับอาจถูกเปิดเป็น subprocess
สิ่งนี้ทำให้บันเดิลปลอดภัยกว่าโดยค่าเริ่มต้น แต่คุณยังควรถือว่าบันเดิลจากภายนอก เป็นเนื้อหาที่เชื่อถือได้สำหรับฟีเจอร์ที่เปิดเผยอยู่ดี
การแก้ไขปัญหา
ตรวจพบบันเดิลแต่ความสามารถไม่ทำงาน
เรียกใช้ openclaw plugins inspect <id> หากความสามารถถูกระบุไว้แต่ถูกทำเครื่องหมายว่า
ยังไม่ได้เชื่อมต่อ นั่นคือข้อจำกัดของผลิตภัณฑ์ ไม่ใช่การติดตั้งที่เสีย
ไฟล์คำสั่ง Claude ไม่ปรากฏ
ตรวจสอบให้แน่ใจว่าบันเดิลเปิดใช้งานแล้ว และไฟล์ markdown อยู่ภายในราก
commands/ หรือ skills/ ที่ตรวจพบ
การตั้งค่า Claude ไม่มีผล
รองรับเฉพาะการตั้งค่า OpenClaw แบบฝังตัวจาก settings.json เท่านั้น OpenClaw
ไม่ถือว่าการตั้งค่าบันเดิลเป็นแพตช์คอนฟิกดิบ
ฮุก Claude ไม่ทำงาน
hooks/hooks.json เป็นแบบตรวจจับเท่านั้น หากคุณต้องการฮุกที่เรียกใช้งานได้ ให้ใช้
เลย์เอาต์แพ็กฮุก OpenClaw หรือจัดส่ง Plugin แบบเนทีฟ
ที่เกี่ยวข้อง
- ติดตั้งและกำหนดค่า Plugin
- การสร้าง Plugin — สร้าง Plugin แบบเนทีฟ
- Manifest ของ Plugin — schema manifest แบบเนทีฟ