desire-mcp
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 | Адрес прослушивания, по умолчанию |
DESIRE_MCP_PORT | Порт прослушивания, по умолчанию |
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
Дизайн: Яньцзи, Шэнь Яньцин, Чан Юй
Написание: Шэнь Яньцин
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityBmaintenanceAn MCP server that provides AI agents with persistent, multi-layered memory inspired by the human brain, including consolidation, self-reflection, and generative replay.1MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to engage in structured deep thinking and recover from stuck states using CBT techniques and contemplation protocols.3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server providing persistent memory, goal tracking, self-reflection, and background monitoring for any MCP-compatible AI agent.1MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for creating, managing, and interacting with AI-powered NPCs with persistent memory, supporting dialogue, game events, and persona generation for coding agents.571Inno Setup
Related MCP Connectors
Cloud-hosted MCP server for durable AI memory
Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.
An MCP server that integrates with Discord to provide AI-powered features.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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