Qwen Code 工具
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 提供提示词即可。具体流程如下:
- 你向 CLI 提供提示词。
- CLI 将提示词发送给核心组件。
- 核心组件连同你的提示词和对话历史,将可用的工具列表及其描述/schema 一并发送给配置好的模型 API。
- 模型分析你的请求。如果它认为需要某个工具,其响应将包含一个请求,要求使用特定参数执行某个工具。
- 核心组件收到这个工具请求,进行验证,然后(对于敏感操作,通常会在用户确认后)执行该工具。
- 工具的输出结果被发送回模型。
- 模型利用工具的输出结果来形成最终答案,然后通过核心组件发送回 CLI,并展示给你。
你通常会在 CLI 中看到消息,提示某个工具正在被调用以及它是成功还是失败。
安全与确认
许多工具,尤其是那些可以修改文件系统或执行命令的工具(write_file、edit、run_shell_command),在设计上都考虑到了安全性。Qwen Code 通常会:
- 要求确认: 在执行潜在敏感操作之前提示你,并显示将要执行的操作。
- 利用沙箱: 所有工具都受到沙箱强制实施限制的影响(参见 Qwen Code 中的沙箱)。这意味着,在沙箱内操作时,你希望使用的任何工具(包括 MCP 服务器)都必须_在_沙箱环境中可用。例如,要通过
npx运行 MCP 服务器,npx可执行文件必须安装在沙箱的 Docker 镜像中,或者在sandbox-exec环境中可用。
在允许工具继续执行之前,务必仔细审查确认提示。
了解更多关于 Qwen Code 的工具
Qwen Code 的内置工具可以大致分为以下几类:
- 文件系统工具: 用于与文件和目录交互(读取、写入、列出、搜索等)。
- Shell 工具 (
run_shell_command): 用于执行 shell 命令。 - 监控工具 (
monitor): 用于运行长时间执行的 shell 命令,并以后台任务通知的形式流式输出结果。 - Web 获取工具 (
web_fetch): 用于从 URL 获取内容。 - 任务清单写入工具 (
todo_write): 用于在编码会话期间创建和管理结构化任务列表。 - 代理工具 (
agent): 用于将复杂任务委托给专门的子代理。 - 退出计划模式工具 (
exit_plan_mode): 用于退出计划模式并继续实施。
此外,这些工具还整合了:
- MCP 服务器:MCP 服务器充当模型与本地环境或其他服务(如 API)之间的桥梁。
- MCP 用户指南:在 Qwen Code 中配置 MCP 服务器并进行管理。
- 通过 MCP 进行网页搜索:通过 MCP 连接网页搜索服务(百炼、Tavily、GLM)。
- 沙箱:沙箱将模型及其变更与你的环境隔离开来,以降低潜在风险。
Last updated on