AstrBot Plugin - AngelEye Tool
一个为 AstrBot 设计的函数工具插件,允许大语言模型(LLM)直接查询当前群聊的聊天记录。
🚀 功能
本插件提供了一个强大的函数工具 search_qq_chat_history,当 LLM 需要了解上下文或回答与聊天历史相关的问题时,可以自动调用此工具。
核心功能
- 智能查询: LLM 可以根据自然语言理解,自动调用工具查询聊天记录。
- 灵活筛选: 支持按关键词、时间范围(过去N小时)和消息数量进行筛选。
- 群聊专用: 专为群聊场景设计,在私聊中会优雅地提示无法使用。
📦 安装
- 将本插件文件夹克隆或移动到您的 AstrBot 插件目录中。
- 重启 AstrBot 以加载插件。
🛠️ 使用方法
本插件是一个函数工具,它不需要用户手动触发命令。它的使用方式如下:
在群聊中,向 LLM 提出与聊天历史相关的问题,例如:
"帮我找一下昨天大家聊到的关于'AstrBot'的内容"
"最近24小时有人提到'天气'吗?"
"总结一下今天上午的讨论"LLM 会理解您的意图,并自动调用
search_qq_chat_history工具。工具会根据 LLM 的请求(如关键词、时间范围)查询聊天记录,并将结果返回给 LLM。
LLM 基于返回的聊天记录,为您生成总结或回答。
工具参数
search_qq_chat_history 工具接受以下可选参数,由 LLM 自动填充:
keywords(字符串数组): 用于筛选消息的关键词列表。例如:['天气', 'AstrBot']。hours(数字): 查询过去多少小时内的聊天记录。例如:24表示查询过去24小时。count(整数): 最多返回的消息数量。
⚙️ 配置
本插件目前无需任何额外配置。
🧩 架构
插件采用了 AstrBot 官方推荐的 FunctionTool 类进行开发,结构清晰,易于维护。
main.py: 插件入口,负责注册工具。tools/qq_history_tool.py: 核心工具类,封装了与 LLM 的交互逻辑。services/qq_history_service.py: 聊天记录服务,负责与 QQ API 交互、获取和格式化消息。core/: 包含消息格式化等基础组件。
📜 更新日志
v2.0.0 (重构版本)
- ✨ 重大重构: 插件从基于 Prompt 的复杂架构重构为简洁的函数工具。
- 🗑️ 功能精简: 移除了萌娘百科、维基百科、维基数据查询功能,专注于群聊记录查询。
- 🤖 LLM 驱动: 现在由 LLM 自主决定何时以及如何查询聊天记录,交互更自然。
- 🧹 代码简化: 移除了缓存、角色、提示词等复杂逻辑,代码更易维护。
- 🐛 问题修复: 修复了在私聊中调用工具导致的崩溃问题。
v1.x.x (旧版本)
- 提供萌娘百科、维基百科等多知识源查询。
- 基于复杂的角色和提示词工程。
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📄 许可证
本项目采用 GPL-3.0 License 许可证。
🔗 相关链接
- AstrBot: https://github.com/your-astrbot-repo
- 萌娘百科 MCP 工具: https://github.com/kawayiYokami/moegirl-mcp (原萌娘百科查询功能已迁移至此 MCP 服务器)