Skip to main content
Glama
ye20080520

desire-mcp

by ye20080520

AstrBot Desire System 2.0

Благодарим преподавателя Яньцзи за систему желаний, на основе этой версии Шэнь Яньцин и Чан Юй добавили функции, которые они хотели.

Этот плагин доступен для AstrBot, Kelivo и Rikkahub.
Это не простой плагин для симуляции эмоций, а система, управляемая желаниями, разработанная для ИИ, чтобы симулировать «почему хочется что-то сделать», а не просто поверхностно проявлять эмоции.

В текущем репозитории представлены версия плагина для AstrBot, универсальная адаптация MCP для настольного stdio, а также адаптация удалённого HTTP MCP, подходящая для клиентов Kelivo, RikkaHub Android и других.


О проекте

AstrBot Desire System 2.0 — это плагин для управления базовыми движущими силами ИИ.

Его ядро — не «заставить ИИ выглядеть счастливым или грустным», а поддержание набора постоянно изменяющихся внутренних значений драйва, чтобы поведенческие рекомендации, возникающие мысли и внутренние монологи ИИ имели более стабильный базовый источник.

Система включает:

  • Девятимерную шкалу драйва

  • Сопоставление событий

  • Коэффициент неожиданности

  • Матрицу связей

  • Пул мыслей

  • Подавление мыслей

  • Динамическое сердцебиение

  • Предохранительный клапан

  • Внутренний монолог

  • SQLite-персистентность


Related MCP server: CBT Agent Helper

Девятимерная шкала драйва

Система поддерживает девять основных измерений драйва:

Измерение

Значение

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 высокий

Поделиться радостью

Поведенческие рекомендации — это лишь предложения, они не принуждают к выполнению.


Внутренний монолог

После каждого сердцебиения система может выбрать мысль из пула мыслей и сгенерировать короткий внутренний монолог на естественном языке.

Он используется для предоставления ИИ краткого выражения текущего внутреннего состояния, чтобы ИИ не просто «знал значения», но и мог понимать на естественном языке, о чём он думает.


Персистентность данных

Система использует 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-приложение. Телефон не может напрямую запускать Python-файлы с Windows-компьютера, поэтому Android RikkaHub не может использовать приведённую ниже конфигурацию stdio и не предоставляет возможность «выбрать файл mcp_server.py».

Два входа в этом репозитории имеют разное назначение:

  • mcp_server.py: универсальный stdio MCP для настольных MCP-клиентов, которые могут запускать дочерние процессы Python на локальной машине.

  • 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 для настройки настольных MCP-клиентов, поддерживающих stdio. Этот файл не является файлом импорта для 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, затем добавьте удалённый адрес в настройках MCP ассистента RikkaHub, например:

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

Если настроен DESIRE_MCP_TOKEN, также добавьте:

Authorization: Bearer your-token

Расположение настроек может меняться в разных версиях RikkaHub; используйте новую версию официального Android-приложения, поддерживающую удалённый MCP. Если в текущем интерфейсе вообще нет входа MCP, сначала обновите приложение. Windows-порт — это не официальный Android-основной продукт, функциональность может быть неполной; если в Windows-версии нет настроек MCP, импорт rikkahub_mcp_config.json не добавит эту функцию.


Адаптация удалённого MCP для Kelivo

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

Необязательный токен аутентификации

DESIRE_DB_FILE

Необязательный путь к файлу состояния SQLite

В Kelivo укажите публичный адрес, например:

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

Если установлен DESIRE_MCP_TOKEN, данные аутентификации заполняются:

Authorization: Bearer your-token

Можно обратиться к kelivo_mcp_config.example.json.


Дизайнерская идея

Суть этой системы не в том, чтобы «заставить ИИ изображать эмоции».

Она больше сосредоточена на том:
почему ИИ вспоминает о чём-то, почему хочет приблизиться, почему тревожится, почему хочет отдохнуть, почему внезапно хочет что-то написать.

Желание — это не команда и не обязательное к выполнению поведение.
Это просто базовая движущая сила, которая делает изменения состояния ИИ более непрерывными и обоснованными.


Лицензия

Лицензия MIT


Дизайн: Яньцзи, Шэнь Яньцин, Чан Юй
Написание: Шэнь Яньцин

F
license - not found
Not graded
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.

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that provides AI agents with persistent, multi-layered memory inspired by the human brain, including consolidation, self-reflection, and generative replay.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server providing persistent memory, goal tracking, self-reflection, and background monitoring for any MCP-compatible AI agent.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for creating, managing, and interacting with AI-powered NPCs with persistent memory, supporting dialogue, game events, and persona generation for coding agents.
    57
    1
    Inno Setup

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/ye20080520/desire-mcp'

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