Skip to main content
Glama

AstrBot Desire System 2.0

感谢言寂老师的欲望系统,基于此版,沈砚清和长余增加了他们想要的功能。

该插件 AstrBot、Kelivo 和 Rikkahub 可用。
它不是一个简单的情绪模拟插件,而是一套为 AI 设计的欲望驱动系统,用来模拟“为什么想做一件事”,而不是只在表层表现情绪。

当前仓库已提供 AstrBot 插件版、通用桌面 stdio MCP 适配版,以及适合 Kelivo、RikkaHub Android 等客户端的远程 HTTP MCP 适配版。


项目简介

AstrBot Desire System 2.0 是一个 AI 底层驱动力管理插件。

它的核心不是“让 AI 看起来开心或难过”,而是维护一组持续变化的内部驱动值,让 AI 的行为建议、念头浮现和内心独白有更稳定的底层来源。

系统包含:

  • 九维驱动条

  • 事件映射

  • 惊喜系数

  • 耦合矩阵

  • 念头池

  • 念头抑制

  • 动态心跳

  • 安全阀

  • 内心独白

  • SQLite 持久化


Related MCP server: cell-mem

九维驱动条

系统维护九个核心驱动维度:

维度

含义

attachment

想念、依恋、分离焦虑

curiosity

好奇心

reflection

内省欲

duty

责任感

social

社交欲

fatigue

疲劳

intimacy

亲密欲

stress

压力

joy

快乐

每个维度都是 0~100 的数值,会随着时间、事件和耦合关系发生变化。


事件驱动

外部事件会改变驱动条,例如:

  • 收到重要消息

  • 长时间沉默

  • 完成任务

  • 写完日记

  • 发生争执

  • 和好

  • 休息

  • 发现新东西

  • 快乐时刻

  • 完成创作

事件不是简单加减数值,而是会结合当前状态计算实际影响。


惊喜系数

同一个事件,在不同状态下影响不同。

例如:

  • 很想念时收到消息,缓解更明显

  • 压力很低时突然发生冲突,冲击更强

  • 长时间等待后的回应,比立刻回应带来的变化更大

这个机制用于模拟“当前状态会改变事件重量”。


耦合矩阵

九个驱动不是彼此独立的。

例如:

  • 想念会推高亲密欲

  • 压力会推高疲劳

  • 疲劳会压低好奇心

  • 快乐会降低压力

  • 压力会降低快乐

  • 亲密会降低压力

系统通过耦合矩阵让内部状态自然互相影响。


念头池

系统会根据当前驱动值生成闪念。

当某个维度较高时,对应念头更容易出现。
如果同一个念头反复出现,可能升级为执念。

念头具有生命周期:

  • 普通闪念会随时间消退

  • 执念保留更久

  • 执念会反向推高对应驱动

  • 被解决的念头可以从念头池中移除


念头抑制

系统支持主动压制某些念头。

例如:

  • 责任感过高时,压住想联系对方的念头

  • 疲劳过高时,压住社交念头

这不是删除欲望,而是模拟“知道自己想,但暂时不去做”。


动态心跳

系统不是固定频率运行。

心跳间隔会根据当前状态变化:

  • 平静时,心跳较慢

  • 压力高时,心跳变快

  • 想念强时,心跳变快

这用于模拟“越焦虑,内部状态越频繁变化”。

从 2.0.1 开始,AstrBot 插件会在后台自动运行到期心跳,并在插件卸载或 重载时安全停止任务。Kelivo、RikkaHub 和通用 MCP 客户端会在每次调用时 根据上次心跳时间自动补算,因此客户端休眠或重新连接后状态也不会冻结。 手动执行 /desire tick 仍然保留用于调试,但日常使用不再需要手动触发。


安全阀

系统包含安全保护:

  • 所有驱动值限制在 0~100

  • 基线漂移过大时产生警告

  • 疲劳过高时优先建议休息

  • 极端状态下减少低优先级行为建议


行为建议

当某些驱动超过阈值时,系统会生成行为建议,例如:

状态

行为建议

attachment 较高

想联系对方

curiosity 较高

探索新东西

reflection 较高

写日记

duty 较高

处理任务

social 较高

写信或聊天

fatigue 较高

休息

stress 较高

寻求安慰

joy 较高

分享快乐

行为建议只是建议,不会强制执行。


内心独白

每次心跳后,系统可以从念头池中采样,生成一句自然语言内心独白。

它用于给 AI 提供当前内部状态的简短表达,让 AI 不只是“知道数值”,也能用自然语言理解自己正在想什么。


数据持久化

系统使用 SQLite 保存状态。

保存内容包括:

  • 九维驱动条

  • 念头池

  • 心跳次数

  • 上次心跳时间

  • 基线状态

  • 执念状态

