OpenCode: OpenCode工具

最后更新:2026-08-31

OpenCode 的强大能力源于其内置工具体系,AI 通过调用工具来执行具体操作。

1. 你将学到


2. 内置工具概览

工具 功能 权限级别
read 读取文件内容 只读
write 写入/创建文件 写入
edit 编辑/修补文件 写入
bash 执行 Shell 命令 执行
grep 搜索文件内容 只读
glob 按模式查找文件 只读
list 列出目录内容 只读
webfetch 获取网页内容 网络
task 调用子代理 代理

3. 文件操作工具

(1) read(读取文件)

AI 自动读取项目文件来理解上下文:

TEXT 📖 仅展示
查看 src/index.ts 的内容

(2) write(写入文件)

创建新文件或覆盖文件:

TEXT 📖 仅展示
创建 src/utils/logger.ts,实现一个简单的日志工具

(3) edit(编辑文件)

精确修改文件的部分内容,使用搜索+替换:

TEXT 📖 仅展示
将 src/config.ts 中的 API_URL 从 localhost 改为 production.example.com

4. Shell 执行工具

(1) bash

执行任意 Shell 命令:

TEXT 📖 仅展示
运行 npm test 并分析失败的测试

AI 会:

  1. 执行 npm test
  2. 分析输出中的错误信息
  3. 定位问题并给出修复建议
  4. 可以直接修改代码修复问题

(2) 常用场景

场景 示例
安装依赖 "安装 express 和 cors"
运行测试 "运行测试并修复失败的用例"
启动项目 "启动开发服务器"
查看日志 "查看最近的错误日志"

5. 搜索与分析工具

(1) grep

搜索文件内容:

TEXT 📖 仅展示
在项目中搜索所有使用了 deprecated API 的地方

(2) glob

按模式查找文件:

TEXT 📖 仅展示
找出项目中所有的测试文件

(3) list

列出目录内容:

TEXT 📖 仅展示
查看 src/ 目录的结构

6. 工具配置

(1) 全局工具开关

JSON
{
  "tools": {
    "write": true,
    "edit": true,
    "bash": true,
    "webfetch": false
  }
}

(2) 代理级工具配置

JSON
{
  "agent": {
    "review": {
      "tools": {
        "write": false,
        "edit": false
      }
    }
  }
}

(3) 权限配置

JSON
{
  "permission": {
    "edit": "ask",
    "bash": {
      "*": "ask",
      "git status *": "allow",
      "npm test": "allow"
    }
  }
}
权限值 说明
allow 直接允许,无需确认
ask 需要用户确认
deny 直接拒绝

7. MCP 扩展工具

通过 MCP(Model Context Protocol)可以扩展更多工具:

BASH
opencode mcp add

详见第 17 课 MCP 服务器配置。


❓ 常见问题

Q 如何禁止 AI 执行危险操作?
A 在 permission 配置中将 bash 设为 ask 或 deny,这样 AI 执行命令前需要你确认。也可以用 Glob 模式精细控制:允许 git status,拒绝 rm -rf
Q AI 执行了错误的修改怎么办?
A 立即使用 /undo 撤销。建议在 opencode.json 中将 edit 和 write 权限设为 ask,这样 AI 修改文件前需要你确认。
Q Alice 允许所有工具,Bob 只允许只读工具,谁更安全?
A Bob 更安全。只读配置(禁用 write/edit/bash)可以防止 AI 做出任何修改,适合代码审查场景。Alice 的配置效率更高但风险也更大。

📖 小节


📝 作业

  1. 基础题:在 opencode.json 中配置工具权限,将 edit 设为 ask。

  2. 进阶题:创建一个只读代理,禁用所有写入和执行工具。

  3. 挑战题:使用 Glob 模式配置 bash 权限,允许 git 操作但拒绝 rm 和其他危险命令。

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