Skip to content
FunCoding

Search

Search docs, Skills and MCP

内置工具参考

区分读取、修改、检索、联网与交互工具,并核对实验性工具及权限条件。

This page has not been translated into English yet. The original Chinese version is shown below.

工具让模型读取上下文并执行动作。内置工具之外,还可以接入自定义工具与 MCP。工具存在、工具启用和某次调用获得权限是不同条件,默认例外见权限与工具。

文件与命令

工具行为主要权限
read读取文件,支持大文件行范围read
edit精确字符串替换现有文件edit
write新建文件,目标存在时可覆盖edit
apply_patch应用补丁edit
glob按模式找文件,结果按修改时间排序glob
grep正则搜索内容并按文件模式过滤grep
bash在项目环境执行 shell 命令bash

带工作区外路径的操作还可能受到 external_directory 控制。允许 read 不代表允许编辑,拒绝 edit 也不自动阻止所有 shell 写入。

补丁工具与 Hooks

处理 tool.execute.before 或 tool.execute.after 时,工具名称应检查 input.tool === "apply_patch",不要使用 "patch"。

该工具的补丁在 output.args.patchText,不是 output.args.filePath。路径嵌在补丁标记中,如 *** Add File:、*** Update File:、*** Move to:、*** Delete File:,并相对项目根目录。编写路径检查时要考虑新增、修改、移动和删除,不能只寻找单一 filePath 字段。

LSP 查询

实验性 lsp 工具要求 OPENCODE_EXPERIMENTAL_LSP_TOOL=true 或 OPENCODE_EXPERIMENTAL=true,并需有适用的 LSP 配置与权限。它支持定义、引用、悬浮说明、文档/工作区符号、实现与调用层级查询。

官方列出的操作名包括 goToDefinition、findReferences、hover、documentSymbol、workspaceSymbol、goToImplementation、prepareCallHierarchy、incomingCalls、outgoingCalls。仅允许 permission.lsp 不能代替启用实验工具或配置服务器。

网络查询

webfetch 获取指定 URL;websearch 通过 Exa 或 Parallel 搜索,适合先发现资料。后者仅在使用 OpenCode/OpenCode Go 提供商,或设置 OPENCODE_ENABLE_EXA、OPENCODE_ENABLE_PARALLEL 中任一变量为 truthy 值时可用。

例如 OPENCODE_ENABLE_EXA=1 opencode 启用对应搜索入口。官方说明该搜索连接后端托管 MCP,无需另提供 API Key;这不代表所有模型请求或其他 MCP 服务都无需凭据。

任务与用户交互

skill 加载 SKILL.md 并把内容加入对话。todowrite 管理待办,默认对子智能体禁用。Task 调用由 task 权限按子智能体类型匹配,详见委派与深度。

question 在执行期间向用户询问偏好或需求,可包含标题、问题和选项,用户也能输入自定义答案。允许该工具不等于用户已经批准其他受限动作。

忽略文件与搜索结果

grep 和 glob 底层使用 ripgrep,默认遵守 .gitignore,因此忽略目录不会出现在普通搜索与列表中。

官方说明可以在项目根 .ignore 中使用反向规则重新包含路径,例如 !dist/。搜索忽略与文件读取权限不同,不能把 .gitignore 当成禁止代理访问敏感内容的安全措施。