Token导航 LogoToken导航TokenDH.com
Affection System MCP logo
运维云端未说明官方级别未说明来源级核验

Affection System MCP

MCP Server

一个为AI陪伴聊天设计的真实、可玩、通用的好感度系统,支持多种关系类型和情感动态变化。

工具数

4

提示词数

0

GitHub Stars

1

资源数

0
AI聊天JavaScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Rainymoment1201

提供方

Rainymoment1201

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

双线好感度系统 (Dual-Line Affection System)

一个为 AI 陪伴聊天设计的真实、可玩、通用的好感度系统。

![License: MIT](https://opensource.org/licenses/MIT) ](https://nodejs.org/) ![MCP](https://github.com/modelcontextprotocol/sdk)

✨ 特性

  • 🧠 真实情感: 双线系统(基础好感 + 情感动态)模拟真实人类情感变化
  • 💭 情感记忆: AI 像人类一样记住重要瞬间,支持关键词触发和时间衰减
  • 🎮 可玩性强: 保留完整攻略乐趣,支持循序渐进的情感发展
  • 🌍 关系通用: 同一系统支持恋爱/师徒/母子/友情等所有关系类型
  • 🚀 高性能: Token 消耗极低(~80-90/轮),比传统方案节省 80%+
  • 🛠️ 开箱即用: MCP 服务器实现,5分钟快速集成

📖 核心理念

双线好感度

base_affection (基础好感): -100 ~ 100
  └─ 关系的"地基" - 熟悉度、信任底线
  └─ 变化慢(±0~±10)
  └─ 示例: 陌生人=0, 青梅竹马=60, 家人=70

emotional_dynamics (情感动态): -50 ~ 50
  └─ 好感的"温度计" - 情感波动
  └─ 变化快(±1~±70)
  └─ 正值=喜欢/开心, 负值=疏离/失望

display_value = base + dynamics
  └─ 实际表现值,决定 AI 的行为

为什么要双线?

解决"青梅竹马困境":

  • 单线: 从60起步→没有攻略乐趣, 从0起步→不符合现实
  • 双线: base=60(熟络) + dynamics=0(好感平淡) → 既真实又好玩!

情感记忆系统

key_memories (情感事件日志)
  └─ 记录3-5个最重要的互动
  └─ 自动衰减: 正面7%/天, 负面15%/天
  └─ 残留效果持续影响 display_value

triggers (关键词触发器)
  └─ 保留5-10个词语→情感映射
  └─ 提到"樱花"→回想起心动瞬间 +5
  └─ 提到"那个人"→想起吵架 -3

time_awareness (时间感知)
  └─ 3天未见→想念感 +10~20
  └─ 长期冷淡→疏离感 -5~-10

变化合理性判断

AI 用常识判断变化幅度是否合理:

问自己三个问题:
1. 铺垫够吗? (之前有足够互动基础吗?)
2. 太突然吗? (这个变化会不会不真实?)
3. 符合性格吗? (我这个角色会这样快速动心吗?)

变化指南:
  小幅 (±1~10): 日常互动,随时可以
  中幅 (±11~20): 需要一定铺垫 (dynamics ≥10)
  大幅 (±21~40): 需要特殊理由 (dynamics ≥15)
  极端 (±41~50): 仅限极端事件 (一见钟情/背叛)

效果: 既支持一见钟情、细水长流,也支持慢慢心寒、突然崩盘 - 真实且自然


🚀 快速开始

1. 安装依赖

cd "Affection System/mcp-server"
npm install

2. 配置 Claude Desktop

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "affection-system": {
      "command": "node",
      "args": ["/Users/mac017/.claude/skills/Affection System/mcp-server/index.js"]
    }
  }
}

重启 Claude Desktop。

3. 准备提示词

skill.md 内容添加到你的角色卡 System Prompt 中:

# 你的角色设定
[角色卡内容...]

---

# 好感度系统
[skill.md 完整内容]

4. 开始对话!

首次对话时,AI 会自动推断初始好感度。

详细教程: 请查看 QUICKSTART.md


📁 文件说明

