AstrBot 框架的长期能力增强插件,实现自我进化、人格模拟、长期记忆与主动社交。
项目背景#
传统群聊 Bot 往往缺乏状态延续性,每次对话从零开始,缺乏情绪起伏、社交需求和主动参与能力,难以在 IM 环境中建立真实的长期陪伴感。本项目专注于在 AstrBot + NapCat 环境下进行认知层的增强,高度依赖 LLM 进行语义分析、意图规划与内容生成。
核心能力#
Persona Sim 2.0 — 人格生活模拟#
- 四维状态引擎:追踪能量(energy)、心情(mood)、社交需求(social_need)、饱腹感(satiety),数值范围 0–100
- Effect 机制:基于时间差推演状态变化,携带
source_detail(来源)、decay_style(衰减风格)、recovery_style(恢复风格),持久化至 SQLite - 脑内待办系统:分为 need_todo(生理型)与 social_todo(关系型)
- 日结情感轨迹:分析日内互动数据输出 trajectory(向上/有落差/独处/平淡/平稳)
- 心理叙事注入:将状态转化为心理叙事片段(如"刚主动说了话但被冷落,还有点堵着")注入 Prompt,而非生硬的数字
Active Engagement 4.0 — 主动社交参与#
- Pending Opportunity 机制:Bot 主动判断时机与内容进行插话
- 评分分层响应:基于 OpportunityScore 阈值分为 ignore / react / text_lite / full 四级
- Motive 驱动锚点:CONTINUE_THREAD / CURIOUS_PROBE / SEEK_CONNECTION / SELF_PROTECTIVE / LIGHT_RELIEF
- UnfinishedCue 系统:追踪未完成互动线索(TTL 180 秒)
- TextLite 轻量回复:QUICK_TOUCH / QUIET_FOLLOW / SMALL_PROBE 三种变体
Persona Arc — 人格弧线#
- 通过 Progress 积累驱动 Stage 0→1→2 进阶
- 情感图鉴记录用户明确表达的情绪体验
- 离线反刍:后台定时生成内在残响并作为 Prompt 背景注入
- 默认自带
amphoreus_demurge德谬歌弧线,支持自定义扩展
记忆与画像系统#
- 维护用户画像(身份、偏好、特征、备注)
- 会话事件与每日总结按群聊/私聊自动 Scope 隔离
- 长期知识库召回结果直接注入 Prompt
SAN 精力系统#
- LLM 群分析结果映射为 interaction_quality,由 Persona Sim 统一管理
- 降级机制:Persona Sim 不可用时独立注入精力状态
辅助与娱乐功能#
- NSFW/Promo 图片审核(需图片理解 provider)
- 表情包学习/存储/发送、戳一戳互动(poke 回复)、喂食互动
- 监控指定 GitHub 仓库/分支的新 commit 并推送到目标群或用户
架构设计#
项目采用分层模块化设计,main.py 作为插件入口,engine/ 承载核心业务逻辑,cognition/ 负责认知分析,scheduler/ 负责定时任务编排。
- 认知与规划层:
eavesdropping.py(社交入口)、engagement_planner.py(场景分类与意图规划)、opportunity_cache.py(机会缓存) - 状态演化层:
persona_sim_engine.py(状态核心)、persona_sim_rules.py(规则触发)、persona_sim_todo.py(待办生成)、persona_sim_consolidation.py(日结)、persona_sim_injection.py(Prompt 注入) - 执行与仲裁层:
reply_policy.py(统一仲裁)、reply_executor.py(回复执行) - 支撑层:
profile.py(画像)、memory_router.py(记忆路由)、affinity.py(情感积分)、entertainment.py(娱乐)
数据持久化#
采用混合存储策略:SQLite 存储高频且需复杂查询的状态数据(Effect、SAN、好感度、engagement_state、图片审核记录);AstrBot 知识库存储会话总结与事件记录;本地文件系统存储用户画像文件与表情包图片目录。
定时任务#
- 01:00 人格思维生成(每12小时)
- 04:00 过期用户画像清理
- 05:00 人格日结
- 06:00 每日会话记忆总结
- 间隔触发 主动插嘴检查、SAN 精力分析
安装部署#
- 确保运行环境已部署 AstrBot 框架,并使用 NapCat 作为消息协议后端
- 在 AstrBot 后台直接安装
astrbot_plugin_self_evolution - 在 AstrBot 中创建基础知识库,将名称填入
memory_kb_name配置项 - 确保 AstrBot 已配置可用的 LLM 模型
- 如需启用图片审核或喂食识图功能,需确认已配置图片理解 provider
- 重载或重启 AstrBot
命令体系#
用户命令#
| 命令 | 说明 |
|---|---|
/se help | 查看指令帮助 |
/reflect | 触发反思 |
/af show | 查看好感度 |
/san show | 查看 SAN 状态 |
/profile view [用户] | 查看画像 |
/feed | 喂食(识图判断食物并更新状态) |
/shut [分钟] | 让 AI 暂时闭嘴(管理员) |
管理员命令#
| 命令 | 说明 |
|---|---|
/ps state/tick/todo/effects/today [群] | 人格状态管理 |
/ps think [群] | 手动触发内心独白 |
/ev review/approve/reject | 审核流 |
/db reset/rebuild | 数据库管理 |
/arc status/emotions/prompt/ruminations | 人格弧线管理 |
核心配置项#
target_scopes:目标群/私聊白名单memory_kb_name:绑定的知识库名称persona_arc.persona_arc_enabled:是否启用人格弧线interject_enabled:是否启用主动插嘴memory_enabled:记忆模块开关moderation.enabled:审核模块开关
待确认信息#
仓库含 LICENSE 文件但具体协议类型未在 README 中声明;AstrBot 框架官方仓库链接未在项目中给出;最低版本要求(AstrBot、NapCat、Python)均未明确标注;具体依赖列表存在于 requirements.txt 但未在 README 中列出。