# Qwen Code 工具

> Qwen Code 内置了一系列工具，供模型用于与本地环境交互、获取信息及执行操作。这些工具增强了 CLI 的能力，使其不仅能生成文本，还能协助完成多种任务。

- 网址：https://funcoding.ai/agents/qwen-code/developers/tools/introduction/
- 来源：Qwen Code 官方文档原文（中文），Apache-2.0 许可，同步于 2026-10-11
- 官方原文：https://qwenlm.github.io/qwen-code-docs/zh/developers/tools/introduction

---
Qwen Code 内置了一系列工具，供模型用于与本地环境交互、获取信息及执行操作。这些工具增强了 CLI 的能力，使其不仅能生成文本，还能协助完成多种任务。

## Qwen Code 工具概览

在 Qwen Code 的语境中，工具是指模型可以请求执行的特定函数或模块。例如，如果你让模型“总结 `my_document.txt` 的内容”，它会识别出需要读取该文件，并请求执行 `read_file` 工具。

核心组件（`packages/core`）负责管理这些工具，向模型提供其定义（schema），在模型请求时执行它们，并将结果返回给模型，以便模型进一步处理并生成面向用户的响应。

这些工具提供了以下能力：

- **访问本地信息：** 工具让模型能够访问你的本地文件系统，读取文件内容、列出目录等。
- **执行命令：** 借助 `run_shell_command` 等工具，模型可以运行 shell 命令（配合适当的安全措施和用户确认）。
- **与 Web 交互：** 工具可以从 URL 获取内容。
- **执行操作：** 工具可以修改文件、写入新文件，或在你的系统上执行其他操作（同样通常带有保护措施）。
- **增强回答的可靠性：** 通过使用工具获取实时或特定的本地数据，模型的回答可以更准确、更相关，并且更贴合你的实际上下文。

## 如何使用 Qwen Code 工具

要使用 Qwen Code 工具，只需向 CLI 提供提示词即可。具体流程如下：

1.  你向 CLI 提供提示词。
2.  CLI 将提示词发送给核心组件。
3.  核心组件连同你的提示词和对话历史，将可用的工具列表及其描述/schema 一并发送给配置好的模型 API。
4.  模型分析你的请求。如果它认为需要某个工具，其响应将包含一个请求，要求使用特定参数执行某个工具。
5.  核心组件收到这个工具请求，进行验证，然后（对于敏感操作，通常会在用户确认后）执行该工具。
6.  工具的输出结果被发送回模型。
7.  模型利用工具的输出结果来形成最终答案，然后通过核心组件发送回 CLI，并展示给你。

你通常会在 CLI 中看到消息，提示某个工具正在被调用以及它是成功还是失败。

## 安全与确认

许多工具，尤其是那些可以修改文件系统或执行命令的工具（`write_file`、`edit`、`run_shell_command`），在设计上都考虑到了安全性。Qwen Code 通常会：

- **要求确认：** 在执行潜在敏感操作之前提示你，并显示将要执行的操作。
- **利用沙箱：** 所有工具都受到沙箱强制实施限制的影响（参见 [Qwen Code 中的沙箱](https://funcoding.ai/agents/qwen-code/developers/tools/sandbox/)）。这意味着，在沙箱内操作时，你希望使用的任何工具（包括 MCP 服务器）都必须_在_沙箱环境中可用。例如，要通过 `npx` 运行 MCP 服务器，`npx` 可执行文件必须安装在沙箱的 Docker 镜像中，或者在 `sandbox-exec` 环境中可用。

在允许工具继续执行之前，务必仔细审查确认提示。

## 了解更多关于 Qwen Code 的工具

Qwen Code 的内置工具可以大致分为以下几类：

- **[文件系统工具](https://funcoding.ai/agents/qwen-code/developers/tools/file-system/)：** 用于与文件和目录交互（读取、写入、列出、搜索等）。
- **[Shell 工具](https://funcoding.ai/agents/qwen-code/developers/tools/shell/) (`run_shell_command`)：** 用于执行 shell 命令。
- **[监控工具](https://funcoding.ai/agents/qwen-code/developers/tools/monitor/) (`monitor`)：** 用于运行长时间执行的 shell 命令，并以后台任务通知的形式流式输出结果。
- **[Web 获取工具](https://funcoding.ai/agents/qwen-code/developers/tools/web-fetch/) (`web_fetch`)：** 用于从 URL 获取内容。
- **[Web 搜索工具](https://funcoding.ai/agents/qwen-code/developers/tools/web-search/) (`web_search`)：** 用于搜索网页。在启动时，如果有支持该功能的提供商可用，则该工具可用。
- **[任务清单写入工具](https://funcoding.ai/agents/qwen-code/developers/tools/todo-write/) (`todo_write`)：** 一个可选（opt-in）工具，用于在编码会话期间创建和管理结构化任务列表。
- **[代理工具](https://funcoding.ai/agents/qwen-code/developers/tools/task/) (`agent`)：** 用于将复杂任务委托给专门的子代理。
- **[退出计划模式工具](https://funcoding.ai/agents/qwen-code/developers/tools/exit-plan-mode/) (`exit_plan_mode`)：** 用于退出计划模式并继续实施。

此外，这些工具还整合了：

- **[MCP 服务器](https://funcoding.ai/agents/qwen-code/developers/tools/mcp-server/)**：MCP 服务器充当模型与本地环境或其他服务（如 API）之间的桥梁。
  - **[MCP 用户指南](https://funcoding.ai/agents/qwen-code/users/features/mcp/)**：在 Qwen Code 中配置 MCP 服务器并进行管理。
  - **[通过 MCP 进行网页搜索](https://funcoding.ai/agents/qwen-code/developers/tools/web-search/)**：通过 MCP 连接网页搜索服务（百炼、Tavily、GLM）。
- **[沙箱](https://funcoding.ai/agents/qwen-code/developers/tools/sandbox/)**：沙箱将模型及其变更与你的环境隔离开来，以降低潜在风险。
