首页openclaw教程中心 › 工具使用教程

工具使用教程

什么是工具

在 OpenClaw 中,工具(Tools)是智能体与外部世界交互的"手"。智能体本身只能思考和生成文本,而工具让它能够执行命令、读写文件、浏览网页、发送消息等实际操作。 你可以把工具理解为智能体的能力扩展——没有工具的智能体只是一个聊天机器人,有了工具的智能体才是真正的 AI 助手。

内置工具分类

OpenClaw 内置了丰富的工具,按功能可以分为以下几大类: | 工具 | 功能 | 说明 | |------|------|------| | exec | 执行 Shell 命令 | 运行终端命令,如 lsgitnpm 等 | | browser | 浏览器控制 | 控制 Chromium 浏览器,导航、点击、截图 | | web_search | 网页搜索 | 搜索互联网内容 | | read | 读取文件 | 读取本地文件内容 | | write | 写入文件 | 创建或修改本地文件 | | image | 图像处理 | 生成、分析和处理图像 | | message | 发送消息 | 主动向用户发送消息 | | cron | 定时任务 | 创建和管理定时任务 | | gateway | Gateway 管理 | 查看和管理 Gateway 状态 | | memory_search | 记忆搜索 | 语义搜索长期记忆 | | memory_get | 记忆读取 | 读取记忆文件内容 | | process | 进程管理 | 管理后台运行的进程 | | code_execution | 代码执行 | 在沙箱中运行 Python 代码 | 每个工具都有明确的职责边界,智能体会根据用户的请求自动选择合适的工具来完成任务。

工具、技能与插件的三层关系

