Overview

เครื่องมือและ Plugin

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

เครื่องมือ, Skills และ Plugin

OpenClaw มีสามชั้นที่ทำงานร่วมกัน:

  • เครื่องมือคือสิ่งที่เอเจนต์เรียกใช้

    เครื่องมือคือฟังก์ชันที่มีชนิดกำกับซึ่งเอเจนต์สามารถเรียกใช้ได้ (เช่น exec, browser, web_search, message) OpenClaw มาพร้อมชุด เครื่องมือในตัว และ Plugin สามารถลงทะเบียนเครื่องมือเพิ่มเติมได้

    เอเจนต์มองเห็นเครื่องมือเป็นนิยามฟังก์ชันแบบมีโครงสร้างที่ส่งไปยัง API ของโมเดล

  • Skills สอนเอเจนต์ว่าควรใช้เมื่อใดและอย่างไร

    Skill คือไฟล์มาร์กดาวน์ (SKILL.md) ที่ถูกฉีดเข้าไปในพรอมป์ต์ระบบ Skills ให้บริบท ข้อจำกัด และแนวทางทีละขั้นตอนแก่เอเจนต์สำหรับ การใช้เครื่องมืออย่างมีประสิทธิภาพ Skills อยู่ในเวิร์กสเปซของคุณ ในโฟลเดอร์ที่ใช้ร่วมกัน หรือมาพร้อมภายใน Plugin

    อ้างอิง Skills | การสร้าง Skills

  • Plugin รวมทุกอย่างไว้ด้วยกัน

    Plugin คือแพ็กเกจที่สามารถลงทะเบียนความสามารถแบบผสมกันได้: แชนเนล, ผู้ให้บริการโมเดล, เครื่องมือ, Skills, เสียงพูด, การถอดเสียงแบบเรียลไทม์, เสียงแบบเรียลไทม์, การทำความเข้าใจสื่อ, การสร้างรูปภาพ, การสร้างวิดีโอ, การดึงข้อมูลเว็บ, การค้นหาเว็บ และอื่นๆ บาง Plugin เป็น หลัก (มาพร้อมกับ OpenClaw) ส่วนอื่นเป็น ภายนอก (เผยแพร่บน npm โดยชุมชน)

    ติดตั้งและกำหนดค่า Plugin | สร้างของคุณเอง

  • เครื่องมือในตัว

    เครื่องมือเหล่านี้มาพร้อมกับ 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" },
        },
      },
    }