罗德岛通讯与技术部

竞品分析与可借鉴技术

COMPETITIVE ANALYSIS

wound: "父亲说'别走我的老路'——她走了更暗的一条但还是走错了"

状态:🟡 规划 · 最后核对 2026-08-06

2026-06-25 · 覆盖 Character.AI、SillyTavern、Venus Chub AI、RisuAI、Janitor AI、Eros Engine、Roundtable、Marinara 等

相关文档:architecture · memory-and-context · CHANGELOG


一、各项目概况

项目 类型 核心定位 是否开源
Character.AI 闭源平台 角色扮演,Swipe 重生成,最大用户群
SillyTavern (酒馆) 开源前端 连接任意 LLM 的角色扮演 UI,Lorebook + 向量检索 + 聊天向量化
Venus Chub AI 闭源平台 60K+ 角色卡库,Lorebook 关键词触发,分支配对话树
RisuAI 开源前端 Tauri 跨平台,HypaMemory V3 记忆系统,MCP 协议支持
Janitor AI 闭源平台 角色扮演,JanitorLLM 免费模型,Chat Memory 摘要
Eros Engine 开源引擎 Rust 后端,六维亲和力模型,Ghost 机制(角色可以不理你)
Roundtable 开源引擎 Python/Flask,TRPG 主持人风格,隐藏角色特质,记忆沉积
Marinara 开源前端 三模式(对话/角色扮演/RPG),AI Game Master,Swipe

二、可借鉴技术清单

1. Lorebook 关键词触发(Venus / SillyTavern)

原理:确定性关键词→内容映射。用户消息中命中关键词→立即注入对应背景。

关键词: "谢拉格" → 注入"谢拉格是泰拉大陆的雪山之国..."
关键词: "绒羽" → 注入"黎博利耳后的绒羽是情绪器官..."

优势:零延迟(不需要 embedding 调用),100% 命中率(不会漏),零 token 浪费(不相关的不注入)。

罗德岛现状:L4 世界知识用向量检索——每轮跑一次 embedding。可以用关键词触发做第一层筛选,冷门查询用向量兜底。

实现难度:低。从 relation_graph.json(303 节点)和 world_lore.json 自动生成关键词→内容映射,启动时加载到内存。每次请求检查用户消息关键词。


2. SupaMemory 实时裁剪(RisuAI)

原理:token 预算快满时,在 LLM 调用之前同步触发一次极简压缩——最旧的 N 条消息→30 token 摘要→替换原始消息。

关键区别:不是后台异步任务(你们 L1→L2 压缩是异步的),而是在生成回复同一轮同步执行。确保 LLM 永远不会看到被截断的 context。

罗德岛现状:L1→L2 压缩是后台任务(summarize_and_extract_task),可能赶不上当前请求。加一条同步保护:当 len(prompt) > 80% * max_context 时,即时裁剪最旧消息。

实现难度:低。20 行,在 chat.py prompt 组装处加一条检查。


3. Swipe 重新生成(Character.AI / Marinara)

原理:用户对回复不满意→左滑→LLM 用同样 context 但更高 temperature 重新生成。可连续滑,选最喜欢的钉住。

罗德岛现状:无。句式重复时用户只能接受或重新发消息。

实现难度:低。约 30 行 JS + 10 行 Python。并行调 LLM 两次(temperature=0.85 和 1.2),返回两条候选。


4. 六维亲和力(Eros Engine)

原理:Eros 用六维取代传统的好感度:warmth、trust、intimacy、intrigue、patience、tension。

维度 你们现有的对应
warmth S 向量 warmth
trust 三维信赖 ✅
intimacy 信赖 emotional 维度 ✅
intrigue ❌ 缺失
patience ❌ 缺失
tension S 向量 tension

新增 intrigue(好奇心/新鲜感):博士说话方式和平时不一样→上升。连续 5 轮平淡→下降。 新增 patience(耐心值):博士沉默多久她等多久。深夜对话中非常重要。

实现难度:中。intriguepatience 可以通过 .char 性格特质推导初始值,对话中动态调整。扩展 somatic_state.py 两个维度。


5. 隐藏角色特质(Roundtable)

原理:每个角色有六个不写进 prompt 但影响后台行为的隐藏字段:

