- 一个轻巧的基于 rust 的 mcp client
- 一个基于MCP(Model Context Protocol)协议的命令行AI工具,提供流式聊天交互和工具调用功能。
- 支持 NapCat 连接 QQ
- ✨ 实时流式聊天响应
- ✨ 支持MCP工具调用和推理过程显示
- ✨ 可配置的MCP服务器连接
- ✨ 基于Rust构建,高性能且可靠
- ✨ 支持命令行交互式界面
- ✨ 作为服务端与 NapCat 连接响应 QQ @对话
Agent CLI 内置了以下内部工具,可直接在聊天中使用:
| 工具名称 | 描述 | 主要功能 |
|---|---|---|
filesystem |
文件系统操作工具 | 读取、写入、列出文件和目录,默认只能操作当前工作目录下的文件 |
get_best_tool |
获取最佳工具推荐 | 根据用户需求分析并推荐最合适的可用工具 |
choose_tool |
工具选择器 | 告诉系统和用户应该使用的最合适的工具(通常由 get_best_tool 内部调用) |
这些工具在程序启动时自动启用,无需额外配置。
-
确保已安装Rust
-
克隆仓库:
git clone https://github.com/your-repo/agent-cli.git
-
编译项目(NapCat 默认不编译,需要加上参数 --features napcat):
cd agent-cli cargo build --release -
二进制文件位于
target/release/agent-cli -
将 config_temp.json 改名为 config.json,填入你在 deepseek 官网注册的 api_key,确保你的本地有 config.json、log4rs.yaml 两个文件 如果你需要使用 napcat,运行的时候加上参数
--napcat,然后将 napcat_temp.toml 改名为 napcat.toml,它将只处理配置中的 target_qq 发送的信息
基本聊天交互:
agent-cli -p "您的问题或指令"配置文件位于config.json,具体配置参考 config_temp.json 文件
- --promp 用户输入,不填则进入命令行交互 UI 模式
- --stream 是否流式,默认为 true
- --use_tool 是否使用工具,默认为 true
- --wait 等待模式,默认为 false。当为 true 时,程序会在循环中处理标准输入,每次对话不保存上下文
- --remote 启动远程WebSocket服务器,指定监听地址(如
127.0.0.1:8080)
Agent CLI 提供了 Remote 模块,允许外部应用程序通过 WebSocket 协议与 AI 模型进行交互。该模块支持多种输入类型和配置选项,方便集成到其他系统中。
-
启动远程服务器:
agent-cli --remote 127.0.0.1:8080
-
客户端连接示例(Python):
import asyncio import websockets import json async def send_request(request_data): async with websockets.connect('ws://127.0.0.1:8080') as websocket: request_json = json.dumps(request_data) await websocket.send(request_json) response_data = await websocket.recv() return json.loads(response_data) # 发送请求 response = asyncio.run(send_request({ "request_id": "test_001", "input": {"Text": "你好"}, "stream": False, "use_tools": True })) print(response)
完整的通讯协议文档请参考:docs/remote_protocol.md
文档内容包括:
- 完整的协议规范
- 所有消息格式定义
- 多种输入类型支持(文本、图像、文件、指令等)
- 配置选项说明
- 使用示例
- 客户端实现指南(Python、JavaScript等)
- 错误处理和性能建议
- 多种输入类型:支持文本、图像(base64)、文件、结构化指令
- 流式响应:支持实时流式输出
- 工具调用:可配置是否使用MCP工具
- 配置覆盖:支持请求级别的配置自定义
- Token统计:返回详细的token使用情况
- Web应用后端:作为AI服务提供者
- 桌面应用:集成AI功能
- 自动化脚本:批量处理任务
- 监控系统:智能告警分析
- 教育工具:智能辅导系统
cargo buildcargo test或直接双击运行“运行Target.bat”
在 log4rs.yaml 中设置日志等级、输出