Overview
เครื่องมือและ Plugin
ทุกอย่างที่เอเจนต์ทำนอกเหนือจากการสร้างข้อความเกิดขึ้นผ่าน เครื่องมือ เครื่องมือคือวิธีที่เอเจนต์อ่านไฟล์ รันคำสั่ง เรียกดูเว็บ ส่ง ข้อความ และโต้ตอบกับอุปกรณ์
เครื่องมือ, Skills และ Plugin
OpenClaw มีสามชั้นที่ทำงานร่วมกัน:
เครื่องมือคือสิ่งที่เอเจนต์เรียกใช้
เครื่องมือคือฟังก์ชันที่มีชนิดกำกับซึ่งเอเจนต์สามารถเรียกใช้ได้ (เช่น exec, browser,
web_search, message) OpenClaw มาพร้อมชุด เครื่องมือในตัว และ
Plugin สามารถลงทะเบียนเครื่องมือเพิ่มเติมได้
เอเจนต์มองเห็นเครื่องมือเป็นนิยามฟังก์ชันแบบมีโครงสร้างที่ส่งไปยัง API ของโมเดล
Skills สอนเอเจนต์ว่าควรใช้เมื่อใดและอย่างไร
Skill คือไฟล์มาร์กดาวน์ (SKILL.md) ที่ถูกฉีดเข้าไปในพรอมป์ต์ระบบ
Skills ให้บริบท ข้อจำกัด และแนวทางทีละขั้นตอนแก่เอเจนต์สำหรับ
การใช้เครื่องมืออย่างมีประสิทธิภาพ Skills อยู่ในเวิร์กสเปซของคุณ ในโฟลเดอร์ที่ใช้ร่วมกัน
หรือมาพร้อมภายใน Plugin
Plugin รวมทุกอย่างไว้ด้วยกัน
Plugin คือแพ็กเกจที่สามารถลงทะเบียนความสามารถแบบผสมกันได้: แชนเนล, ผู้ให้บริการโมเดล, เครื่องมือ, Skills, เสียงพูด, การถอดเสียงแบบเรียลไทม์, เสียงแบบเรียลไทม์, การทำความเข้าใจสื่อ, การสร้างรูปภาพ, การสร้างวิดีโอ, การดึงข้อมูลเว็บ, การค้นหาเว็บ และอื่นๆ บาง Plugin เป็น หลัก (มาพร้อมกับ OpenClaw) ส่วนอื่นเป็น ภายนอก (เผยแพร่บน npm โดยชุมชน)
เครื่องมือในตัว
เครื่องมือเหล่านี้มาพร้อมกับ OpenClaw และใช้งานได้โดยไม่ต้องติดตั้ง Plugin ใดๆ:
| เครื่องมือ | สิ่งที่ทำ | หน้า |
|---|---|---|
exec / process |
รันคำสั่งเชลล์ จัดการโปรเซสพื้นหลัง | Exec, การอนุมัติ Exec |
code_execution |
รันการวิเคราะห์ Python ระยะไกลในแซนด์บ็อกซ์ | การประมวลผลโค้ด |
browser |
ควบคุมเบราว์เซอร์ Chromium (นำทาง คลิก จับภาพหน้าจอ) | เบราว์เซอร์ |
web_search / x_search / web_fetch |
ค้นหาเว็บ ค้นหาโพสต์ X ดึงเนื้อหาหน้าเว็บ | เว็บ, การดึงข้อมูลเว็บ |
read / write / edit |
File I/O ในเวิร์กสเปซ | |
apply_patch |
แพตช์ไฟล์หลายฮังก์ | Apply Patch |
message |
ส่งข้อความข้ามทุกแชนเนล | การส่งของเอเจนต์ |
nodes |
ค้นหาและกำหนดเป้าหมายอุปกรณ์ที่จับคู่ไว้ | |
cron / gateway |
จัดการงานที่กำหนดเวลา; ตรวจสอบ แพตช์ รีสตาร์ต หรืออัปเดต Gateway | |
image / image_generate |
วิเคราะห์หรือสร้างรูปภาพ | การสร้างรูปภาพ |
music_generate |
สร้างแทร็กเพลง | การสร้างเพลง |
video_generate |
สร้างวิดีโอ | การสร้างวิดีโอ |
tts |
แปลงข้อความเป็นเสียงพูดแบบครั้งเดียว | TTS |
sessions_* / subagents / agents_list |
การจัดการเซสชัน สถานะ และการประสานงานเอเจนต์ย่อย | เอเจนต์ย่อย |
session_status |
การอ่านกลับแบบ /status ที่เบาและการแทนที่โมเดลของเซสชัน |
เครื่องมือเซสชัน |
สำหรับงานรูปภาพ ให้ใช้ image สำหรับการวิเคราะห์ และ image_generate สำหรับการสร้างหรือแก้ไข หากคุณกำหนดเป้าหมายเป็น openai/*, google/*, fal/* หรือผู้ให้บริการรูปภาพที่ไม่ใช่ค่าเริ่มต้นรายอื่น ให้กำหนดค่า auth/API key ของผู้ให้บริการนั้นก่อน
สำหรับงานเพลง ให้ใช้ music_generate หากคุณกำหนดเป้าหมายเป็น google/*, minimax/* หรือผู้ให้บริการเพลงที่ไม่ใช่ค่าเริ่มต้นรายอื่น ให้กำหนดค่า auth/API key ของผู้ให้บริการนั้นก่อน
สำหรับงานวิดีโอ ให้ใช้ video_generate หากคุณกำหนดเป้าหมายเป็น qwen/* หรือผู้ให้บริการวิดีโอที่ไม่ใช่ค่าเริ่มต้นรายอื่น ให้กำหนดค่า auth/API key ของผู้ให้บริการนั้นก่อน
สำหรับการสร้างเสียงที่ขับเคลื่อนด้วยเวิร์กโฟลว์ ให้ใช้ music_generate เมื่อ Plugin เช่น
ComfyUI ลงทะเบียนเครื่องมือนี้ไว้ สิ่งนี้แยกจาก tts ซึ่งเป็นข้อความเป็นเสียงพูด
session_status คือเครื่องมือสถานะ/อ่านกลับแบบเบาในกลุ่มเซสชัน
มันตอบคำถามลักษณะ /status เกี่ยวกับเซสชันปัจจุบัน และสามารถ
เลือกตั้งค่าการแทนที่โมเดลต่อเซสชันได้; model=default จะล้าง
การแทนที่นั้น เช่นเดียวกับ /status มันสามารถเติมตัวนับโทเคน/แคชที่เบาบางย้อนหลัง และป้ายกำกับโมเดลรันไทม์ที่ใช้งานอยู่จากรายการการใช้งานทรานสคริปต์ล่าสุดได้
gateway คือเครื่องมือรันไทม์สำหรับเจ้าของเท่านั้นสำหรับการดำเนินการ Gateway:
config.schema.lookupสำหรับซับทรีค่ากำหนดตามขอบเขตพาธหนึ่งรายการก่อนแก้ไขconfig.getสำหรับสแนปช็อตค่ากำหนดปัจจุบัน + แฮชconfig.patchสำหรับการอัปเดตค่ากำหนดบางส่วนพร้อมรีสตาร์ตconfig.applyเฉพาะสำหรับการแทนที่ค่ากำหนดทั้งชุดupdate.runสำหรับการอัปเดตตัวเองอย่างชัดเจน + รีสตาร์ต
สำหรับการเปลี่ยนแปลงบางส่วน ให้เลือกใช้ config.schema.lookup แล้วตามด้วย config.patch ใช้
config.apply เฉพาะเมื่อคุณตั้งใจแทนที่ค่ากำหนดทั้งหมด
สำหรับเอกสารค่ากำหนดที่กว้างขึ้น ให้อ่าน การกำหนดค่า และ
อ้างอิงการกำหนดค่า
เครื่องมือนี้ยังปฏิเสธการเปลี่ยน tools.exec.ask หรือ tools.exec.security;
นามแฝงเดิม tools.bash.* จะถูกทำให้เป็นรูปแบบปกติไปยังพาธ exec ที่ได้รับการป้องกันเดียวกัน
เครื่องมือที่ Plugin จัดหาให้
Plugin สามารถลงทะเบียนเครื่องมือเพิ่มเติมได้ ตัวอย่างบางส่วน:
- Canvas — Plugin ที่มาพร้อมแบบทดลองสำหรับการควบคุม node Canvas และการเรนเดอร์ A2UI
- Diffs — ตัวดูและตัวเรนเดอร์ diff
- LLM Task — ขั้นตอน LLM แบบ JSON เท่านั้นสำหรับเอาต์พุตแบบมีโครงสร้าง
- Lobster — รันไทม์เวิร์กโฟลว์แบบมีชนิดพร้อมการอนุมัติที่ดำเนินต่อได้
- การสร้างเพลง — เครื่องมือ
music_generateที่ใช้ร่วมกันพร้อมผู้ให้บริการที่หนุนด้วยเวิร์กโฟลว์ - OpenProse — การประสานงานเวิร์กโฟลว์ที่เน้นมาร์กดาวน์
- Tokenjuice — ย่อผลลัพธ์เครื่องมือ
execและbashที่มีสัญญาณรบกวน
เครื่องมือ Plugin ยังคงถูกเขียนด้วย api.registerTool(...) และประกาศใน
รายการ contracts.tools ของแมนิเฟสต์ Plugin OpenClaw จับตัวอธิบาย
เครื่องมือที่ผ่านการตรวจสอบระหว่างการค้นพบและแคชไว้ตามแหล่งที่มาและสัญญาของ Plugin เพื่อให้
การวางแผนเครื่องมือภายหลังข้ามการโหลดรันไทม์ของ Plugin ได้ การดำเนินการเครื่องมือยังคงโหลด
Plugin เจ้าของและเรียกอิมพลีเมนเทชันที่ลงทะเบียนจริง
การกำหนดค่าเครื่องมือ
รายการอนุญาตและรายการปฏิเสธ
ควบคุมว่าเอเจนต์สามารถเรียกเครื่องมือใดได้ผ่าน tools.allow / tools.deny ใน
ค่ากำหนด รายการปฏิเสธชนะรายการอนุญาตเสมอ
{
tools: {
allow: ["group:fs", "browser", "web_search"],
deny: ["exec"],
},
}
OpenClaw จะปิดแบบปลอดภัยเมื่อรายการอนุญาตที่ชัดเจนแก้ได้เป็นไม่มีเครื่องมือที่เรียกได้
ตัวอย่างเช่น tools.allow: ["query_db"] จะทำงานก็ต่อเมื่อ Plugin ที่โหลดแล้ว
ลงทะเบียน query_db จริง หากไม่มีเครื่องมือในตัว, Plugin หรือเครื่องมือ MCP ที่มาพร้อมใดตรงกับ
รายการอนุญาต การรันจะหยุดก่อนการเรียกโมเดล แทนที่จะดำเนินต่อเป็นการรัน
แบบข้อความเท่านั้นที่อาจหลอนผลลัพธ์เครื่องมือได้
โปรไฟล์เครื่องมือ
tools.profile ตั้งค่ารายการอนุญาตฐานก่อนนำ allow/deny ไปใช้
การแทนที่ต่อเอเจนต์: agents.list[].tools.profile
| โปรไฟล์ | สิ่งที่รวมอยู่ |
|---|---|
full |
เครื่องมือ Plugin หลักและเสริมทั้งหมด; baseline แบบไม่จำกัดสำหรับการเข้าถึงคำสั่ง/การควบคุมที่กว้างขึ้น |
coding |
group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, music_generate, video_generate |
messaging |
group:messaging, sessions_list, sessions_history, sessions_send, session_status |
minimal |
เฉพาะ session_status |
coding รวมเครื่องมือเว็บแบบเบา (web_search, web_fetch, x_search)
แต่ไม่รวมเครื่องมือควบคุมเบราว์เซอร์เต็มรูปแบบ การทำงานอัตโนมัติของเบราว์เซอร์สามารถขับเคลื่อน
เซสชันจริงและโปรไฟล์ที่เข้าสู่ระบบแล้วได้ ดังนั้นให้เพิ่มอย่างชัดเจนด้วย
tools.alsoAllow: ["browser"] หรือแบบต่อเอเจนต์
agents.list[].tools.alsoAllow: ["browser"]
โปรไฟล์ coding และ messaging ยังอนุญาตเครื่องมือ MCP แบบบันเดิลที่กำหนดค่าไว้
ภายใต้คีย์ Plugin bundle-mcp เพิ่ม tools.deny: ["bundle-mcp"] เมื่อคุณ
ต้องการให้โปรไฟล์คงเครื่องมือในตัวปกติไว้ แต่ซ่อนเครื่องมือ MCP ที่กำหนดค่าไว้ทั้งหมด
โปรไฟล์ minimal ไม่รวมเครื่องมือ MCP แบบบันเดิล
ตัวอย่าง (พื้นผิวเครื่องมือที่กว้างที่สุดโดยค่าเริ่มต้น):
{
tools: {
profile: "full",
},
}
กลุ่มเครื่องมือ
ใช้ชอร์ตแฮนด์ group:* ในรายการอนุญาต/ปฏิเสธ:
| กลุ่ม | เครื่องมือ |
|---|---|
group:runtime |
exec, process, code_execution (bash ได้รับการยอมรับเป็นนามแฝงของ exec) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas เมื่อเปิดใช้งาน Plugin Canvas ที่รวมมาให้ |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes |
group:agents |
agents_list, update_plan |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
เครื่องมือ OpenClaw ในตัวทั้งหมด (ไม่รวมเครื่องมือ Plugin) |
sessions_history ส่งคืนมุมมองการเรียกคืนที่มีขอบเขตและผ่านการกรองด้านความปลอดภัย โดยจะลบ
แท็กการคิด โครง <relevant-memories> เพย์โหลด XML ของการเรียกเครื่องมือแบบข้อความล้วน
(รวมถึง <tool_call>...</tool_call>,
<function_call>...</function_call>, <tool_calls>...</tool_calls>,
<function_calls>...</function_calls> และบล็อกการเรียกเครื่องมือที่ถูกตัดทอน),
โครงการเรียกเครื่องมือที่ถูกลดระดับ โทเค็นควบคุมโมเดลแบบ ASCII/เต็มความกว้างที่รั่วไหล
และ XML การเรียกเครื่องมือ MiniMax ที่ผิดรูปแบบจากข้อความของผู้ช่วย จากนั้นจึงใช้
การปกปิด/การตัดทอนและอาจใช้ตัวแทนแถวที่มีขนาดใหญ่เกิน แทนที่จะทำหน้าที่
เป็นการดัมป์ทรานสคริปต์ดิบ
ข้อจำกัดเฉพาะผู้ให้บริการ
ใช้ tools.byProvider เพื่อจำกัดเครื่องมือสำหรับผู้ให้บริการเฉพาะโดยไม่
เปลี่ยนค่าเริ่มต้นส่วนกลาง:
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}