Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

星尘手账 (Stardust Diary)

logo

一个 AstrBot 智能记忆插件:每群攒满 100 条消息后,AI 自动整理出人物画像(键值对)与重要要点存入长期记忆;平时记忆纹丝不动,只有群聊内容检索到相关时才注入上下文。按群隔离,群与群之间互不可见。

功能

  • 短期缓冲:所有群消息先进入缓冲,等待攒满阈值
  • 满阈值自动整理:每群攒满 100 条(可配置)后,AI 提炼:
    • 人物画像【画像】昵称:生日=…;喜欢=…;身份=… 键值对形式,只记录明确出现过的信息,不编造
    • 要点记忆:约定、事件、计划等重要信息(带关键词)
  • 按需注入:长期记忆平时不动,群聊内容与记忆关键词/内容匹配时才按相关度排序取 top N 条注入上下文,用完即收
  • L1~L4 分层记忆:识别提问时间意图(今天/最近几天/本周),自动注入对应层级的群聊记录;描述模糊时引导对方给出关键词再精准检索
  • 整理后清空缓冲:避免重复整理,重新计数
  • 按群隔离:每个群的记忆独立存储、独立检索,互不串群
  • 可选整理提供商:配置界面直接下拉选择 AstrBot 中已配置的模型提供商,或用指令查看/设置

安装

将本插件目录放入 AstrBot 的 data/plugins/ 下,然后在 WebUI 的插件管理页启用即可。

或从 Git 仓库安装:

https://github.com/Fangnai-byte/astrbot_plugin_stardust_diary

配置

配置项 说明 默认
organize_enabled 是否启用满阈值 AI 整理 true
organize_threshold 每群触发整理的消息条数 100
organize_provider AI 整理使用的模型提供商(下拉选择,留空跟随当前对话模型)
top_k 检索到相关记忆时最多注入几条 5
include_recent 是否在上下文中附带缓冲中的最近消息 true
recent_count 附带最近消息条数 5

使用

发送指令(群聊):

/mem list [n]    # 查看本群最近 n 条长期记忆(默认 10)
/mem recent [n]  # 查看缓冲中的最近 n 条消息(默认 10)
/mem forget <id> # 删除指定长期记忆(管理员可删任意,其他人只能删自己的)
/mem models      # 列出 AstrBot 所有模型提供商
/mem model <提供商id> # 设置 AI 整理使用的提供商
/mem stat        # 查看记忆统计
/mem help        # 显示帮助

工作原理

  1. 群消息进入短期缓冲(忽略 bot 自己的消息与 /mem 指令)
  2. 某群缓冲达到阈值(默认 100 条)→ 触发 AI 整理(异步,不阻塞回复)
  3. AI 输出 JSON:{"profiles": [{"user": "昵称", "attrs": {"键": "值"}}], "memories": [{"content": "要点", "keywords": ["关键词"]}]}
  4. 画像与要点存入长期记忆表,缓冲清空
  5. 群聊触发 LLM 请求时:
    • 用关键词 + 内容片段对长期记忆评分,注入最相关的 top N 条(L1)
    • 识别提问的时间意图:今天(L2)/ 最近几天(L3)/ 本周(L4),注入对应层级的缓冲记录
    • 若时间段提问描述模糊,引导对方给出具体关键词,再精准检索回答

分层记忆(L1~L4)

层级 范围 数据来源
L1 这段时间(全部历史) 长期记忆表(画像+要点)
L2 今天 短期缓冲(今天 0 点起)
L3 最近几天 短期缓冲(3 天内)
L4 本周 短期缓冲(本周一 0 点起)

提问示例:

  • "今天群里聊了什么" → 注入 L2 今天记录
  • "最近发生什么了" → 注入 L3 记录,模糊时引导给关键词
  • "这周有什么重要的事" → 注入 L4 本周记录

数据位置

  • 数据库:<AstrBot根目录>/data/smart_memory/memory.db
  • 插件配置:<AstrBot根目录>/data/config/astrbot_plugin_stardust_diary_config.json

常见问题

  • 问:注入 top 5 条会不会漏记忆?

    • 答:相关记忆较多时可以调大 top_k,平衡上下文长度与召回率。
  • 问:满 100 条后原始消息会删吗?

    • 答:会。AI 提炼完画像和要点存入长期记忆后,该批原始消息清空,避免重复整理。
  • 问:和 AstrBot 的上下文压缩冲突吗?

    • 答:不冲突。压缩器处理的是旧对话历史,星尘手账只往 system_prompt 注入少量记忆片段。

About

AstrBot 智能记忆插件:重要记忆长期保存,日常消息保留一天,按群隔离,需要时注入上下文。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages