GitRead 中文社区
首页趋势排行榜原创文章严选周刊
更多资源
新手训练营
精选专题热门话题GitHub 文档资源精选实战指南

astrbot_plugin_self_learning

AstrBot 自主学习插件 — 让 AI 聊天机器人自主学习对话风格、理解群组黑话、管理社交关系与好感度、自适应人格演化,像真人一样自然对话。

  • 语言Python
  • 默认分支main
  • 大小12.5 MB
  • 更新1 天前
在 GitHub 打开
avatarNickCharlie

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

目标项目分析:NickCharlie/astrbot_plugin_self_learning

项目背景与痛点

随着聊天机器人在多领域内的广泛应用,机器人如何能够更自然地与用户对话,尤其是识别和适应特定社群的独特用语和习惯,已成为一个重要课题。AstrBot 自主学习插件的目标就在于赋予聊天机器人这种能力,使其能与用户进行更加贴近真实的对话。不同于传统机器人的模板化应答,AstrBot 能够学习对话的风格、理解特定群组的用语习惯、甚至管理社交关系网与好感度,其进一步的人格演变能力更让机器人对话体验变得难以区分于真人交流。

为什么要开发这样的插件?这是为了克服传统聊天机器人在长期或高频互动中表现的生硬、距离感问题。通过模拟人与人之间的微妙情感交互机制,AstrBot 致力于提供一种更加自然、流畅的社交体验。

核心技术揭秘

AstrBot 的实现涉及多方面的技术和算法,尤其是自我学习和对话风格的建模。该插件一方面利用自然语言处理(NLP)技术来解析和响应用户的对话,同时利用复杂算法来模拟社交关系网中的认知与情感状态。它能根据用户的互动来调整自己的对话策略,从而实现个性化的交流。

下图展示了 AstrBot 自学习插件的部分技术架构。

graph TD A[用户输入] --> B[前置处理] B --> C{"语义解析"} C -->|"成功"| D[对话匹配] C -->|"失败"| E[错误处理] D --> F[策略制定] F --> G[响应生成] G --> H[输出用户] F --> J{"好感度调整"} J -->|"更新"| K[社交数据存储] K --> F

其中,语义解析是关键技术点之一,它不仅需要识别用户的意图和情感,还需要理解使用场景的特定语言习惯,这涉及到自然语言理解和意图识别技术的进步与应用。此外,社交数据存储模块不仅记录用户的每次交互,还涉及复杂的算法来调整AI的情感和社交状态,这是实现个性化对话体验的核心。

功能亮点与差异

相较于市场上的其他聊天机器人插件和针对性平台,AstrBot 自学习插件的创新之处在于其先进的情感与人格处理能力。许多聊天机器人虽然也能进行基本的交互,但少有机器人将社交互联中的社交感知融入日常生活对话中。这使得AstrBot在个性化和互动性上大放异彩,能够模拟一个“活生生”的互动对象,提供更好地用户体验。

应用场景与落地建议

对于希望使用这款插件的开发者来说,理解和遵守其设计原则是关键,包括但不限于对其数据处理算法的深入理解,以及如何确保其个性化交流不受外部干预以保证用户体验的一致性和安全性。应用AstrBot 自学习插件的场景非常广泛,诸如社交媒体客服、在线教育、客户服务等需要长时间交互和个性化体验的领域尤为适合。此外,在整合入现有业务工作流中,还需关注数据隐私与合规性问题。

综合评价

AstrBot 自学习插件在提高聊天机器人与用户之间对话质量方面展现出了卓越潜力。通过深度自然语言理解技术和更强的社交情感能力,它不仅可以更细粒度地适应用户的说话风格,还能据此进行自适应的人格演变。尽管这涉及众多复杂的计算逻辑,但它的潜力是不可忽视的。当然,它也面临一些挑战,如如何更好地保护用户数据隐私,以及如何持续改进社交情感交互模型以适应更多场景。总的来说,这无疑是一个值得持续关注和深入研究的项目。

内容更新时间:7月30日。 编辑团队负责选题与抽样审核,详见 编辑准则。

相关仓库

public-apis/public-apis avatar
public-apispublic-apis
1 天前
497.5k
54.2k
66

免费 API 汇总列表

apipublic-apisfree+7
Python
15.5 MB
7
详情
EbookFoundation/free-programming-books avatar
free-programming-booksEbookFoundation
1 天前
401.4k
67.5k
95

免费可获取的编程书籍

bookseducationhacktoberfest+2
Python
21.8 MB
3
详情
donnemartin/system-design-primer avatar
system-design-primerdonnemartin
9月15日
377.4k
59.2k
644