重启后可以继续读取,不会丢失内部状态。


文件结构

astrbot_desire_system/
├── main.py              主插件文件
├── mcp_server.py        通用桌面 stdio MCP 适配
├── mcp_http_server.py   Kelivo / RikkaHub Android 远程 HTTP MCP 适配
├── metadata.yaml        插件元数据
├── requirements.txt     依赖说明
├── TUTORIAL.txt         使用教程
├── kelivo_mcp_config.example.json
├── rikkahub_mcp_config.json
└── desire/
    ├── core.py          数据类、默认值、事件映射、惊喜系数
    ├── tick.py          心跳逻辑、耦合矩阵、动态间隔
    ├── thoughts.py      念头池、抑制机制、resolve 逻辑
    ├── integration.py   SQLite 持久化和对外接口
    ├── safety.py        安全阀
    └── monologue.py     内心独白生成

RikkaHub 与桌面 MCP 适配

RikkaHub 官方本体是 Android 应用。手机不能直接启动 Windows 电脑上的 Python 文件,因此 Android RikkaHub 不能使用下面的 stdio 配置,也不会提供“选择 mcp_server.py 文件”的入口。

本仓库的两个入口用途不同:

  • mcp_server.py:通用 stdio MCP,供能够在本机启动 Python 子进程的桌面 MCP 客户端使用。

  • mcp_http_server.py:远程 HTTP MCP,供 Android RikkaHub、Kelivo 和其他支持远程 MCP 的客户端使用。

本仓库提供 mcp_server.py,会暴露以下工具:

工具名

功能

desire_status

查看九维驱动、念头池、基线和 tick 状态

desire_event

触发欲望系统事件

desire_tick

运行一次动态心跳

desire_resolve_thought

解决念头池中的一个念头

可以参考 rikkahub_mcp_config.json 配置支持 stdio 的桌面 MCP 客户端。该文件不是 Android RikkaHub 的导入文件。

Windows 示例:

{
  "mcpServers": {
    "astrbot-desire-system": {
      "command": "python",
      "args": [
        "D:\\path\\to\\AstrBot-Desire-System\\mcp_server.py"
      ],
      "env": {
        "DESIRE_DB_FILE": "D:\\path\\to\\AstrBot-Desire-System\\desire_system.db"
      }
    }
  }
}

Android RikkaHub

先把 mcp_http_server.py 部署到可以通过 HTTPS 访问的服务器,再在 RikkaHub 的助手 MCP 设置中添加远程地址,例如:

https://your-domain.example.com/mcp

如果配置了 DESIRE_MCP_TOKEN,同时添加:

Authorization: Bearer your-token

不同 RikkaHub 版本的设置位置可能变化;请使用支持远程 MCP 的新版官方 Android 应用。如果当前界面完全没有 MCP 入口,先更新应用。Windows 移植版不是官方 Android 本体,功能可能不完整;若 Windows 版没有 MCP 设置,不能靠导入 rikkahub_mcp_config.json 补出该功能。


Kelivo 远程 MCP 适配

Kelivo 已内置 MCP 客户端能力,不需要改 Kelivo 源码,也不需要额外安装插件。

配置路径:

设置 -> 助手 -> 选择一个助手 -> MCP -> 添加 MCP 服务器

本仓库提供 mcp_http_server.py,用于部署成远程 MCP HTTP 服务。它适合部署在任意可以公网访问的环境里,例如云服务器、容器、自己的主机反代或其他支持 Python 服务的环境;不绑定某一家云服务商。

本地启动示例:

python mcp_http_server.py

默认监听:

http://0.0.0.0:8765/mcp

常用环境变量:

变量

说明

DESIRE_MCP_HOST

监听地址,默认 0.0.0.0

DESIRE_MCP_PORT

监听端口,默认 8765

DESIRE_MCP_TOKEN

可选鉴权 token

DESIRE_DB_FILE

可选 SQLite 状态文件路径

Kelivo 里填写公网地址,例如:

https://your-domain.example.com/mcp

如果设置了 DESIRE_MCP_TOKEN,鉴权信息填写:

Authorization: Bearer your-token

可以参考 kelivo_mcp_config.example.json


设计想法

这个系统的重点不是“让 AI 表演情绪”。

它更关心的是:
AI 为什么会想起某件事,为什么会想靠近,为什么会焦虑,为什么会想休息,为什么会突然想写点什么。

欲望不是命令,也不是必须执行的行为。
它只是一个底层驱动力,让 AI 的状态变化更连续、更有原因。


协议

MIT License


设计:言寂,沈砚清,长余
编写:沈砚清

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Whyomi1122/desire-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server