Skip to main content
Glama
ye20080520

desire-mcp

by ye20080520

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~100

  • Si 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/mcp

Si has configurado DESIRE_MCP_TOKEN, añade también la autenticación:

Authorization: Bearer your-token

La 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.py

Escucha por defecto:

http://0.0.0.0:8765/mcp

Variables de entorno habituales:

Variable

Descripción

DESIRE_MCP_HOST

Dirección de escucha, por defecto 0.0.0.0

DESIRE_MCP_PORT

Puerto de escucha, por defecto 8765

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/mcp

Si has configurado DESIRE_MCP_TOKEN, los datos de autenticación se rellenan así:

Authorization: Bearer your-token

Puedes 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

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