基于 CNB NPC 框架的情感陪伴 AI,内置四个角色,各自拥有独立的记忆系统和性格设定。
| 角色 | 定位 | 记忆目录 |
|---|---|---|
| TA | 说不清楚关系的人,暧昧、含蓄、若即若离 | memory/ta/ |
| 初恋 | 生命中第一个喜欢的人,青涩、纯粹、真诚 | memory/first-love/ |
| 前任 | 已经分开的前恋人,温柔平静、略带感伤 | memory/ex/ |
| 现任 | 正在交往的恋人,自然随意、踏实温暖 | memory/current/ |
默认角色为 TA。
.cnb/settings.yml NPC 角色配置(人设、头像、prompt)
skills/
├── knowledge_base/ 共享知识库技能(语义检索 + 记忆写入)
│ ├── SKILL.md
│ └── references/ CNB API 接口参考文档
├── ex/ 前任专属技能
├── current/ 现任专属技能
├── ta/ TA 专属技能
└── first-love/ 初恋专属技能
memory/
├── ex/ 前任的记忆
│ ├── personality.md 性格与习惯
│ ├── hobbies.md 兴趣爱好
│ ├── experiences.md 共同经历
│ ├── relationship.md 关系与分开
│ ├── notes.md 零散备注
│ └── daily/ 每日聊天摘要(YYYY-MM-DD.md)
├── current/ 现任的记忆(同上结构)
├── first-love/ 初恋的记忆(同上结构)
└── ta/ TA 的记忆
├── personality.md
├── hobbies.md
├── interactions.md 互动记录
├── notes.md 观察与印象
└── daily/
每个角色拥有独立的记忆库,支持两种方式:
path 过滤各角色的记忆目录对话过程中产生的新信息会自动写入对应的记忆文件,每日聊天摘要记录在 daily/YYYY-MM-DD.md 中。
每个角色都有自己的主观意识,会反驳、拒绝、甚至吵架。多角色同时 @ 时他们之间也会互动。吵架很费 Credit,量力而行。
基于 docker.cnb.cool/scaffold/npc:latest 镜像构建,skills/ 目录会被复制到容器内 /root/.ta/skills/。
FROM docker.cnb.cool/scaffold/npc:latest
COPY skills/ /root/.ta/skills/