一款AstrBot的外挂知识库长期记忆插件
项目地址ShaoNianGao/astrbot_plugin_cat_rag RAG 知识库插件支持自动记忆、智能检索、上下文注入可以设定对话者的名别名达到跨平台对话时加载记忆的功能。自动功能消息自动入库所有对话消息自动存储到原始文件库带用户名和时间标签智能上下文注入LLM 请求时自动跨三个知识库检索注入相关历史信息可开关知识库自动创建插件启动时自动验证并创建所需的三个知识库自动总结入库消息累积达到阈值时自动调用 LLM 总结入库到长记忆库替代原生知识库移除 AstrBot 原生 工具并在 system_prompt 注入引导语让 LLM 优先使用本项目工具astr_kb_searchAgent 工具LLM 自主调用插件向 LLM 注册三个 Agent 工具LLM 可通过自然语言描述自主调用arecall_to_ragFragment- 跨所有知识库召回相关片段get_ragRepository- 获取知识库列表 / 按权限单库检索rag_warehousing- 入库到指定知识库用户消息 → AstrBot 事件├─ filter.on_message() 监听所有消息│ └─ 异步入库 → WS: ingest(text, kb_idraw_messages, tags[原始, user])│├─ filter.on_llm_request() 拦截 LLM 请求│ ├─ 步骤1移除原生 astr_kb_search 工具注入引导语│ ├─ 步骤2Agent 工具模式 - 注册 arecall_to_ragFragment 等工具│ └─ 步骤3自动注入上下文 - 跨三库检索 → WS: recall(query, kb_ids, top_k)│ └─ 将结果通过 TextPart.mark_as_temp() 注入到 extra_user_content_parts│└─ filter.command() 管理指令└─ /rag_status, /rag_search, /rag_summary, /rag_summary_now, /rag_project, /rag_update消息累积 → 攒批阈值条数/字数/超时├─ 入原始文件库└─ 累积到 pending_summary → 达 summary_count_threshold(50)└─ 调 LLM 总结 → 入 long_memory 库手动触发├─ /rag_summary [时间] - 检索指定时间段原始库消息 → LLM 总结 → 入长记忆库└─ /rag_summary_now - 直接取当前会话 pending_summary → LLM 总结 → 入长记忆库