工具
管理 LLM 可以使用的工具。
Tools allow the LLM to perform actions in your codebase. opencode comes with a set of built-in tools, but you can extend it with custom tools or MCP servers.
默认情况下,所有工具都是启用并且不需要执行权限。您可以交叉permissions 控制工具行为。
配置
使用 permission 栏位控制工具行为。您可以允许、拒绝或要求批准每个工具。
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "deny", "bash": "ask", "webfetch": "allow" }}您还可以使用万用字元同时控制多个工具。例如,要求 MCP 服务器批准所有工具:
{ "$schema": "https://opencode.ai/config.json", "permission": { "mymcp_*": "ask" }}了解更多关于配置许可权。
內建
以下是 opencode 中可用的所有内置工具。
巴什
在专案环境中执行shell命令。
{ "$schema": "https://opencode.ai/config.json", "permission": { "bash": "allow" }}This tool allows the LLM to run terminal commands like npm install, git status, or any other shell command.
編輯
使用精確的字符串替換修改現有文件。
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}该工具取消替换精确的文字来匹配对文件执行精确编辑。这是 LLM 修改代码的主要方式。
寫
建立新文件或覆盖現有文件。
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}使用它允许 LLM 创建新文件。如果现有文件已经存在,将会覆盖它们。
讀
從程式碼庫中讀取文件內容。
{ "$schema": "https://opencode.ai/config.json", "permission": { "read": "allow" }}该工具讀取文件并返回其內容。它支持讀取大文件的特定行范围。
grep
使用正規表示式搜索文件內容。
{ "$schema": "https://opencode.ai/config.json", "permission": { "grep": "allow" }}在您的程式碼庫中快速進行內容搜索。支持完整的正規表示式語法和文件模式过濾。
全域性
通过模式匹配查询文件。
{ "$schema": "https://opencode.ai/config.json", "permission": { "glob": "allow" }}使用 **/*.js 或 src/**/*.ts 等全域性模式搜索档案。返回按时间排序的匹配档案路径修改。
列表
列出給定路徑中的文件和目录。
{ "$schema": "https://opencode.ai/config.json", "permission": { "list": "allow" }}该工具列出目录內容。它接受全域性模式來过濾結果。
lsp(实验性)
与您配置的LSP服务器交互,通知计划码智慧功能,例如定义、引用、悬停资讯和呼叫层次结构。
{ "$schema": "https://opencode.ai/config.json", "permission": { "lsp": "allow" }}支持的操作包括 goToDefinition、findReferences、hover、documentSymbol、workspaceSymbol、goToImplementation、prepareCallHierarchy、incomingCalls 和 outgoingCalls。
To configure which LSP servers are available for your project, see LSP Servers.
修補
对文件应用補丁。
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}该工具将補丁文件应用到您的程式碼庫。对于应用來自各種來源的差異和補丁很有帮助。
技能
加载skill(SKILL.md 档案)并在对话中返回其内容。
{ "$schema": "https://opencode.ai/config.json", "permission": { "skill": "allow" }}待辦寫入
在編碼会话期間管理待辦事項列表。
{ "$schema": "https://opencode.ai/config.json", "permission": { "todowrite": "allow" }}建立和更新任务列表以跟踪复杂操作期间的详细信息。LLM 使用它来组织多步骤任务。
託多雷德
閱讀現有的待辦事項列表。
{ "$schema": "https://opencode.ai/config.json", "permission": { "todoread": "allow" }}读取当前完成待办事项列表状态。由 LLM 用于跟踪哪些任务待处理或已已。
網頁抓取
获取網頁內容。
{ "$schema": "https://opencode.ai/config.json", "permission": { "webfetch": "allow" }}允许 LLM 获取和读取网页。对于查询文件或研究线上资源很有帮助。
網路搜索
在網路上搜索資訊。
{ "$schema": "https://opencode.ai/config.json", "permission": { "websearch": "allow" }}使用 Exa AI 执行网路搜索以线上查询相关资讯。对于研究主题、查询时事或收集训练超出数据范围的资讯很有帮助。
不需要 API 密钥 — 该工具消耗身份验证即可直接连线到 Exa AI 的托管 MCP 服务。
問題
在执行过程中詢問用户問題。
{ "$schema": "https://opencode.ai/config.json", "permission": { "question": "allow" }}该工具允许 LLM 在任务期间询问用户问题。它适用于:
- 收集用户偏好或要求
- 澄清不明確的指令
- 就實施选择做出決策
- 提供选择方向
每个問題都包含標題、問題文字和選項列表。用户可以從提供的選項中進行选择或輸入自定義答案。当存在多个問題時,用户可以在提交所有答案之前在这些問題之间导航。
定製工具
自定义工具可以让您定义LLM可以调用自己的函式。这些是在您的配置文件中定义的并且可以执行任何代码。
了解更多关于创建自定义工具。
MCP 服务器
MCP(模型上下文协议)服务器允许您集成外部工具和服务。这包括数据库访问、API 集成和第三方服务。
了解更多关于配置MCP服务器。
内部結構
Internally, tools like grep, glob, and list use ripgrep under the hood. By default, ripgrep respects .gitignore patterns, which means files and directories listed in your .gitignore will be excluded from searches and listings.
忽略模式
要包含通常会被忽略的文件,请在专案根目录中建立 .ignore 文件。该文件可以明确允许某些路径。
!node_modules/!dist/!build/例如,此 .ignore 档案允许 ripgrep 在 node_modules/、dist/ 和 build/ 目录中搜索,即使它们列在 .gitignore 中。