Files
opencode/packages/web/src/content/docs/zh-cn/tools.mdx
2026-02-09 18:11:59 -06:00

380 lines
8.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 工具
description: 管理 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](/docs/custom-tools) or [MCP servers](/docs/mcp-servers).
默认情况下,所有工具都是**启用**并且不需要执行权限。您可以交叉[permissions](/docs/permissions) 控制工具行为。
---
## 配置
使用 `permission` 栏位控制工具行为。您可以允许、拒绝或要求批准每个工具。
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}
```
您还可以使用万用字元同时控制多个工具。例如,要求 MCP 服务器批准所有工具:
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"mymcp_*": "ask"
}
}
```
[了解更多](/docs/permissions)关于配置许可权。
---
## 內建
以下是 opencode 中可用的所有内置工具。
---
### 巴什
在专案环境中执行shell命令。
```json title="opencode.json" {4}
{
"$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.
---
### 編輯
使用精確的字串替換修改現有檔案。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "allow"
}
}
```
该工具取消替换精确的文字来匹配对文件执行精确编辑。这是 LLM 修改程序代码的主要方式。
---
### 寫
建立新檔案或覆蓋現有檔案。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "allow"
}
}
```
使用它允许 LLM 创建新文件。如果现有文件已经存在,将会覆盖它们。
:::note
`write`工具由`edit`许可权控制,该许可权主题所有文件修改(`edit`、`write`、`patch`、`multiedit`)。
:::
---
### 讀
從程式碼庫中讀取檔案內容。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"read": "allow"
}
}
```
該工具讀取檔案並返回其內容。它支援讀取大檔案的特定行範圍。
---
### grep
使用正規表示式搜尋檔案內容。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"grep": "allow"
}
}
```
在您的程式碼庫中快速進行內容搜尋。支援完整的正規表示式語法和檔案模式過濾。
---
### 全域性
透過模式匹配查詢檔案。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"glob": "allow"
}
}
```
使用 `**/*.js` 或 `src/**/*.ts` 等全域性模式搜索档案。返回按时间排序的匹配档案路径修改。
---
### 列表
列出給定路徑中的檔案和目錄。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"list": "allow"
}
}
```
該工具列出目錄內容。它接受全域性模式來過濾結果。
---
### lsp实验性
与您配置的LSP服务器交互通知计划码智慧功能例如定义、引用、悬停资讯和呼叫层次结构。
:::note
This tool is only available when `OPENCODE_EXPERIMENTAL_LSP_TOOL=true` (or `OPENCODE_EXPERIMENTAL=true`).
:::
```json title="opencode.json" {4}
{
"$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](/docs/lsp).
---
### 修補
對檔案應用補丁。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "allow"
}
}
```
該工具將補丁檔案應用到您的程式碼庫。對於應用來自各種來源的差異和補丁很有用。
:::note
`patch`工具由`edit`许可权控制,该许可权主题所有文件修改(`edit`、`write`、`patch`、`multiedit`)。
:::
---
### 技能
加载[skill](/docs/skills)`SKILL.md` 档案)并在对话中返回其内容。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"skill": "allow"
}
}
```
---
### 待辦寫入
在編碼會話期間管理待辦事項列表。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"todowrite": "allow"
}
}
```
建立和更新任务列表以跟踪复杂操作期间的详细信息。LLM 使用它来组织多步骤任务。
:::note
默认情况下,子代理取消此工具,但您可以手动启用它。 [了解更多](/docs/agents/#permissions)
:::
---
### 託多雷德
閱讀現有的待辦事項列表。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"todoread": "allow"
}
}
```
读取当前完成待办事项列表状态。由 LLM 用于跟踪哪些任务待处理或已已。
:::note
默认情况下,子代理取消此工具,但您可以手动启用它。 [了解更多](/docs/agents/#permissions)
:::
---
### 網頁抓取
獲取網頁內容。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"webfetch": "allow"
}
}
```
允许 LLM 获取和读取网页。对于查询文件或研究线上资源很有用。
---
### 網路搜尋
在網路上搜尋資訊。
:::note
仅当使用 opencode 提供或 `OPENCODE_ENABLE_EXA` 程序环境变量设置为任何真值(例如 `true` 或 `1`)时,此工具才可用。
要在启动 opencode 时启用:
```bash
OPENCODE_ENABLE_EXA=1 opencode
```
:::
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"websearch": "allow"
}
}
```
使用 Exa AI 执行网路搜索以线上查询相关资讯。对于研究主题、查询时事或收集训练超出数据范围的资讯很有用。
不需要 API 金钥匙 — 该工具消耗身份验证即可直接连线到 Exa AI 的托管 MCP 服务。
:::tip
当您需要查询资讯(发现)时,请使用 `websearch`;当您需要从特定 URL 检索内容(搜索)时,请使用 `webfetch`。
:::
---
### 問題
在執行過程中詢問使用者問題。
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"question": "allow"
}
}
```
该工具允许 LLM 在任务期间询问用户问题。它适用于:
- 收集使用者偏好或要求
- 澄清不明確的指令
- 就實施選擇做出決策
- 提供選擇方向
每個問題都包含標題、問題文字和選項列表。使用者可以從提供的選項中進行選擇或輸入自定義答案。當存在多個問題時,使用者可以在提交所有答案之前在這些問題之間導航。
---
## 定製工具
自定义工具可以让您定义LLM可以调用自己的函式。这些是在您的配置文件中定义的并且可以执行任何程序代码。
[了解更多](/docs/custom-tools)关于创建自定义工具。
---
## MCP 伺服器
MCP模型上下文协议服务器允许您集成外部工具和服务。这包括数据库访问、API 集成和第三方服务。
[了解更多](/docs/mcp-servers)关于配置MCP服务器。
---
## 內部結構
Internally, tools like `grep`, `glob`, and `list` use [ripgrep](https://github.com/BurntSushi/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` 文件。该文件可以明确允许某些路径。
```text title=".ignore"
!node_modules/
!dist/
!build/
```
例如,此 `.ignore` 档案允许 ripgrep 在 `node_modules/`、`dist/` 和 `build/` 目录中搜索,即使它们列在 `.gitignore` 中。