OpenClaw 的能力扩展体系分为三个层级,理解它们的关系很重要: `` 插件(Plugins) └── 提供底层能力(渠道连接、模型接入、语音通话等) └── 需要重启 Gateway 生效 技能(Skills) └── 提供高层指令(Markdown 文件,指导智能体如何完成特定任务) └── 热加载,无需重启 工具(Tools) └── 提供原子操作(执行命令、读写文件、浏览网页等) └── 内置于 OpenClaw,开箱即用 ` 简单来说: - 工具是最底层的原子能力,比如"执行一条命令"、"读取一个文件" - 技能是基于工具的高层指令,比如"帮我写一个 React 组件"——技能文件会告诉智能体该用哪些工具、按什么步骤完成 - 插件是系统级扩展,比如"连接 WhatsApp"、"接入语音通话"——插件可以引入全新的工具和能力

工具权限控制

默认情况下,OpenClaw 会根据安全策略限制某些工具的使用。你可以通过
tools.allowtools.deny 来精确控制智能体可以使用哪些工具。

允许列表(allow)

明确允许智能体使用的工具:
`json5 { "tools": { "allow": ["read", "write", "exec", "browser"] } } ` 设置 allow 后,智能体只能使用列表中的工具,其他工具全部禁用。

拒绝列表(deny)

明确禁止智能体使用的工具:
`json5 { "tools": { "deny": ["exec", "browser"] } } ` 设置 deny 后,智能体可以使用除列表之外的所有工具。

优先级规则

- 如果同时设置了
allowdenydeny 优先 - 如果只设置了 allow,未列出的工具全部禁用 - 如果只设置了 deny,未列出的工具全部可用 - 如果都不设置,使用默认的工具配置文件(tools.profile)

工具配置文件(tools.profile)

tools.profile 是一种快捷方式,可以一键设置工具权限的预设方案: | Profile | 包含的工具 | 适用场景 | |---------|-----------|----------| | full | 所有工具 | 完全信任的环境,最大能力 | | coding | read、write、exec、browser、web_search | 编程开发场景 | | messaging | message、web_search、memory_search | 纯聊天场景,不操作文件 | | minimal | read、web_search | 最小权限,只读 + 搜索 | 在配置文件中设置: `json5 { "tools": { "profile": "coding" } } ` 你也可以在 profile 基础上用 allow / deny 做微调: `json5 { "tools": { "profile": "coding", "deny": ["browser"] // 在 coding 基础上禁用浏览器 } } `

常用工具分组

OpenClaw 提供了工具分组(group)的概念,方便你按类别批量管理工具权限: | 分组 | 包含的工具 | 说明 | |------|-----------|------| |
group:fs | read、write | 文件系统操作 | | group:web | browser、web_search | 网络相关 | | group:runtime | exec、code_execution、process | 代码执行相关 | | group:ui | message、image | 用户界面交互 | | group:sessions | memory_search、memory_get | 会话和记忆 | 在权限配置中可以直接使用分组名: `json5 { "tools": { "allow": ["group:fs", "group:web"] // 等同于 allow: ["read", "write", "browser", "web_search"] } } ` 分组让权限管理更简洁,特别是当你需要按场景快速切换工具集时。

浏览器工具

浏览器工具(
browser)让智能体能够控制一个真实的 Chromium 浏览器实例,执行网页操作。

基本能力

- 导航:打开指定 URL - 点击:点击页面元素 - 输入:在表单中填写内容 - 截图:对当前页面截图并分析 - 提取:获取页面文本内容

启用浏览器工具

浏览器工具默认可能未启用,需要在配置中添加:
`json5 { "tools": { "allow": ["browser"] } } ` 或者使用 fullcoding profile,它们默认包含浏览器工具。

使用场景

浏览器工具适合以下场景: - 网页信息抓取:让智能体打开网页,提取你需要的信息 - 表单自动填写:自动登录、提交表单 - 页面截图分析:截取页面截图,让智能体分析页面内容或布局 - Web 应用测试:自动化测试 Web 应用的功能

登录保持

浏览器工具支持登录状态保持(browser-login)。你可以先手动登录某个网站,浏览器会保存 Cookie 和会话信息,之后智能体就可以在已登录状态下操作该网站。
`bash

打开浏览器进行手动登录

openclaw browser-login
` 登录完成后关闭浏览器窗口,登录状态会被保存。下次智能体使用浏览器工具访问同一网站时,会自动使用已保存的登录状态。

注意事项

- 浏览器工具需要系统安装了 Chromium 或 Chrome - Linux 服务器环境可能需要安装额外的依赖(
apt install chromium-browser) - WSL2 环境下需要配置远程 CDP(Chrome DevTools Protocol)连接到 Windows 上的 Chrome

代码执行工具

OpenClaw 提供了两种代码执行方式,适用于不同场景。

exec 工具

exec 是最常用的命令执行工具,可以运行任意 Shell 命令: ` 用户:帮我查看当前目录下的文件 智能体:(使用 exec 工具执行 ls -la) ` exec 工具的特点: - 直接在宿主机上执行命令 - 可以访问所有系统资源 - 适合日常开发和系统管理任务

code_execution 工具

code_execution 是一个沙箱化的 Python 执行环境,适合数据分析和计算任务: ` 用户:帮我分析这份 CSV 数据 智能体:(使用 code_execution 工具运行 Python 脚本) ` code_execution 的特点: - 在隔离的沙箱中运行 - 预装了常用的数据分析库(pandas、numpy、matplotlib 等) - 适合数据处理、图表生成、数学计算

执行审批机制

为了安全,OpenClaw 支持命令执行审批(exec-approvals)。你可以配置哪些命令需要用户确认才能执行:
`json5 { "tools": { "exec": { "approvals": { "mode": "allow", // allow: 白名单模式, deny: 黑名单模式 "commands": [ "ls", "cat", "echo", "git status", "git log" ] } } } } `allow 模式下,只有白名单中的命令可以直接执行,其他命令需要用户确认。这在生产环境中特别有用,可以防止智能体误执行危险命令。

命令白名单配置

推荐的安全配置是使用白名单模式,只允许安全的只读命令自动执行:
`json5 { "tools": { "exec": { "approvals": { "mode": "allow", "commands": [ // 文件查看 "ls", "cat", "head", "tail", "wc", // 版本控制 "git status", "git log", "git diff", // 系统信息 "whoami", "pwd", "date", "uname" ] } } } } ` 其他命令(如 rmmvnpm install 等)执行前会弹出确认提示,你可以选择允许或拒绝。

工具使用最佳实践

1. 最小权限原则

只给智能体它需要的工具权限。如果你只需要智能体帮你写代码,用
coding profile 就够了,不需要给 full 权限。

2. 生产环境用审批

在生产服务器上运行智能体时,一定要配置 exec 审批机制,防止误操作。

3. 善用工具分组

group:fsgroup:web 等分组来管理权限,比逐个列出工具名更清晰、更不容易遗漏。

4. 按智能体配置

如果你运行多个智能体(多智能体模式),可以为每个智能体配置不同的工具权限:
`json5 { "agents": { "coder": { "tools": { "profile": "coding" } }, "assistant": { "tools": { "profile": "messaging" } } } } `` 这样编程智能体有完整的开发工具,而聊天助手只有消息和搜索能力。

小结

OpenClaw 的工具体系设计得既强大又安全: - 内置工具覆盖了文件操作、命令执行、网页浏览、消息发送等常见需求 - 工具、技能、插件三层架构让能力扩展灵活有序 - 权限控制(allow/deny/profile/group)让你精确掌控智能体的能力边界 - 浏览器工具和代码执行工具是两个最强大的高级工具,善用它们能大幅提升效率 #OpenClaw工具 #工具权限 #浏览器控制 #代码执行 #龙虾技能库
#工具#权限配置#浏览器#代码执行#内置工具

📚 相关教程

浏览器自动化专题教程进阶
掌握 OpenClaw 的浏览器工具,学会控制 Chromium 实例进行网页导航、点击、截图、文本提取等自动化操作。
CLI 命令速查表中级
OpenClaw 全部 CLI 命令的分组速查表,覆盖安装管理、Gateway、技能、渠道、会话、配置、诊断、记忆、定时任务、Hooks 等 40+ 子命令,方便随时查阅。
远程代码执行教程进阶
掌握 OpenClaw 的代码执行工具,了解 exec、code_execution 和 process 三大工具的区别与用法,学会配置执行审批机制保障安全。
← 会话管理教程输入指示器与在线状态教程 →