学习如何设计大规模系统。为系统设计面试做准备。包含 Anki 闪卡。

designdesign-patternsdesign-system+10
Python
11.0 MB
0
详情
vinta/awesome-python avatar
awesome-pythonvinta
1 天前
333.6k
28.0k
0

回答“我想用 Python 做 X,该用哪个工具?”的权威清单

awesomeawesome-listpython+3
Python
6.9 MB
2
详情
practical-tutorials/project-based-learning avatar
project-based-learningpractical-tutorials
11 小时前
289.4k
36.8k
238

精选的项目实战教程列表

tutorialprojectbeginner-project+5
Python
472 KB
1
详情
NousResearch/hermes-agent avatar
hermes-agentNousResearch
3 小时前
262.0k
58.3k
53.8k

与你共同成长的智能体

aiai-agentai-agents+10
Python
1.4 GB
3
详情
TheAlgorithms/Python avatar
PythonTheAlgorithms
6 天前
226.0k
51.3k
90

所有算法均用 Python 实现

algorithmalgorithm-competitionsalgorithms-implemented+11
Python
17.9 MB
2
详情
yt-dlp/yt-dlp avatar
yt-dlpyt-dlp
5 天前
206.4k
18.1k
2.8k

功能丰富的命令行音视频下载器

youtube-dlpythonsponsorblock+4
Python
63.5 MB
0
详情

关于

aiastrbotchatbotnlppersonapythonqqbotself-learning
  • GNU Affero General Public License v3.0
  • 456 Stars
  • 38 Forks
  • 3 Watching

简要分析

热度分
535
价值分
285
活跃状态
活跃
GitHub

语言占比

CSS
HTML
JavaScript
Python
SCSS
TypeScript

