工具是 Agent 的手和眼

OpenClaw 中,Agent 除了生成文字之外的一切操作,都通过**工具(Tools)**完成。工具是 Agent 调用 typed function 的方式——读文件、跑命令、浏览网页、发消息、控制设备,全部靠工具。

三层架构:工具 → 技能 → 插件

OpenClaw 有三层协同工作的机制:

第一层:工具(Tools)——Agent 可以调用什么

工具是 Agent 可以调用的 typed function(如 execbrowserweb_searchmessage)。OpenClaw 自带一组内置工具,插件也可以注册额外工具。Agent 把工具视为发给模型 API 的结构化函数定义。

第二层:技能(Skills)——Agent 何时、如何使用

技能是一个 markdown 文件(SKILL.md),注入到系统提示词中。技能赋予 Agent 上下文、约束和分步指导,让工具被有效地使用。技能存在于 workspace、共享文件夹,或内置在插件中。

第三层:插件(Plugins)——把所有东西打包

插件是一个包,可以注册任意组合的能力:频道、模型提供商、工具、技能、语音、图片生成等。部分插件是核心的(随 OpenClaw 一起发布),部分是外部的(由社区发布到 npm)。


内置工具一览

这些工具随 OpenClaw 发布,无需安装任何插件即可使用:

工具 功能
exec / process 运行 shell 命令,管理后台进程
browser 控制 Chromium 浏览器(导航、点击、截图)
web_search / web_fetch 搜索网页,获取页面内容
read / write / edit Workspace 内文件读写
apply_patch 多 hunk 文件补丁
message 跨所有频道发消息
canvas 驱动节点 Canvas(展示、eval、快照)
nodes 发现并定向已配对设备
cron / gateway 管理定时任务,重启 Gateway
image / image_generate 分析或生成图片

图片工具的正确用法

  • 分析图片:用 image 工具
  • 生成/编辑图片:用 image_generate 工具
  • 如果目标是非默认图片提供商(如 openai/*google/*fal/*),需先配置该提供商的 auth/API key

插件提供的工具

插件可以注册额外工具,官方插件示例:

  • Lobster — 带可恢复审批的 typed 工作流运行时
  • LLM Task — JSON 专属 LLM 步骤(结构化输出)
  • Diffs — diff 查看器和渲染器
  • OpenProse — markdown 优先工作流编排

工具配置:Allow 和 Deny 列表

通过配置中的 tools.allow / tools.deny 控制 Agent 可以调用哪些工具。Deny 优先级始终高于 Allow。

{
  tools: {
    allow: ["group:fs", "browser", "web_search"],
    deny: ["exec"],
  },
}

工具配置集(Tool Profiles)

tools.profileallow/deny 应用之前设置基础允许列表:

Profile 包含内容
full 所有工具(默认)
coding 文件 I/O、运行时、会话、内存、图片
messaging 消息、会话列表/历史/发送/状态
minimal session_status

工具组快捷方式

在 allow/deny 列表中使用 group:* 简写:

包含工具
group:runtime exec, bash, process
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, web_fetch
group:ui browser, canvas
group:automation cron, gateway
group:messaging message
group:nodes nodes
group:openclaw 所有内置 OpenClaw 工具(不含插件工具)

按提供商限制工具

使用 tools.byProvider 对特定提供商限制工具,而不影响全局默认值:

{
  tools: {
    profile: "coding",
    byProvider: {
      "google-antigravity": { profile: "minimal" },
    },
  },
}

Agent 如何"看到"工具

Agent 把工具视为结构化函数定义,由 OpenClaw 发送给模型 API。这些定义告诉模型:有哪些工具可用、每个工具接受什么参数、返回什么结果。

模型根据对话上下文自主决定调用哪个工具、传什么参数。这是 OpenClaw Agent 的核心机制——不是预设的工作流,而是模型根据情况判断。


工具 vs 技能:关键区别

工具(Tool) 技能(Skill)
本质 可以调用的函数 何时/如何使用工具的指导
格式 代码(函数定义) Markdown 文本(SKILL.md)
作用 执行动作 提供上下文和约束

技能通过在系统提示词中注入指令来"教会"Agent 更好地使用工具——比如告诉 Agent 在什么情况下应该用哪个工具、参数怎么填、结果怎么解读。

本指南综合编译自 OpenClaw 官方文档