# QQ Bot 部署指南 ## 快速开始 ### 1. 安装依赖 ```bash cd /Users/jojo/Desktop/agents/正在修复中/agents pip install aiohttp ``` ### 2. 测试连接 ```bash python scripts/qq_bot/test_connection.py ``` 这会测试: - NapCat API 连接 - Agents Web API 连接 - 创建对话功能 ### 3. 启动机器人 ```bash python scripts/qq_bot/run.py ``` 或者: ```bash python -m scripts.qq_bot.main ``` ## 使用说明 ### 在 QQ 群中使用 1. **创建新对话** ``` @机器人 /new ``` 2. **查看对话列表** ``` @机器人 /resume 10 ``` 3. **切换对话** ``` @机器人 /switch conv_xxx ``` 4. **停止任务** ``` @机器人 /stop ``` 5. **发送消息** ``` @机器人 帮我查一下今天的天气 ``` ### 发送文件 模型可以使用 `send_qq_file` 工具发送文件: ``` @机器人 生成一个柱状图并发送给我 ``` 模型会: 1. 生成图表文件 2. 调用 `send_qq_file` 工具 3. 文件自动发送到 QQ 群 ## 文件结构 ``` scripts/qq_bot/ ├── __init__.py # 包初始化 ├── main.py # 主程序 ├── run.py # 启动脚本 ├── test_connection.py # 连接测试 ├── config.py # 配置 ├── napcat_client.py # NapCat 客户端 ├── web_api_client.py # Web API 客户端 ├── message_handler.py # 消息处理 ├── state_manager.py # 状态管理 ├── poller.py # 消息轮询 ├── requirements.txt # 依赖 └── README.md # 详细文档 data/custom_tools/send_qq_file/ ├── definition.json # 工具定义 ├── execution.py # 执行代码 └── return.json # 返回配置 ``` ## 配置说明 默认配置(可通过环境变量覆盖): - `NAPCAT_HOST`: http://localhost:3000 - `NAPCAT_TOKEN`: 283222464f13 - `AGENTS_HOST`: http://localhost:8091 - `AGENTS_EMAIL`: qqbot@qq.com - `AGENTS_PASSWORD`: 12345678 - `TARGET_GROUP_ID`: 1092770403 ## 注意事项 1. **确保 NapCat 正在运行** - HTTP Server 端口:3000 - Token 已配置 2. **确保 Agents Web 服务器正在运行** ```bash python web_server.py --port 8091 ``` 3. **确保 qqbot 用户已创建** - 用户名:qqbot - 邮箱:qqbot@qq.com - 密码:12345678 - 必须使用 Docker 模式 4. **自定义工具** - `send_qq_file` 工具已创建在 `data/custom_tools/send_qq_file/` - 重启 Agents 服务器后生效 ## 故障排查 ### 测试失败 运行测试脚本查看详细错误: ```bash python scripts/qq_bot/test_connection.py ``` ### 查看日志 ```bash tail -f qq_bot.log ``` ### 常见问题 1. **NapCat 连接失败** - 检查 NapCat 是否运行 - 检查端口和 token 是否正确 2. **Agents 登录失败** - 检查 Web 服务器是否运行 - 检查用户名密码是否正确 - 确认用户已创建 3. **机器人无响应** - 检查是否正确 @ 机器人 - 查看日志了解详细错误 ## 开发 ### 添加新指令 编辑 `message_handler.py`: ```python async def _handle_command(self, command: str): # ... elif cmd == "/your_command": await self._cmd_your_command(args) ``` ### 修改轮询间隔 编辑 `config.py`: ```python POLL_INTERVAL = 2.0 # 秒 ``` ### 添加新的自定义工具 在 `data/custom_tools/` 下创建新文件夹,参考 `send_qq_file` 的结构。