MaiBot 的记忆和情感系统

https://github.com/MaiM-with-u/MaiBot

记忆系统

MaiBot 拥有最复杂和完整的记忆系统:

海马体记忆系统 (Hippocampus)

  • 基于图结构的记忆存储,使用 实现
  • 支持记忆构建、遗忘、整合三个核心功能
  • 记忆检索支持多层深度搜索(1-3层),可获取直接和间接相关记忆
  • 记忆压缩和采样机制,控制记忆质量和数量

工作记忆系统

  • 短期工作记忆处理器,用于专注聊天场景
  • 支持记忆激活度管理和动态调度

记忆配置参数

  • 记忆构建间隔、遗忘时间、压缩率等可配置
  • 支持记忆禁用词列表,过滤不需要记忆的内容

情感系统

MaiBot 具有先进的情感模型:

二维情感模型

  • 基于愉悦度(valence)和唤醒度(arousal)的二维情感空间
  • 支持19种具体情感状态映射(如开心、愤怒、悲伤等)
  • 情感状态会影响打字速度和回复行为

情感动态管理

  • 情感衰减机制,情感会随时间自然衰减
  • 情感历史追踪,支持情感变化趋势分析
  • 情感与人格系统集成,影响关系管理

Open-LLM-VTuber 的记忆和情感系统

https://github.com/Open-LLM-VTuber/Open-LLM-VTuber

记忆系统

Open-LLM-VTuber 的记忆系统相对简单:

基础记忆代理 (BasicMemoryAgent)

  • 使用简单的列表结构存储对话历史
  • 支持从聊天历史加载记忆
  • 群聊中为每个成员维护独立的记忆索引
  • 长期记忆功能暂时下线,但保留聊天记录持久化

情感系统

Open-LLM-VTuber 的情感系统主要用于Live2D表情控制:

Live2D情感映射

  • 通过 实现情感表达
  • 支持从文本中提取情感关键词
  • 将情感映射到Live2D模型的表情动作
  • 可配置的情感映射表,支持自定义表情控制

xiaozhi-esp32-server 的记忆和情感系统

https://github.com/xinnan-tech/xiaozhi-esp32-server

记忆系统

xiaozhi-esp32-server 提供了模块化的记忆解决方案:

多种记忆提供者

  • mem0ai:基于外部API的记忆服务
  • mem_local_short:本地短期记忆实现
  • nomem:无记忆模式

本地记忆特性

  • "时空记忆编织者"概念,支持情感强度评估
  • 记忆保存到本地文件,支持持久化
  • 可为记忆总结配置独立的LLM模型

情感系统

xiaozhi-esp32-server 的情感系统注重实用性:

情感分析功能

  • analyze_emotion 函数支持中英文情感关键词识别
  • 返回对应的emoji表情名称
  • 支持情感优先级排序

TTS情感集成

  • TTS服务支持情感参数设置
  • 对话回复考虑角色情感和态度
  • 与语音合成系统深度集成

总结对比

项目 记忆系统复杂度 情感系统特点 主要应用场景
MaiBot 最复杂 二维情感模型,动态管理 QQ群聊智能体
Open-LLM-VTuber 简单 Live2D表情映射 虚拟主播互动
xiaozhi-esp32-server 中等 实用型情感分析 智能硬件后端

MaiBot 的系统最为完整和先进,适合需要长期交互的场景;Open-LLM-VTuber 专注于视觉表现;xiaozhi-esp32-server 则提供了灵活的模块化选择,适合不同硬件环境的需求。

