Skip to main content
Glama
ye20080520

desire-mcp

by ye20080520

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의 행동 제안, 생각의 떠오름, 내면 독백이 더 안정적인 하위 계층 소스를 갖게 하는 것입니다.

시스템 구성:

  • 9차원 구동 게이지

  • 이벤트 매핑

  • 놀람 계수

  • 결합 행렬

  • 생각 풀

  • 생각 억제

  • 동적 하트비트

  • 안전 밸브

  • 내면 독백

  • SQLite 영속화


Related MCP server: CBT Agent Helper

9차원 구동 게이지

시스템은 9가지 핵심 구동 차원을 유지합니다:

차원

의미

attachment

그리움, 애착, 분리 불안

curiosity

호기심

reflection

내성 욕구

duty

책임감

social

사교 욕구

fatigue

피로

intimacy

친밀 욕구

stress

스트레스

joy

즐거움

각 차원은 0~100 값이며, 시간, 이벤트, 결합 관계에 따라 변화합니다.


이벤트 구동

외부 이벤트는 구동 게이지를 변경합니다. 예:

  • 중요한 메시지 수신

  • 오랜 침묵

  • 작업 완료

  • 일기 작성 완료

  • 다툼 발생

  • 화해

  • 휴식

  • 새로운 것 발견

  • 즐거운 순간

  • 창작 완료

이벤트는 단순히 값을 더하거나 빼는 것이 아니라 현재 상태와 결합하여 실제 영향을 계산합니다.


놀람 계수

같은 이벤트라도 상태에 따라 영향이 다릅니다.

예:

  • 그리움이 클 때 메시지를 받으면 완화가 더 뚜렷함

  • 스트레스가 매우 낮을 때 갑자기 갈등이 발생하면 충격이 더 큼

  • 오래 기다린 후의 응답은 즉각적인 응답보다 더 큰 변화를 가져옴

이 메커니즘은 "현재 상태가 이벤트의 무게를 바꾼다"는 것을 시뮬레이션하는 데 사용됩니다.


결합 행렬

9가지 구동은 서로 독립적이지 않습니다.

예:

  • 그리움은 친밀 욕구를 높임

  • 스트레스는 피로를 높임

  • 피로는 호기심을 낮춤

  • 즐거움은 스트레스를 낮춤

  • 스트레스는 즐거움을 낮춤

  • 친밀감은 스트레스를 낮춤

시스템은 결합 행렬을 통해 내부 상태가 자연스럽게 서로 영향을 주고받게 합니다.


생각 풀

시스템은 현재 구동값에 따라 스치는 생각을 생성합니다.

특정 차원이 높으면 해당 생각이 더 쉽게 나타납니다.
같은 생각이 반복적으로 나타나면 집념으로 승격될 수 있습니다.

생각에는 수명 주기가 있습니다:

  • 일반적인 스치는 생각은 시간이 지나면 사라짐

  • 집념은 더 오래 유지됨

  • 집념은 해당 구동을 역방향으로 높임

  • 해결된 생각은 생각 풀에서 제거될 수 있음


생각 억제

시스템은 특정 생각을 능동적으로 억제하는 것을 지원합니다.

예:

  • 책임감이 너무 높을 때 상대에게 연락하고 싶은 생각을 억제함

  • 피로가 너무 높을 때 사교적인 생각을 억제함

이는 욕구를 삭제하는 것이 아니라 "하고 싶다는 것을 알지만 당분간 하지 않는다"는 것을 시뮬레이션합니다.


동적 하트비트

시스템은 고정된 주기로 실행되지 않습니다.

하트비트 간격은 현재 상태에 따라 변화합니다:

  • 평온할 때 하트비트가 느림

  • 스트레스가 높을 때 하트비트가 빨라짐

  • 그리움이 강할 때 하트비트가 빨라짐

이는 "불안할수록 내부 상태가 더 자주 변화한다"는 것을 시뮬레이션하는 데 사용됩니다.

2.0.1부터 AstrBot 플러그인은 백그라운드에서 실행 시점이 된 하트비트를 자동으로 실행하고, 플러그인을 제거하거나 다시 로드할 때 작업을 안전하게 중지합니다. Kelivo, RikkaHub 및 범용 MCP 클라이언트는 호출할 때마다 마지막 하트비트 시간을 기준으로 자동 보정하므로, 클라이언트가 절전 모드이거나 다시 연결된 후에도 상태가 동결되지 않습니다. /desire tick 수동 실행은 디버깅용으로 유지되지만, 일상적인 사용에서는 더 이상 수동 트리거가 필요하지 않습니다.


안전 밸브

시스템에는 안전 보호 기능이 포함됩니다:

  • 모든 구동값은 0~100으로 제한됨

  • 기준선 드리프트가 너무 크면 경고 생성

  • 피로가 너무 높으면 휴식을 우선적으로 권장

  • 극단적인 상태에서는 낮은 우선순위의 행동 제안을 줄임


행동 제안

특정 구동이 임계값을 초과하면 시스템은 행동 제안을 생성합니다. 예:

상태

행동 제안

attachment 높음

상대에게 연락하고 싶음

curiosity 높음

새로운 것 탐색

reflection 높음

일기 쓰기

duty 높음

작업 처리

social 높음

편지 쓰기 또는 대화

fatigue 높음

휴식

stress 높음

위로 구하기

joy 높음

기쁨 나누기

행동 제안은 제안일 뿐이며 강제로 실행되지 않습니다.


내면 독백

매 하트비트 후 시스템은 생각 풀에서 샘플링하여 한 문장의 자연어 내면 독백을 생성할 수 있습니다.

이는 AI에게 현재 내부 상태에 대한 간단한 표현을 제공하여, AI가 단지 "수치를 아는 것"에 그치지 않고 자연어로 자신이 무엇을 생각하고 있는지 이해할 수 있게 합니다.


데이터 영속화

시스템은 SQLite를 사용하여 상태를 저장합니다.

저장 내용:

  • 9차원 구동 게이지

  • 생각 풀

  • 하트비트 횟수

  • 마지막 하트비트 시간

  • 기준선 상태

  • 집념 상태

재시작 후에도 계속 읽을 수 있으며 내부 상태가 손실되지 않습니다.


파일 구조

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

9차원 구동, 생각 풀, 기준선 및 tick 상태 확인

desire_event

욕구 시스템 이벤트 트리거

desire_tick

동적 하트비트 1회 실행

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

선택적 인증 토큰

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