文件说明Token消耗
skill.mdAI 完整实现文档(主要文档~1500
prompt-template.md标准提示词模板~800
prompt-minimal.md极简提示词模板~200
QUICKSTART.md5分钟快速开始指南-
USAGE_EXAMPLE.md完整使用示例和后端集成-
mcp-server/MCP 服务器实现-

推荐使用: skill.md(完整版,包含所有机制和案例)


🎯 典型场景演示

场景1: 青梅竹马 → 恋人

初始状态: base=60, dynamics=0 → display=60 (朋友)
  ↓ 日常打闹 +3
互动1: base=60, dynamics=3 → display=63
  ↓ 心动瞬间 +14
互动2: base=61, dynamics=17 → display=78 (暧昧)
  ↓ 3天后 +8 (想念) + 关键词触发 +5
互动3: base=61, dynamics=25 → display=94 (亲密)
  ↓ 告白 +16
互动4: base=66, dynamics=41 → display=107 (恋人)

关键: 从朋友→恋人经历5次有效互动,既真实又有攻略乐趣!

场景2: 陌生人一见钟情

初始状态: base=0, dynamics=0 → display=0 (陌生)
  ↓ 英雄救美 (极端事件)
互动1: base=5, dynamics=35 → display=40 (心动)
  ↓ 第二次见面 (验证感情,不能继续飙升)
互动2: base=5, dynamics=38 → display=43
  ↓ 深度交流
互动3: base=8, dynamics=46 → display=54

关键: 一见钟情允许发生,但后续需要"稳固关系",避免持续暴涨。

场景3: 热恋期吵架和好

热恋期: base=65, dynamics=40 → display=105 (甜蜜)
  ↓ 吵架 -12
吵架后: base=65, dynamics=28 → display=93 (冷淡)
  ↓ 和好 +10
复合: base=68, dynamics=38 → display=106 (更深厚)

关键: base 托底保护,吵架时 dynamics 暴跌但不会变陌生人。


🛠️ MCP 工具 API

get_affection_state

获取角色的当前好感度状态,并生成用于注入 System Prompt 的文本。

const result = await mcp.get_affection_state({
  user_id: "user123",
  character_id: "青梅竹马-小樱"
});

// 返回:
{
  state: { affection: {...}, memory: {...} },
  time_effect: 8,  // 时间产生的想念/冷淡效果
  injection_text: "=== 好感度当前状态 ===\n..."  // 直接注入到 System Prompt
}

update_affection_state

根据 AI 输出的 JSON 更新好感度状态。

await mcp.update_affection_state({
  user_id: "user123",
  character_id: "青梅竹马-小樱",
  update_data: {
    base: 61,
    dynamics: 25,
    display: 86,
    reason: "心动瞬间+14",
    memory: {
      new: { event: "樱花花瓣", impact: 14, kw: ["樱花", "温柔"] },
      triggers: { "樱花": 5, "温柔": 4 }
    },
    time: "2025-12-25 15:00"
  }
});

其他工具

  • init_affection_state: 初始化新角色状态
  • delete_affection_state: 删除角色状态(重置关系)
  • list_affection_states: 列出用户的所有角色状态

完整 API 文档: 请查看 mcp-server/README.md


📊 性能数据

Token 消耗对比

方案每轮消耗10轮累积节省
方案C (MCP)~80-90~2900-
方案A (历史)~130~8000+63%

记忆系统开销

状态注入: ~50 tokens
  - key_memories (3-5个): ~25 tokens
  - triggers (5-10个): ~15 tokens
  - 其他元数据: ~10 tokens

JSON 输出: ~30-40 tokens

总计: ~80-90 tokens/轮

结论: 记忆系统仅增加 <5% 开销,但体验提升显著。


🌟 核心优势

1. 真实性

  • ✅ 基础好感 + 情感动态双线设计,符合真实人类情感
  • ✅ 情感记忆系统,像人类一样记住重要瞬间
  • ✅ 时间感知,久别重逢会想念,长期冷淡会疏离
  • ✅ 变化合理性判断,避免好感度突飞猛进

2. 可玩性

  • ✅ 青梅竹马从"损友"到"恋人"完整攻略曲线
  • ✅ 支持一见钟情但后续需验证感情
  • ✅ 支持吵架和好,关系有波动但不会变陌生人
  • ✅ 支持慢慢心寒,小事积累成导火索

3. 通用性

  • ✅ 同一套系统支持所有关系类型(恋爱/师徒/母子/友情/敌对)
  • ✅ 无需复杂的类型标签,AI 根据角色身份自然表达
  • ✅ display=85: 恋人会脸红,师父会关怀,母亲会宠溺

4. 易用性

  • ✅ MCP 服务器开箱即用,5分钟集成
  • ✅ 状态自动管理(衰减、触发器、记忆)
  • ✅ AI 自动推断初始值,无需手动配置
  • ✅ 提供三种提示词模板,适配不同需求

🏗️ 架构设计

状态传递流程(方案C - 混合方案)

┌─────────────────────────────────────────────────┐
│              状态存储(外部)                      │
│  mcp-server/states/{user_id}_{character_id}.json │
└───────────────┬─────────────────────────────────┘
                │
                ↓ 读取状态
┌───────────────────────────────────────────────────┐
│              System Prompt 注入                    │
│  - 角色卡 (~500 tokens)                           │
│  - skill.md (~1500 tokens)                        │
│  - 状态注入 (~50 tokens)                          │
└───────────────┬───────────────────────────────────┘
                │
                ↓ Claude API
┌───────────────────────────────────────────────────┐
│              AI 处理对话                           │
│  - 读取当前 base/dynamics/display                 │
│  - 检测关键词触发                                  │
│  - 计算时间效果                                    │
│  - 判断好感度变化                                  │
│  - 生成回应 + JSON                                 │
└───────────────┬───────────────────────────────────┘
                │
                ↓ 输出简化 JSON (~30-40 tokens)
┌───────────────────────────────────────────────────┐
│            后端提取并更新                          │
│  - 提取 JSON                                      │
│  - 调用 MCP: update_affection_state              │
│  - 自动处理记忆管理                                │
│  - 自动计算衰减                                    │
└───────────────┬───────────────────────────────────┘
                │
                ↓ 保存新状态
┌─────────────────────────────────────────────────┐
│            状态存储(外部)                        │
└─────────────────────────────────────────────────┘

优势:

  • ✅ Token 消耗极低(每轮 ~80-90)
  • ✅ 历史记录干净(只有对话内容)
  • ✅ 长期保存(不受上下文窗口限制)
  • ✅ 易于调试和监控

📚 文档导航

入门

进阶

模板


🤝 贡献

欢迎提交 Issue 和 Pull Request!

开发计划:

  • [ ] 支持数据库存储(MySQL/PostgreSQL/MongoDB)
  • [ ] 添加 Python MCP SDK 实现
  • [ ] Web 管理界面
  • [ ] 好感度可视化图表
  • [ ] 多语言支持(英文/日文)

📄 License

MIT License - 详见 LICENSE 文件


🙏 致谢

感谢所有为这个项目提供反馈和建议的用户!


📧 联系

有问题或建议?欢迎通过 GitHub Issues 联系我们。


让 AI 像人类一样,拥有真实的情感和记忆。 ❤️

目录标签

目录标签

AI聊天JavaScriptClaude本地部署情感模拟好感度系统关系管理情感记忆

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP