Hogwarts测试开发
06-23·北京测吧员工
OpenCode 内置工具大全(三)
3.4 edit:改代码的核心手段edit 是 OpenCode 修改代码的主要方式。它通过精确的字符串替换来修改文件。AI 告诉 edit:“把 function oldName() 改成 function newName()”,edit 找到精确匹配的文本,替换掉。为什么是字符串替换,而不是直接重写整个文件?两个原因。第一,安全。只改需要改的部分,不动其他地方。第二,可审计。每次修改都是明确的替换操作,diff 清晰,容易回滚。edit 内部实现用的是 read + 字符串替换 + write——先读出来,替换,再写回去。3.5 write:创建新文件write 用来创建新文件,或者覆盖已有文件。新建一个 api/users.ts,或者生成一个完整的组件文件——write 搞定。如果文件已存在,它会覆盖。所以在实际使用中,AI 通常先用 read 检查文件是否存在,再决定用 write 还是 edit。3.6 bash:执行任何 shell 命令bash 是 OpenCode 的“手”——它能跑 npm install、git status、python test.py,任何你在终端能敲的命令,它都能跑。这个工具的意义远超“方便”。有了 bash,AI 可以验证自己的修改。改完代码,跑一遍测试,看有没有 break 什么东西。装完依赖,确认版本是否正确。整个开发闭环的最后一环——验证——靠 bash 完成。bash 默认在项目环境中执行。这意味着它知道你的项目路径、环境变量、依赖关系。3.7 其他工具一览还有几个工具值得提一下:lsp(实验性) :和 Language Server 协议交互,支持跳转到定义、查找引用、悬停信息等。让 AI 具备 IDE 级别的代码理解能力。patch:应用补丁文件。todowrite:管理任务列表,跟踪多步骤任务的进度。webfetch / websearch:获取网页内容、搜索网络信息。让 AI 能查阅最新文档。question:执行过程中向用户提问,收集决策信息。3.8 工具调用的协作模式单个工具的能力有限。真正有价值的是工具之间的协作。下图展示了一个典型任务中工具调用的流程:这个流程图展示的不是理论,而是 OpenCode 在实际任务中的真实操作顺序。
发布于 北京
分享
评论
未登录
友善发言
image-upload
评论
加载中