Release

  • 4.9.0 - LivingHello reply-decision delegation & reverse-proxy login fix (issue #299)1 天前
  • 4.8.1 - affection query tool & guardrails compat (community contributions)2 天前
  • 4.8.0 - endfield redesign, dual-UI parity & public-API boundary2 天前
  • 4.7.4 - Jargon web definition manual search API (issue #293)2 天前
  • 4.7.3 - Human conversation learning and UI fixes3 天前

贡献者

NickCharlieNickCharlieEterUltimateEterUltimateYumemiDreamYumemiDreamSB-TDMSB-TDMYurziYurzitinkerbellqwqtinkerbellqwqRadiant303Radiant303SXP-SimonSXP-SimonJoker-PrincipalJoker-PrincipalsdfsfsksdfsfskNieiRNieiR

English | 中文

AstrBot 自主学习插件

让 AstrBot 在群聊中持续采集、学习、审查并注入上下文,使 Bot 逐步具备表达风格、群组黑话、社交关系、长期记忆和人格演化能力。

Version License AstrBot Python

功能 · 架构 · 安装 · WebUI · 文档 · 社区

版权与许可 / Copyright and License

作者: NickMo / Mo Zhiping (莫志平) — [email protected] / [email protected];EterUltimate

维护者: EterUltimate

版权所有: Copyright © 2025-2026 NickMo (Mo Zhiping). All rights reserved (for personal components).

许可协议: 本项目采用 AGPL-3.0 开源协议,包含并衍生自 AstrBot(同为 AGPL-3.0)。基于本仓库的修改或衍生作品必须以相同协议分发。

Author: NickMo / Mo Zhiping — [email protected] / [email protected]; EterUltimate

Maintainer: EterUltimate

Copyright: Copyright © 2025-2026 NickMo (Mo Zhiping). All rights reserved (for personal components).

License: Licensed under AGPL-3.0. This project incorporates and is a derivative work of AstrBot (also AGPL-3.0). Any modifications or derivative works must be distributed under the same license.

Warning 警告

使用前请先在 AstrBot 原生人格管理中手动备份当前人格。学习、审查和回滚机制不能替代外部备份。

免责声明与用户协议

使用本项目即表示您已阅读、理解并同意以下条款:

  1. 本项目仅供学习、研究和合法用途使用,严禁用于任何违反当地法律法规、平台服务条款或侵犯隐私的场景。
  2. 使用者需在采集和处理用户消息前取得必要授权,并遵守相关数据保护要求。
  3. 本项目按“原样”提供,开发者不对数据丢失、人格错误、系统崩溃或任何直接、间接损失承担责任。
  4. 因用户违规使用导致的法律纠纷,由用户自行承担全部责任。
  5. 本协议可能随项目更新而调整,继续使用即表示接受更新后的条款。

核心功能

功能 说明
对话风格学习 从群友之间的上下文对话提取表达模式,经审查后注入已批准样本
群组黑话学习 统计预筛高频词,结合上下文推断含义,并在 LLM 请求前注入解释
人格演化审查 学习结果先进入审查链路,支持批准、拒绝、删除、回滚和自动应用策略
社交关系分析 记录互动关系、好感度、心理状态和群组社交上下文
记忆与知识图谱 构建记忆图、知识图谱和可视化查询入口
LLM 请求注入 在 on_llm_request 阶段注入社交、黑话、记忆、few-shot 和临时人格增量
WebUI Dashboard 提供全量设置、审查、黑话、图谱、学习内容、日志等级和指标监控
多数据库支持 支持 SQLite、MySQL、PostgreSQL,包含自动建表和轻量迁移

插件不会直接替换 AstrBot 的回复逻辑。它在消息进入、Bot 回复发送后、下一次 LLM 请求前这三个位置增强 AstrBot。


架构总览

flowchart TB subgraph AstrBot["AstrBot 框架"] Event["消息事件 on_message"] Sent["发送后事件 after_message_sent"] Req["LLM 请求 on_llm_request"] end subgraph Plugin["SelfLearningPlugin"] Lifecycle["PluginLifecycle"] Factory["FactoryManager / ServiceFactory"] Commands["管理命令"] Hook["LLMHookHandler"] end subgraph Learning["学习服务层"] Pipeline["MessagePipeline"] Realtime["RealtimeProcessor"] Progressive["ProgressiveLearningService"] Quality["LearningQualityMonitor"] Jargon["JargonMiner / JargonQuery"] Persona["Persona / Style Review"] Social["Affection / Social / State"] end subgraph Data["数据层"] Manager["SQLAlchemyDatabaseManager"] Engine["DatabaseEngine"] Facades["Domain Facades"] ORM["models/orm"] end subgraph WebUI["WebUI"] Quart["Quart API"] Dashboard["Dashboard 静态页面"] Graphs["图谱与审查界面"] end Event --> Pipeline Sent --> Manager Req --> Hook Lifecycle --> Factory Factory --> Learning Pipeline --> Realtime Pipeline --> Progressive Pipeline --> Jargon Progressive --> Quality Progressive --> Persona Hook --> Social Hook --> Jargon Hook --> Manager Learning --> Manager Manager --> Facades Facades --> Engine Engine --> ORM Quart --> Manager Dashboard --> Quart Graphs --> Quart Commands --> Learning

学习链路示意

sequenceDiagram participant U as 用户消息 participant P as on_message participant M as MessagePipeline participant DB as 数据库 participant R as 实时学习 participant G as 群组批量学习 participant Review as 审查队列 participant H as LLMHookHandler participant LLM as AstrBot LLM 请求 U->>P: AstrMessageEvent P->>M: 后台处理消息 M->>DB: 保存 RawMessage M->>R: 表达模式 / 实时学习 M->>G: 达到阈值后启动批量学习 G->>DB: 筛选消息并创建学习会话 G->>Review: 写入人格审查 / 风格审查 LLM->>H: 下一次请求前触发 H->>DB: 读取已批准 few-shot / 黑话 / 记忆 / 社交关系 H->>LLM: 临时 extra_user_content_parts 注入,旧版 fallback
flowchart LR Raw["原始消息 RawMessage"] --> Filtered["筛选消息 FilteredMessage"] Raw --> Expression["表达模式 ExpressionPattern"] Raw --> Jargon["黑话 Jargon"] Raw --> Pair["群友 A -> 群友 B 上下文对话"] Pair --> StyleReview["风格审查 StyleLearningReview"] Filtered --> PersonaReview["人格审查 PersonaLearningReview"] StyleReview --> Approved["作用域匹配的批准样本"] Jargon --> Context["LLM 注入上下文"] Approved --> Context PersonaReview --> Context

快速开始

安装

进入 AstrBot 插件目录:

cd C:\path\to\AstrBot\data\plugins
git clone https://github.com/EterUltimate/self_learning_EterU.git astrbot_plugin_self_learning

重启 AstrBot 或在插件管理页重新加载插件。

依赖安装

当前代码不会在插件安装或启动阶段自动安装 pip 依赖。安装完成后,请进入 self-learning WebUI Dashboard 的全量设置页,手动点击“基础能力依赖”或“全能力依赖”。

依赖安装接口只接受 WebUI 明确确认后的请求:

{"manual_confirmed": true, "source": "webui_settings"}

如果部署环境禁止 WebUI 安装依赖:

$env:ASTRBOT_ENABLE_WEB_DEP_INSTALL="false"

访问 WebUI

默认地址:

http://127.0.0.1:7833

当前 WebUI 默认免密访问。若 web_interface_host=0.0.0.0,局域网内可使用服务器 IP 访问。

远程服务器 / Docker 容器部署的端口映射、防火墙放行、密码与隧道访问,见 远程部署与连接指南。

内嵌面板可在 AstrBot 管理面板(默认 http://127.0.0.1:6185)的插件管理中直接打开,功能与独立 WebUI 对齐(黑话、表达、人格、影子模式、审查、内容、图谱、功能融合、监控、设置),无需额外端口。独立 WebUI 保留为后续改动的 alpha 试验区。

基础配置顺序

  1. 备份当前人格。
  2. 设置学习目标:Target_Settings.target_qq_list 和 target_blacklist。
  3. 设置 Provider:filter_provider_id、refine_provider_id、reinforce_provider_id。
  4. 配置数据库:默认 PostgreSQL,会自动创建缺失数据库、schema 和表;可显式切换 SQLite 或 MySQL。
  5. 按需开启表达学习、黑话学习、自动学习、记忆图和知识图谱。

Provider 未配置时插件仍可加载,但 LLM 相关功能会降级并写入日志。


WebUI Dashboard

插件提供两套视觉与功能一致的管理界面(endfield 设计语言:纸白/炭墨底、信号黄动作标记、方角工程面板,支持亮/暗主题与 reduced-motion):

  • 独立 WebUI:http://127.0.0.1:7833(可在配置中改端口/监听地址/登录密码)
  • 内嵌插件页:AstrBot 插件管理页直接打开,经官方 page/* 桥接通信,无需额外端口。自 2026-11 起与独立版逐路由对齐——同文案、同功能、同交互;差异仅限平台固有限制(内嵌无图标字体、图表用简化条形图、WebUI 密码与自定义 CSS 仅独立版有意义)

模块入口首页(①顶栏刷新/主题/设置 ②十四模块导航 ③指挥台与快捷入口 ④学习模块卡 ⑤系统入口卡实时读数):

模块入口首页(功能区标注)

审查队列(①页题 ②逐条通过/驳回/删除含变更差异 ③全部/所选批量操作 ④最近学习批次:重跑与删除):

审查队列(功能区标注)

情绪中枢(内嵌版;①情绪读数 ②Bot 心情 ③好感度排行 ④走向分析 ⑤情绪加权闸门 ⑥三阶段遗忘治理):

情绪中枢(功能区标注)

全部 14 个路由:

路由 内容
模块入口 指挥台总貌:4 读数、学习模块卡、8 个系统入口实时状态
总览 消息/学习趋势与当前状态快照
AI 巡检 按快照生成可执行关注事项(积压、过滤、健康、降级、委托)
运行监控 健康检查、函数热点、模型调用与综合评分
审查队列 人格 / 风格 / 黑话三栏审查 + 最近学习批次(重跑/删除)
黑话学习 词库检索、原地编辑、批量操作、全局/本地范围、导入
表达学习 风格统计、表达样本库(对话/分析/特征/历史)、学习模式
人格学习 当前人格、人格列表、备份恢复、最近已审查(撤回)、待审更新
影子模式 选择群友学习其表达习惯,档案启停
情绪中枢 心情、好感度、走向、加权闸门、三阶段遗忘治理
学习内容 按类型浏览/检索/清理表达学习数据
图谱 记忆 / 知识 / 社交关系图谱
功能融合 伴随插件状态、世界书 / QQ / MaiBot 导入
设置 全量配置、依赖安装、数据管理、Bug 反馈

更多截图:总览 · 黑话学习 · 表达学习 · 人格学习 · 影子模式 · 学习内容 · 图谱 · 社交关系 · 功能融合 · 设置

修改数据库类型、数据目录、WebUI host/port 后需要重启插件。日志等级和多数学习阈值可立即生效。

数据库

类型 Driver 适用场景
PostgreSQL postgresql+asyncpg 默认后端,长期运行、schema 隔离、多实例部署
SQLite sqlite+aiosqlite 显式配置的单机回退
MySQL mysql+aiomysql 显式配置的兼容后端

数据库层使用 SQLAlchemy async ORM。SQLAlchemyDatabaseManager 对外保持旧接口兼容,内部通过 Domain Facade 路由到消息、学习、黑话、人格、社交、表达、心理状态、强化学习、指标和管理等领域。

默认 PostgreSQL 启动时会先连接维护库 postgres,如果目标库不存在则创建 astrbot_self_learning,再创建缺失 schema 和 ORM 表。默认数据库用户需要具备创建数据库、schema 和表的权限。没有 PostgreSQL 服务时,可显式设置 Database_Settings.db_type=sqlite 回退到本地文件数据库。

自动建表会执行:

  1. Base.metadata.create_all
  2. 检查缺失表和缺失列
  3. 自动创建 ORM 中存在但数据库缺失的表
  4. 对已有表补齐新增列

自动迁移只做列级新增,不做字段删除、重命名或类型变更。


管理命令

所有命令需要 AstrBot 管理员权限。

命令 说明
/learning_status 查看学习状态和统计
/start_learning 手动启动学习
/stop_learning 停止学习
/force_learning 强制执行一次学习
/remember <引用或上下文> => <表达示例> 手动记住对话上下文,并链入表达方式和对话示例
/affection_status 查看好感度状态
/set_mood <类型> 设置 Bot 情绪

常见排查

插件加载失败:缺少依赖

确认已经通过 WebUI Dashboard 手动安装依赖。安装阶段不会自动执行 pip install。

WebUI 打不开

检查:

  • enable_web_interface=True
  • 端口 7833 是否被占用
  • AstrBot 日志中是否有 Web 服务器启动成功信息
  • 修改 host/port 后是否已重启插件

学不到内容

按顺序检查:

  1. enable_message_capture=True
  2. 当前用户或群组未被黑名单排除
  3. RawMessage 是否增长
  4. 消息长度是否满足阈值
  5. enable_expression_patterns=True
  6. Bot 出站文本是否进入 BotMessage
  7. 群组消息是否达到 min_messages_for_learning
  8. 是否存在 pending 审查记录但未批准
  9. Provider 是否可用

数据库建表失败

检查:

  • 数据库驱动是否已安装
  • 数据库用户是否有创建数据库、schema 和表的权限
  • PostgreSQL schema 名称是否有效
  • SQLite 数据目录是否可写

开发和文档

详细文档位于 docs/:

  • 架构与实现
  • 学习链路
  • 数据库
  • 配置
  • WebUI API
  • 使用指南
  • 开发指南

关键源码入口:

  • main.py
  • core/plugin_lifecycle.py
  • core/factory.py
  • services/learning/message_pipeline.py
  • services/core_learning/progressive_learning.py
  • services/hooks/llm_hook_handler.py
  • services/database/sqlalchemy_database_manager.py
  • core/database/engine.py
  • webui/manager.py, webui/server.py, webui/app.py

社区交流

  • QQ 群:1021544792(ChatPlus 插件用户 + 本插件用户)
  • 提交 Bug
  • 功能建议
  • 贡献代码

推荐搭配

LivingMemory 长期记忆插件

群聊增强插件 Group Chat Plus

本插件负责学习、审查、黑话、表达方式和上下文注入;LivingMemory 负责长期记忆、召回和反思;Group Chat Plus 负责回复决策、读空气和回复生成。三者组合时,本插件会在检测到目标插件已加载后自动跳过本地重叠能力,避免重复记忆或重复回复。


开源协议

本项目采用 AGPL-3.0 License 开源协议。

特别鸣谢

  • MaiBot: 表达模式学习、知识图谱管理等核心设计思路
  • AstrBot: 优秀的聊天机器人框架

如果觉得有帮助,欢迎 Star、投喂支持。 1779723853514 mm_facetoface_collect_qrcode_1779723837612

回到顶部

好感度只读查询工具

query_affection 查询数据库中的本人分数或当前群排行,不请求模型、不修改分数。普通成员只能查询本人;排行和他人查询需全局管理员,跨群查询仅限管理员私聊明确指定机器人已加入的群号。查询沿用现有 affection_scope,不迁移或合并历史记录。

该工具独立于通用 enable_llm_hooks,不会为查询开启社交分析或人格学习。数据库未就绪、查询失败和缺少记录分别返回状态;同分用户并列,未记录成员不按零分排名。

评论

登录 后发表评论
暂无评论
GitRead 中文社区
深度解读 · 趋势洞察 · 价值精选

关于

关于我们联系我们编辑准则收录标准赞赏人员

发现

技术趋势新手训练营资源精选实战指南精选专题热门话题GitHub 文档

条款

隐私政策服务条款网站地图
26.9万收录项目
5.2万中文话题
155精选专题
发现技术价值,连接开源智慧
© 2026 GitRead · GitHub 中文社区 本站与 GitHub, Inc. 无隶属关系;GitHub 是 GitHub, Inc. 的商标。