使用说明
项目简介
Qwen-Agent 是一个用于构建基于 Qwen LLM 应用的框架,它利用 Qwen 的指令跟随、工具使用、规划和记忆能力。其中,MCP (Model Context Protocol) 服务器组件允许 Qwen-Agent 作为 MCP 服务器,对外提供标准化的上下文信息和功能。
主要功能点
- 资源管理 (Resources): 托管和管理应用程序所需的各种资源,例如文档、数据文件等,并提供数据访问能力。
- 工具注册和执行 (Tools): 允许注册和执行外部工具,使得 LLM 客户端可以通过 MCP 服务器调用这些工具,扩展 LLM 的功能。
- Prompt 模板 (Prompts): 支持定义和渲染 Prompt 模板,实现可定制的 LLM 交互模式,方便客户端根据需求获取特定 Prompt。
- JSON-RPC 协议通信: 通过标准的 JSON-RPC 协议与 MCP 客户端进行通信,接收请求并返回响应。
- 多种传输协议支持: 理论上支持 Stdio, SSE, WebSocket 等多种传输协议(仓库文档中主要提及 Stdio)。
- 会话管理和能力声明: MCP 服务器负责会话管理,并可以声明自身提供的能力。
安装步骤
-
安装 Qwen-Agent 库 (包含 MCP 支持):
pip install -U "qwen-agent[mcp]"或者,如果需要包含 GUI 等其他可选功能,可以使用:
pip install -U "qwen-agent[gui,rag,code_interpreter,mcp]" -
准备 Node.js 和 uv (如果需要运行示例中的 Javascript MCP 服务器): 部分 MCP 工具服务器(例如 Memory 和 Filesystem)可能基于 Javascript 开发,需要 Node.js 环境。Sqlite 工具服务器示例使用了 'uvx' 运行时,'uv' 是其依赖。
- 安装 Node.js: 请从 Node.js 官网下载并安装最新版本。
- 安装 uv: 运行命令 'pip install uv' 安装 uv 运行时,并确保 uv 版本为 0.4.18 或更高 ('uv --version' 查看版本)。
- 安装 Git 和 SQLite: 部分 MCP 服务器可能依赖 Git 和 SQLite,请确保已安装 ('git --version' 和 'sqlite3 --version' 查看版本)。 macOS 用户可以使用 Homebrew ('brew install uv git sqlite3'),Windows 用户可以使用 winget ('winget install --id=astral-sh.uv -e', 'winget install git.git sqlite.sqlite') 安装。
服务器配置 (MCP 客户端配置)
MCP 客户端需要配置 MCP 服务器的启动信息,以便连接并使用服务器提供的功能。以下是 Qwen-Agent 仓库提供的 MCP 服务器配置示例 (JSON 格式),客户端需要根据实际部署情况进行配置:
{ "mcpServers": { "memory": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"] }, "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"] <!-- '/path/to/allowed/files' 需要替换为实际允许文件系统服务器访问的路径 --> }, "sqlite" : { "command": "uvx", "args": [ "mcp-server-sqlite", "--db-path", "test.db" <!-- 'test.db' 可以替换为实际的 SQLite 数据库文件路径 --> ] } } }
配置参数说明:
- 'mcpServers': 包含多个 MCP 服务器配置的 JSON 对象。
- 'server name': 例如 '"memory"', '"filesystem"', '"sqlite"',用于客户端标识和引用不同的 MCP 服务器实例。
- 'command': 启动 MCP 服务器的命令。例如 '"npx"', '"uvx"'。
- 'args': 启动命令的参数列表。
- '"@modelcontextprotocol/server-memory"': Memory 服务器的 npm 包名。
- '"@modelcontextprotocol/server-filesystem"', '"/path/to/allowed/files"': Filesystem 服务器的 npm 包名和允许访问的文件路径。
- '"mcp-server-sqlite"', '"--db-path"', '"test.db"': Sqlite 服务器的命令和数据库文件路径参数。
- 'server name': 例如 '"memory"', '"filesystem"', '"sqlite"',用于客户端标识和引用不同的 MCP 服务器实例。
注意:
- 上述配置示例中的 '"command"' 和 '"args"' 是用于启动基于 Javascript 或 uv 运行时的 MCP 服务器的,实际部署时可能需要根据 MCP 服务器的具体实现和部署方式进行调整。
- MCP 客户端通常会将此配置信息传递给 Qwen-Agent 框架或 Agent,以便 Agent 可以利用 MCP 服务器提供的资源和工具。
基本使用方法
-
启动 MCP 服务器 (根据需要选择并启动): 根据上述服务器配置示例,在命令行中分别启动 Memory, Filesystem, Sqlite 等 MCP 服务器。例如,启动 Memory 服务器:
npx -y @modelcontextprotocol/server-memory -
配置 MCP 客户端 (例如 Qwen-Agent Agent): 在 Qwen-Agent Agent 的初始化配置中,指定 'mcpServers' 参数,将上述 JSON 配置信息传递给 Agent。例如,参考 'examples/assistant_mcp_sqlite_bot.py' 示例代码。
-
运行 Qwen-Agent Agent: 启动配置了 MCP 服务器的 Qwen-Agent Agent,Agent 即可通过 MCP 协议与已启动的 MCP 服务器进行交互,利用服务器提供的资源和工具完成任务。
更多信息
更详细的 MCP 服务器配置和使用方法,请参考仓库 'examples' 目录下的示例代码,以及 Model Context Protocol 官方文档 和 MCP 服务器列表。
信息
分类
AI与计算