xinchao-dynamic-mind
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 37 GitHub stars
Code Uyari
- network request — Outbound network request in compose.yaml
- network request — Outbound network request in src/bark-client.js
- process.env — Environment variable access in src/config.js
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
独立、可自托管的 AI 动态心智状态引擎:驱动力、念头池、疲惫、睡眠与意图。
心潮动态心智系统 2.3.1

心潮是一个独立、可自托管的 AI 动态状态层。它在对话之外持续维护驱动力、念头池、疲惫、睡眠、梦境余韵与短期窗口状态,并通过 HTTP API 或远程 MCP 接入不同模型、设备和前端。
心潮模拟可解释的动态状态,不宣称产生意识、情感或生命。核心状态机可离线运行;模型、长期记忆、OAuth 和通知均为可选适配器。
2.3.1 更新重点
- 稳定 MCP 窗口:初始化时由服务端签发
Mcp-Session-Id,不再依赖模型临时编写窗口 ID。 - 近期连续性:Context Envelope 只携带动态短态、近期交接和可选的长期记忆召回,不替代客户端自己的核心指令或人物基岩。
- 短期交接便签:
xinchao_handoff_note最多 1200 字、默认 72 小时过期,不保存整段聊天原文。 - 远程 MCP + OAuth 2.1:支持动态客户端注册、授权码 + PKCE、刷新令牌以及标准发现端点。
- 幂等互动结算:
xinchao_event使用event_id防止网络重试造成重复结算。 - 隐私审计:转换日志只保存结构化变化、摘要指纹和交付元数据,不保存聊天正文或认证令牌。
- 2200 tokens 默认预算:用于短期状态和近期连续性;稳定核心资料仍由客户端单独完整读取。
完整差异见 CHANGELOG.md。
支持哪些终端
只要终端支持以下任一方式即可接入:
- 标准远程 Streamable HTTP MCP;
- OAuth 2.1 远程 MCP;
- 能发送 Bearer HTTP 请求的自建前端、桌面端或移动端;
- 通过自己的中间层访问 HTTP API 的 iOS、Android 或其他设备。
心潮不绑定 Claude。Claude、Codex、其他 Agent、自建网页和移动应用可以共享同一个服务端,但每条 MCP 连接会获得独立窗口会话。
核心能力
- 十二维驱动力与时间增长规则。
- 闪念、执念、衰减和意图选择。
- 疲惫、睡眠、梦境余韵与清晨冻结。
- 窗口短态与定时过期。
- 有界语义互动反馈,客户端不能直接提交驱动力数值。
- 可选 OpenAI-compatible 模型。
- 可选 Ombre-compatible 长期记忆 MCP。
- 可选 Bark 通知与跨类型去重。
- 原子状态持久化与结构化转换日志。
快速开始
要求:Node.js 20 或更高版本。
cp .env.example .env
openssl rand -hex 32
# 将输出填入 .env 的 SERVICE_TOKEN
npm test
npm start
检查服务:
curl http://127.0.0.1:18110/health
Docker:
cp .env.example .env
mkdir -p state memory-data
docker compose up -d --build
docker compose ps
Compose 默认只映射到 127.0.0.1:18110。远程使用时请自行配置 HTTPS 反向代理或 Cloudflare Tunnel,不能直接开放裸端口。
远程 MCP
在 .env 中启用:
MCP_ENABLED=true
OAUTH_ENABLED=true
OAUTH_PUBLIC_BASE_URL=https://xinchao.example.com
OAUTH_APPROVAL_TOKEN=至少16位的独立授权口令
远程 MCP 地址:
https://xinchao.example.com/mcp
支持动态客户端注册的客户端不需要手动填写 Client ID 或 Client Secret。授权口令只在你自己的授权页面输入,不要写入客户端 URL、仓库或截图。
MCP 工具
| 工具 | 作用 |
|---|---|
xinchao_context |
获取当前动态短态和近期连续性;同一窗口首次启动默认只交付一次 |
xinchao_event |
回传一次明确互动及有界窗口状态;event_id 用于幂等 |
xinchao_handoff_note |
保存限时近期进度摘要,不保存整段聊天原文 |
session_id 是可选覆盖值。正常情况下服务端会使用 MCP 连接自带的稳定窗口 ID。
HTTP API
除 /health 与 OAuth 发现/授权端点外,业务 API 都要求:
Authorization: Bearer <SERVICE_TOKEN>
| 方法 | 路径 | 作用 |
|---|---|---|
GET |
/health |
健康状态与版本 |
GET |
/v1/state |
读取完整动态状态 |
GET |
/v1/intent |
读取当前意图 |
GET |
/v1/breath-context |
获取紧凑梦境余韵 |
GET |
/v1/context |
获取 Context Envelope |
POST |
/v1/settle |
执行状态结算 |
POST |
/v1/conversation-event |
写入一次明确互动事件 |
POST |
/v1/handoff-note |
保存短期交接摘要 |
POST |
/v1/drive-feedback |
管理端受控反馈接口 |
POST |
/mcp |
Streamable HTTP MCP |
长期记忆边界
长期记忆不是心潮的必需组件。启用外部记忆时:
OMBRE_MCP_URL=https://memory.example.com/mcp
OMBRE_MCP_TOKEN=
OMBRE_READ_ENABLED=false
OMBRE_WRITE_ENABLED=false
CONTEXT_OMBRE_ENABLED=false
- 心潮只请求近期连续性,不用短 handoff 替代客户端的稳定核心资料。
- 自动梦境写入会明确标记为自动来源。
- 技术日志、密钥、OAuth 状态和聊天原文不应进入长期人物记忆。
- 所有外部读写默认关闭,按最小权限逐项启用。
数据与安全
- 不要提交
.env、state/、memory-data/、OAuth 状态或真实 Token。 SERVICE_TOKEN、MCP_PATH_TOKEN与OAUTH_APPROVAL_TOKEN必须彼此独立。- 服务默认绑定回环地址、使用只读容器、移除 Linux capabilities。
- Context audit 只记录摘要与交付元数据。
xinchao_event不接受聊天正文;交接便签也只应保存脱水后的近期进度。- 公开部署前请阅读 SECURITY.md。
测试
npm test
当前测试覆盖状态结算、睡眠与醒来、念头池、窗口隔离、幂等互动、Context Envelope、交接便签、OAuth、MCP 协议、外部记忆适配、通知去重和隐私审计。
项目结构
src/ 状态机、MCP、OAuth 与可选适配器
test/ Node.js 原生测试
configs/ 可替换提示词
scripts/ 本地配置、部署与烟雾测试
state/ 运行状态挂载目录(不提交真实数据)
memory-data/ 可选外部心跳挂载目录
License
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi