desire-mcp
Sistema de Deseos AstrBot 2.0
Gracias al sistema de deseos del profesor Yanji, basado en esta versión, Shen Yanqing y Changyu añadieron las funciones que querían.
Este plugin está disponible para AstrBot, Kelivo y RikkaHub.
No es un simple plugin de simulación de emociones, sino un sistema de deseos diseñado para IA, que se usa para simular "por qué quiere hacer algo", en lugar de solo expresar emociones en la superficie.
El repositorio actual ya ofrece la versión de plugin para AstrBot, la adaptación MCP estándar para escritorio (stdio), y la adaptación MCP remota por HTTP adecuada para clientes como Kelivo y RikkaHub en Android.
Introducción al proyecto
El Sistema de Deseos AstrBot 2.0 es un plugin de gestión de impulsos subyacentes para IA.
Su núcleo no es "hacer que la IA parezca feliz o triste", sino mantener un conjunto de valores de impulso en continuo cambio, para que las sugerencias de comportamiento, los pensamientos espontáneos y los monólogos internos de la IA tengan una fuente subyacente más estable.
El sistema incluye:
Matriz de nueve impulsos
Mapeo de eventos
Coeficiente de sorpresa
Matriz de acoplamiento
Pool de pensamientos
Supresión de pensamientos
Latido dinámico
Válvula de seguridad
Persistencia con SQLite
Related MCP server: CBT Agent Helper
Matriz de nueve impulsos
El sistema mantiene nueve dimensiones de impulso principales:
Dimensión | Significado |
attachment | Añoranza, apego, ansiedad por separación |
curiosity | Curiosidad |
reflection | Necesidad de introspección |
duty | Sentido del deber |
social | Necesidad social |
fatigue | Fatiga |
intimacy | Necesidad de intimidad |
stress | Estrés |
joy | Alegría |
Cada dimensión es un valor de 0~100, que cambia con el tiempo, los eventos y las relaciones de acoplamiento.
Eventos
Los eventos externos modifican los valores de los impulsos, por ejemplo:
Recibir un mensaje importante
Estar en silencio durante mucho tiempo
Completar una tarea
Terminar de escribir el diario
Tener un conflicto
Hacer las paces
Descansar
Descubrir algo nuevo
Un momento de alegría
Terminar una creación
Los eventos no son simples sumas o restas de valores, sino que calculan el impacto real combinando el estado actual.
Coeficiente de sorpresa
El mismo evento tiene impactos diferentes según el estado en que se encuentre.
Por ejemplo:
Cuando se extraña mucho, recibir un mensaje alivia más
Cuando el estrés es muy bajo, un conflicto repentino golpea más fuerte
Una respuesta después de esperar mucho tiempo produce un cambio mayor que una respuesta inmediata
Este mecanismo se usa para simular que "el estado actual cambia el peso de los eventos".
Matriz de acoplamiento
Los nueve impulsos no son independientes entre sí.
Por ejemplo:
La añoranza aumenta la necesidad de intimidad
El estrés aumenta la fatiga
La fatiga reduce la curiosidad
La alegría reduce el estrés
El estrés reduce la alegría
La intimidad reduce el estrés
El sistema utiliza una matriz de acoplamiento para que los estados internos se influyan entre sí de forma natural.
Pool de pensamientos
El sistema genera pensamientos espontáneos según los valores de impulso actuales.
Cuando una dimensión está alta, es más probable que aparezca el pensamiento correspondiente.
Si el mismo pensamiento aparece repetidamente, puede convertirse en una obsesión.
Los pensamientos tienen un ciclo de vida:
Los pensamientos ordinarios se desvanecen con el tiempo
Las obsesiones permanecen más tiempo
Las obsesiones aumentan de forma inversa el impulso correspondiente
Los pensamientos resueltos pueden eliminarse del pool
Supresión de pensamientos
El sistema permite suprimir activamente ciertos pensamientos.
Por ejemplo:
Cuando el sentido del deber es muy alto, se reprime el impulso de contactar a la otra persona
Cuando la fatiga es muy alta, se reprime el impulso social
Esto no es eliminar el deseo, sino simular "sé que quiero, pero por ahora no lo hago".
Latido dinámico
El sistema no funciona con una frecuencia fija.
El intervalo del latido cambia según el estado actual:
Cuando está tranquilo, el latido es más lento
Cuando el estrés es alto, el latido se acelera
Cuando la añoranza es fuerte, el latido se acelera
Esto se usa para simular que "cuanto más ansioso, más frecuente es el cambio de estado interno".
Desde la versión 2.0.1, el plugin de AstrBot ejecuta automáticamente los latidos programados en segundo plano, y detiene las tareas de forma segura al desinstalar o recargar. Kelivo, RikkaHub y los clientes MCP genéricos recalculan automáticamente según el último latido en cada llamada, por lo que el estado no se congela aunque el cliente esté en reposo o se reconecte.
La ejecución manual de /desire tick se mantiene para depuración, pero ya no es necesaria en el uso diario.
Válvula de seguridad
El sistema incluye protecciones de seguridad:
Todos los valores de impulso están limitados a
0~100Si la deriva de la línea base es demasiado grande, se genera una advertencia
Si la fatiga es demasiado alta, se recomienda priorizar el descanso
En estados extremos, se reducen las sugerencias de comportamiento de baja prioridad
Sugerencias de comportamiento
Cuando algunos impulsos superan el umbral, el sistema genera sugerencias de comportamiento, por ejemplo:
Estado | Sugerencia de comportamiento |
attachment alto | Quiere contactar a la otra persona |
curiosity alto | Quiere explorar algo nuevo |
reflection alto | Quiere escribir en el diario |
duty alto | Quiere ocuparse de la tarea |
social alto | Quiere escribir o charlar |
fatigue alto | Quiere descansar |
stress alto | Quiere buscar consuelo |
joy alto | Quiere compartir |
Las sugerencias de comportamiento son solo sugerencias, no se ejecutan de forma forzada.
Monólogo interno
En cada latido, el sistema puede muestrear del pool de pensamientos y generar una frase de monólogo interno en lenguaje natural.
Se usa para dar a la IA una expresión breve de su estado interno actual, para que no solo "conozca los valores numéricos", sino que también pueda entender con lenguaje natural lo que está pensando en ese momento.
Persistencia de datos
El sistema usa SQLite para guardar el estado.
El contenido guardado incluye:
Los nueve valores de impulso
El pool de pensamientos
El número de latidos
La marca de tiempo del último latido
El estado de la línea base
El estado de las obsesiones
Después de reiniciar, se puede continuar leyendo el estado y no se pierde la información interna.
Estructura de archivos
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 内心独白生成Adaptación para RikkaHub y MCP de escritorio
El cuerpo oficial de RikkaHub es una aplicación de Android. Un teléfono no puede iniciar directamente un archivo Python en un PC con Windows, por lo que RikkaHub en Android no puede usar la configuración stdio que se muestra a continuación, ni ofrecerá la opción de "seleccionar el archivo mcp_server.py".
Las dos entradas de este repositorio tienen usos diferentes:
mcp_server.py: MCP stdio genérico, para clientes MCP de escritorio que pueden iniciar subprocesos de Python en la misma máquina.mcp_http_server.py: MCP remoto por HTTP, para clientes como RikkaHub en Android, Kelivo y otros que admiten MCP remoto.
Este repositorio proporciona mcp_server.py, que expone las siguientes herramientas:
Herramienta | Función |
desire_status | Consultar los nueve impulsos, el pool de pensamientos, la línea base y el estado del latido |
desire_event | Disparar un evento del sistema de deseos |
desire_tick | Ejecutar un latido dinámico |
desire_resolve_thought | Resolver un pensamiento del pool |
Puedes consultar rikkahub_mcp_config.json para configurar clientes MCP de escritorio que admitan stdio. Ese archivo no es para importar en RikkaHub de Android.
Ejemplo en 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"
}
}
}
}RikkaHub en Android
Primero despliega mcp_http_server.py en un servidor accesible por HTTPS y, luego, en la configuración de MCP del asistente de RikkaHub, añade la dirección remota, por ejemplo:
https://your-domain.example.com/mcpSi has configurado DESIRE_MCP_TOKEN, añade también la autenticación:
Authorization: Bearer your-tokenLa ubicación de la configuración puede variar según la versión de RikkaHub; usa la versión nueva oficial de la aplicación Android que admita MCP remoto. Si la interfaz actual no tiene ninguna entrada de MCP, actualiza primero la aplicación. La versión para Windows no es el cuerpo oficial de Android y puede tener funciones incompletas; si la versión de Windows no tiene configuración de MCP, no se puede solucionar importando rikkahub_mcp_config.json.
Adaptación remota para Kelivo
Kelivo ya incluye capacidad de cliente MCP integrada; no es necesario modificar el código de Kelivo ni instalar plugins adicionales.
Ruta de configuración:
设置 -> 助手 -> 选择一个助手 -> MCP -> 添加 MCP 服务器Este repositorio proporciona mcp_http_server.py, que se usa para desplegar un servicio MCP remoto por HTTP. Es adecuado para desplegarlo en cualquier entorno con acceso público a internet, como servidores en la nube, contenedores, proxies inversos en tu propio equipo u otros entornos que admitan servicios Python; no está vinculado a ningún proveedor de nube en particular.
Ejemplo de inicio local:
python mcp_http_server.pyEscucha por defecto:
http://0.0.0.0:8765/mcpVariables de entorno habituales:
Variable | Descripción |
DESIRE_MCP_HOST | Dirección de escucha, por defecto |
DESIRE_MCP_PORT | Puerto de escucha, por defecto |
DESIRE_MCP_TOKEN | Token de autenticación opcional |
DESIRE_DB_FILE | Ruta opcional del archivo de estado SQLite |
En Kelivo, rellena la dirección pública, por ejemplo:
https://your-domain.example.com/mcpSi has configurado DESIRE_MCP_TOKEN, los datos de autenticación se rellenan así:
Authorization: Bearer your-tokenPuedes consultar kelivo_mcp_config.example.json.
Idea de diseño
El punto central de este sistema no es "hacer que la IA actúe emociones".
Lo que le importa es:
por qué la IA recuerda algo, por qué quiere acercarse, por qué se siente ansiosa, por qué quiere descansar, por qué de repente quiere escribir algo.
El deseo no es una orden ni un comportamiento que deba ejecutarse.
Es solo una fuerza motriz subyacente, para que los cambios de estado de la IA sean más continuos y tengan más causa.
Licencia
Licencia MIT
Diseño: Yanji, Shen Yanqing, Changyu
Redacción: Shen Yanqing
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