secret: "她曾经在哨位上开过一枪——不是警告,是瞄准"
wound: "父亲说'别走我的老路'——她走了更暗的一条但还是走错了"
want: "被一个人不带军衔地看着"
fear: "有一天耳羽不会再变色"
skill: 精准射击
honesty: 0.7(不撒谎,但也不全说)

这些不是 prompt 内容——是决策引擎的输入。比如:honesty < 0.5→她会在不想回答时绕开话题而不是直接说"我不想谈"。

罗德岛现状:这些信息已经隐含在 .char 的文件里,但没有结构化编码。可以作为一个 JSON 元数据文件从 .char 自动提取。

实现难度:中。需要一个 JSON schema + 提取脚本 + 在 _post_process 中消费。


6. 分支对话树(Venus Chub AI)

原理:对话从任意轮次可以分叉——"如果我当时说了 A 而不是 B 会怎样"。两个分支独立发展,都能回到分叉点。

罗德岛现状:深聊已有回退功能(回退到上一轮)。分支是回退的泛化版本——允许多个分支并存而不是覆盖。

实现难度:高。需要树结构存储 + 前端交互 + 深聊 session 模型扩展。


7. Ghost 机制(Eros Engine)

原理:角色可以选择不回复。不是 bug——是设计:角色有心情、有事在做、不想说话时会沉默一轮。内置公平性规则:不能在消息 10 轮内 ghost,不能连续两轮 ghost,有冷却时间。

罗德岛现状:部分实现——somatic_state.is_absent() 和 silence-space 已存在。但缺少"主动选择不回复"的动机系统。

实现难度:中。在 _post_process 中加一个规则引擎判断是否 ghost。


8. HypaMemory V3 预设系统(RisuAI)

原理:每种记忆配置可以命名、保存、切换。不同角色用不同的检索参数(top_k、阈值、类别权重)。和你们的 per-operator 窗口大小的思路相同——扩展为 per-operator 记忆配置。

罗德岛现状:所有干员共享相同的 L2/L3 检索参数。可以 per-operator 差异化。

实现难度:中。扩展 config.py 为 per-operator 的检索参数字典。


三、对比总览

能力 罗德岛 业界最佳 差距
记忆管道 L1-L4 + 窗口快照 RisuAI HypaMemory V3 ✅ 我们更紧凑,他们更可配置
检索方式 embedding 向量 Lorebook 关键词触发 ❌ 缺即时触发,每轮都跑 embedding
关键词触发 L4 向量检索 Venus Lorebook 确定性触发 ❌ 没有关键词通路
关系模型 3D 信赖 + 7D S 向量 Eros 6D 亲和力 ✅ 各有优缺,互补
角色定义 .char artisan 格式 Character Card V2 宏系统 ✅ 我们的结构化程度更高
上下文管理 50轮窗口 + 快照 SupaMemory 实时裁剪 ⚠️ 被动窗口 vs 主动裁剪
Swipe 重生成 Character.AI / Marinara ❌ 缺失
分支对话树 回退(简化版) Venus 分支树 ❌ 缺失
Ghost 机制 部分(is_absent) Eros 完整 Ghost ⚠️ 部分实现
隐藏角色特质 隐含在 .char Roundtable 结构化 JSON ❌ 未结构化编码
Per-operator 配置 窗口大小自适应 HypaMemory 预设系统 ⚠️ 仅窗口,未覆盖记忆检索
实时裁剪 异步后台压缩 RisuAI SupaMemory 同步裁剪 ❌ 异步可能赶不上当前请求

四、实施优先级

优先级 改动量 说明
P0 Lorebook 关键词触发 1h 从 relation_graph.json 生成,零 LLM 调用
P0 Swipe 重新生成 30min 30 行 JS + 10 行 Python
P1 SupaMemory 实时裁剪 20min 20 行,LLM 调用前保护
P1 隐藏角色特质 JSON 1h schema + 提取脚本
P2 六维亲和力扩展 2h intrigue + patience 两个维度
P2 Ghost 动机系统 1h 规则引擎
P3 Per-operator 记忆配置 1h 检索参数差异化
P3 分支对话树 4h+ 深聊 session 模型扩展