本文档详细说明 OpenClaw 项目中供大模型使用的内置工具(Built-in Tools)
OpenClaw 为大模型提供了一套完整的内置工具,使 AI Agent 能够执行文件操作、网络搜索、设备控制、消息发送等多样化任务。这些工具通过 createOpenClawCodingTools 函数统一整合,并提供给 AI 模型使用。
主要源码位置:
- 工具入口:
src/agents/pi-tools.ts - 工具定义:
src/agents/openclaw-tools.ts - 工具实现:
src/agents/tools/
一、核心编码工具
来自 @mariozechner/pi-coding-agent 包的基础工具。
1. read - 文件读取工具
// 位置:pi-coding-agent 内置 // 功能:读取文件内容
参数:
path: 文件路径(必需)from: 起始行号(可选)lines: 读取行数(可选)maxChars: 最大字符数限制
特性:
- 支持图像描述(当模型无原生视觉能力时)
- 支持行号定位
- 可配置图像 sanitization 限制
2. write - 文件写入工具
GPT plus 代充 只需 145// 位置:pi-coding-agent 内置 // 功能:创建或写入文件
参数:
path: 文件路径(必需)content: 文件内容(必需)
安全策略:
- 可配置 workspaceOnly 限制
- 沙箱环境下可能被禁用
3. edit - 文件编辑工具
// 位置:pi-coding-agent 内置 // 功能:编辑现有文件
参数:
path: 文件路径oldString: 要替换的原文newString: 替换后的新内容
约束:
- 需要精确匹配 oldString
- 沙箱环境下可能被禁用
4. apply_patch - 补丁应用工具
GPT plus 代充 只需 145// 位置:src/agents/apply-patch.ts // 功能:通过 unified diff 格式应用代码补丁
适用条件:
- 仅适用于 OpenAI 提供商
- 需要在配置中启用
tools.exec.applyPatch
5. exec/bash - 命令执行工具
// 位置:src/agents/bash-tools.ts // 功能:执行 Shell 命令或脚本
参数:
command: 要执行的命令timeout: 超时时间(秒)context: 执行上下文
安全特性:
- 支持 safeBins 白名单
- 支持 pathPrepend 路径配置
- 支持后台进程管理
- 支持沙箱隔离执行
二、OpenClaw 特有工具
1. browser - 浏览器控制工具
GPT plus 代充 只需 145// 文件:src/agents/tools/browser-tool.ts
功能:控制浏览器执行各种自动化操作
支持的操作:
运行模式:
sandbox: 沙箱浏览器(在隔离环境中运行)host: 宿主机浏览器node: 通过 Gateway 节点运行
2. message - 消息发送工具
// 文件:src/agents/tools/message-tool.ts
功能:向各种消息渠道发送消息
支持的渠道:
- Discord
- Telegram
- Signal
- iMessage
- SMS
功能特性:
- 发送文本消息
- 发送附件(图片、文件等)
- 创建交互式按钮
- 创建模态框表单
- 发送带特效的消息
- 创建投票
重要参数:
action: 操作类型(send, reply, broadcast 等)channel: 目标渠道target: 目标用户/频道text: 消息内容attachment: 附件
3. tts - 文字转语音工具
GPT plus 代充 只需 145// 文件:src/agents/tools/tts-tool.ts
功能:将文本转换为语音并发送
参数:
text: 要转换的文本channel: 可选的渠道标识(影响输出格式)
返回:
- 音频文件路径
- 特殊标记
[[audio_as_voice]]表示语音气泡形式
4. web_search - 网络搜索工具
// 文件:src/agents/tools/web-search.ts
功能:执行网络搜索
默认提供商:Brave Search
可配置的提供商:
- Brave
- Tavily
- Serper
- DuckDuckGo
特性:
- 自动检测可用的 API 密钥
- 支持配置多个提供商
- 沙箱环境默认启用
5. web_fetch - 网页抓取工具
GPT plus 代充 只需 145// 文件:src/agents/tools/web-fetch.ts
功能:获取网页内容
参数:
url: 目标 URL(必需)extractMode: 提取模式(markdown/text)maxChars: 最大返回字符数
高级特性:
- Firecrawl 支持(需配置 API)
- SSRF 防护
- 响应缓存
- 内容截断保护
6. image - 图像理解工具
// 文件:src/agents/tools/image-tool.ts
功能:使用 AI 模型分析图像内容
使用场景:
- 描述图像内容
- 提取图像中的文字(OCR)
- 图像问答
模型选择:
- 优先使用配置的 explicit 模型
- 尝试与主模型配对(同提供商)
- 回退到 OpenAI/Anthropic
参数:
path: 图像路径或 URLprompt: 分析提示词(可选)maxTokens: 最大 token 数
7. pdf - PDF 文档分析工具
GPT plus 代充 只需 145// 文件:src/agents/tools/pdf-tool.ts
功能:分析 PDF 文档内容
特性:
- 文本提取
- 图像分析
- 页面范围选择
- AI 问答
参数:
path: PDF 文件路径prompt: 分析提示词maxPages: 最大页数限制pageRange: 页面范围(如 “1-10”)
8. nodes - 设备控制工具
// 文件:src/agents/tools/nodes-tool.ts
功能:通过 Gateway 控制连接的 iOS/Android 设备
支持的操作:
特殊操作:
- pending/approve/reject: 审批流操作
9. canvas - Canvas 演示控制工具
GPT plus 代充 只需 145// 文件:src/agents/tools/canvas-tool.ts
功能:控制 macOS/iOS Canvas 演示功能
操作:
10. gateway - 网关控制工具
// 文件:src/agents/tools/gateway-tool.ts
功能:控制 OpenClaw Gateway
操作:
安全限制:
- 仅限 owner(所有者)使用
- 需要在配置中启用
commands.restart
11. cron - 定时任务管理工具
GPT plus 代充 只需 145// 文件:src/agents/tools/cron-tool.ts
功能:管理定时任务和提醒
操作:
任务类型:
- 定时消息
- Webhook 触发
- 循环任务
12. memory_search - 记忆搜索工具
// 文件:src/agents/tools/memory-tool.ts
功能:语义搜索记忆文件
搜索范围:
MEMORY.md- 主记忆文件memory/*.md- 其他记忆文件- 可选的会话记录
使用场景:
- 回答关于之前工作的问题
- 查找决策历史
- 回忆人物、偏好、待办事项
参数:
query: 搜索查询maxResults: 最大结果数minScore: 最低相关度分数
三、会话管理工具组
13. sessions_list - 会话列表工具
GPT plus 代充 只需 145// 文件:src/agents/tools/sessions-list-tool.ts
功能:列出当前会话
参数:
kinds: 会话类型过滤(main/group/cron/hook/node/other)limit: 返回数量限制activeMinutes: 活跃时间过滤messageLimit: 消息数量限制
14. sessions_history - 会话历史工具
// 文件:src/agents/tools/sessions-history-tool.ts
功能:获取会话的历史消息
15. sessions_send - 会话消息发送工具
GPT plus 代充 只需 145// 文件:src/agents/tools/sessions-send-tool.ts
功能:向指定会话发送消息
16. sessions_spawn - 会话创建工具
// 文件:src/agents/tools/sessions-spawn-tool.ts
功能:创建新的子会话
用途:
- 开启新的对话分支
- 创建并行处理任务
- 子代理 spawn
17. sessions_yield - 会话控制让出工具
GPT plus 代充 只需 145// 文件:src/agents/tools/sessions-yield-tool.ts
功能:让出控制权,返回父会话
18. session_status - 会话状态工具
// 文件:src/agents/tools/session-status-tool.ts
功能:获取当前会话的状态信息
19. agents_list - Agent 列表工具
GPT plus 代充 只需 145// 文件:src/agents/tools/agents-list-tool.ts
功能:列出所有配置的 Agent
20. subagents - 子 Agent 管理工具
// 文件:src/agents/tools/subagents-tool.ts
功能:管理已 spawn 的子 Agent
操作:
OpenClaw 实现了多层次的工具安全控制:
1. 所有者限制
某些敏感工具标记为 ownerOnly,仅配置的所有者可以使用:
GPT plus 代充 只需 145{ name: “gateway”, ownerOnly: true, // … }
2. 工具策略管道
通过配置文件细粒度控制工具访问:
// 策略检查顺序 applyToolPolicyPipeline({ steps: [
GPT plus 代充 只需 145profilePolicy, // Profile 级别策略 providerProfilePolicy, // 提供商级别策略 globalPolicy, // 全局策略 agentPolicy, // Agent 策略 groupPolicy, // 群组策略 sandboxPolicy, // 沙箱策略 subagentPolicy, // 子 Agent 策略
] })
3. 沙箱隔离
支持在隔离环境中运行工具:
- sandboxed: 文件系统隔离
- workspaceOnly: 仅允许访问工作区
- read-only: 只读模式
4. 文件系统策略
// 可配置的 fsPolicy { workspaceOnly: true, // 仅工作区 allowPaths: [], // 额外允许的路径 denyPaths: [], // 拒绝的路径 }
GPT plus 代充 只需 145createOpenClawCodingTools()
│ ├── 1. pi-coding-agent 基础工具 │ ├── read (包装) │ ├── write (包装) │ ├── edit (包装) │ └── apply_patch │ ├── 2. Bash 工具 │ ├── exec │ └── process │ ├── 3. OpenClaw 工具 (createOpenClawTools) │ ├── browser │ ├── canvas │ ├── nodes │ ├── cron │ ├── message │ ├── tts │ ├── gateway │ ├── agents_list │ ├── sessions_* │ ├── subagents │ ├── web_search │ ├── web_fetch │ ├── image │ └── pdf │ └── 4. 插件工具 (resolvePluginTools) └── 第三方扩展工具
启用/禁用工具
GPT plus 代充 只需 145// config.json { “tools”: {
"web": { "search": { "enabled": true, "provider": "brave" }, "fetch": { "enabled": true } }, "exec": { "enabled": true, "security": "strict", "safeBins": ["git", "npm", "pnpm"] }
} }
配置 safeBins
GPT plus 代充 只需 145{ “tools”: {
"exec": { "safeBins": ["git", "npm", "pnpm", "node", "bun"], "safeBinProfiles": { "default": { "allow": ["git", "npm"] } } }
} }
OpenClaw 提供了一套功能完备的工具系统,使 AI Agent 能够:
- 文件操作 - 读取、写入、编辑代码文件
- 命令执行 - 运行 Shell 命令和脚本
- 浏览器自动化 - 网页浏览和交互
- 网络能力 - 搜索和抓取网页
- 多媒体处理 - 图像和 PDF 分析
- 设备控制 - 通过 Gateway 控制移动设备
- 消息通信 - 多渠道消息发送
- 语音合成 - 文字转语音
- 任务调度 - 定时任务管理
- 会话管理 - 多会话协作
- 记忆搜索 - 语义检索历史信息
这套工具系统是 OpenClaw 作为 AI Agent 基础设施的核心组成部分。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/243289.html