三种AI人机交互系统的记忆模块对比:小智、OPEN-LLM-VTUBER和MaiBot的更多相关文章

  1. Linux三种关机/重启系统的命令

    Linux提供了三种关机/重启系统的命令:shutdown.halt和reboot.这三个命令在一般情况下只有 系统的超级用户(一般是指root)才可以执行.输入没有参数的shutdown命令,两分钟 ...

  2. EOS -- 一种灵巧的系统运行跟踪模块

    EOS到底是什么词的缩写,我猜应该是Error of System.最早接触它,是在UT那会.不过那会它是被设计成一个很大的数组,也没有被包含调用函数和行号,又或是时间,只是些计数.编码时,加减一个E ...

  3. Centos6.4三种更改hostname的方法之间的对比

    首先,利用hostname命令查看一下当前主机的主机名,在终端输入hostname,会发现显示的是完整的主机名称(主机名.域名),其中主机名与进入终端后:登录名@主机名,显示的一致,如下图所示: 其次 ...

  4. JS基础语法---创建对象---三种方式创建对象:调用系统的构造函数;自定义构造函数;字面量的方式

    创建对象三种方式: 调用系统的构造函数创建对象 自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象) 字面量的方式创建对象 第一种:调用系统的构造函数创建对象 //小苏举例子: //实例化对 ...

  5. Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  6. [转]Linux中设置服务自启动的三种方式

    from:http://www.cnblogs.com/nerxious/archive/2013/01/18/2866548.html 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统 ...

  7. python实现单例模式的三种方式及相关知识解释

    python实现单例模式的三种方式及相关知识解释 模块模式 装饰器模式 父类重写new继承 单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singlet ...

  8. (转)Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  9. SQLite三种JDBC驱动的区别

    在DBeaver中看到SQLite有三种JDBC驱动,查了它们官方网站的相关解释,发现它们还是挺不一样的.   SQLite Wrapper by Christian http://www.ch-we ...

  10. 【转发】Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

随机推荐

  1. Netty基础—7.Netty实现消息推送服务

    大纲 1.Netty实现HTTP服务器 2.Netty实现WebSocket 3.Netty实现的消息推送系统 (1)基于WebSocket的消息推送系统说明 (2)消息推送系统的PushServer ...

  2. 面试题-Java虚拟机

    前言 Java虚拟机部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮 ...

  3. 面试题:Linux 系统基础 (二)

    Linux系统中的定时任务有哪些类型,它们是如何配置的? Linux系统中的定时任务主要有两种类型:Cron作业和at作业. 1.Cron作业: 使用crontab命令配置和管理. 配置周期性执行的任 ...

  4. mybatis的输入参数类型

    一.传递简单数据类型 二.传入一个bean对象 三.传入一个包装对象(对象中存放对象)

  5. 什么是 Write-Ahead Logging (WAL) 技术?它的优点是什么?MySQL 中是否用到了 WAL?

    什么是 Write-Ahead Logging (WAL) 技术? Write-Ahead Logging (WAL) 是一种用于数据库系统的日志记录技术,它要求在对数据库进行任何修改之前,所有的修改 ...

  6. Python3爬虫入门(一)

    Python3爬虫入门 ​网络爬虫,也叫网络蜘蛛(Web?Spider).它根据网页地址(URL)爬取网页内容,而网页地址(URL)就是我们在浏览器中输入的网站链接. 在浏览器的地址栏输入URL地址, ...

  7. Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器

    企业级应用开发的需求日益增长.今天,我们要介绍的是一个在GitHub上广受好评的开源项目--Jeesite5.这不仅是一个技术框架,更是企业级应用开发的加速器.接下来,我们将深入探讨Jeesite5的 ...

  8. Web前端入门第 51 问:移动端适配的视口元标签(meta)常见使用场景

    经常查看网页源码的同学应该都有注意到,基本上面向移动端的所有网站都有个 <meta name="viewport" xxx> 这样的HTML元素. 为什么需要 meta ...

  9. Flutter集成微信小程序技术教程

    .markdown-body { color: rgba(89, 89, 89, 1); font-size: 15px; font-family: -apple-system, system-ui, ...

  10. Seata源码—2.seata-samples项目介绍

    大纲 1.seata-samples的配置文件和启动类 2.seata-samples业务服务启动时的核心工作 3.seata-samples库存服务的连接池配置 4.Seata对数据库连接池代理配置 ...