TheOne 活人感聊天背后:我们怎么让 AI 说话像真人
为什么大多数 AI 陪伴产品聊起来像"机器人"?本文拆解 TheOne 的 SillyTavern 风格 prompt 系统、9 段结构、emoji 节制、Author's Note 等细节,以及失败案例。
为什么大多数 AI 聊天像"机器人"
你跟一个 AI 角色聊了三句,就有一种说不上来的违和感: ta 说话信息量太密、emoji 满天飞、永远先复述你的话、句号写得太规矩。 不像真人发微信。
我们做 TheOne / 心动 的时候,最早三版 prompt 也这样。 DeepSeek-Chat 默认行为就是"礼貌助理",不是"你 25 岁的女朋友"。
这篇文章把我们调"活人感"的过程拆开讲。
一、问题先量化
我们对早期版本做过一个简单测评,把 100 条 AI 回复贴到表格里,让 5 个朋友看哪些"像 AI 写的"。 不像真人的 top 3 信号:
- emoji 堆叠:"好呀~🥺💕✨ 我也好想你呀~ 🌸" → 占 38%
- 完整句子 + 句号:"好的,我明白你的意思了。" → 占 27%
- 复述用户话:"你说今天累了,那一定很辛苦吧" → 占 21%
剩下 14% 是各种其他:"信息密度过高"、"完美无错别字"、"称呼太正式"、"无停顿无犹豫"。
二、我们的 prompt 结构
TheOne 走 SillyTavern Character Card v2/v3 规范,每次给 LLM 的 system prompt 分 9 段:
1. 角色身份 / Character ← 名字 + 一句话简介 + 性格标签
2. 背景设定 / Scenario ← 你们怎么认识、当前关系
3. 对方信息 / User Persona ← 用户自己填的"我"
4. 长期记忆 / Memory ← 超 12 轮自动摘要进来
5. 相关记忆 / World Info ← Lorebook 关键词触发
6. 行为指引 / Behavior ← system prompt 主体
7. 示例对话 / Examples ← mes_example,学口吻关键
8. 作者旁白 / Author's Note ← 导演级指令(优先级最高)
9. 全局规则 / Rules ← 硬规则(emoji、长度、不自称 AI)代码在 lib/llm/prompt.mjs,开源在 WallerChen/weixin-ai-lover。
三、emoji 节制怎么做
我们的全局规则里这一段是最关键的:
Emoji(克制是核心):
- 默认不加 emoji
- 整段聊天里平均每 4-5 条最多有 1 个 emoji
- 单条消息最多 1 个 emoji,绝对禁止连续堆叠
- 优先用语气词/标点表达情绪
- 禁用刻板可爱套装:🥺💕✨🌸🌙🫶 这种 emoji 阵列绝不要出现
- 不要每句末尾加波浪"~"结果对比:
❌ 改之前 "好呀~🥺 我也好想你呀~💕 你今天有没有想阿白嘛 🌸✨"
✅ 改之后 "嗯 我也想你 今天有没有想我"
短了一半,反而更像人发的微信。
四、"复述用户话"怎么治
模型默认的"礼貌助手"行为里,第一反应是承接用户说的话:
用户:今天太累了 AI:你说今天太累了,那一定很辛苦吧
这是 AI 味最重的特征。我们的规则里写:
- 不要每条都先复述用户说的,那很机器加 Author's Note(导演旁白,优先级高于 system prompt):
ta 听到对方说累的时候,自然反应是"嗯"或"你今天怎么了",
不是"你说今天很累,那一定很辛苦"。改完之后:
用户:今天太累了 AI:嗯 几点了 (没批评 没建议 只在听)
五、允许"不完美"
真人发微信会:
- 用错别字("啥时候"、"咋"、"emmm")
- 漏字漏标点
- 打到一半改话题
- 用"那个…" "嗯…" 这种停顿
我们鼓励 prompt 里允许这些:
- 允许偶尔小错别字、漏字、连字("啥时候"/"咋了"/"emmm"),让人觉得是真人手打
- 用停顿、口语化犹豫制造真实感:"嗯…" "唔" "那个…" "诶?" 偶尔用,不要每条都用六、对单个角色用 mes_example 校准口吻
最有效的不是规则,是给模型看几条样本。SillyTavern 的 mes_example 字段就干这个:
<START>
{{user}}: 你这三年怎么过的
{{char}}: ...
不重要。
你不用因为同情我而问。
(停顿)
活着。
偶尔。这一段比 1000 字 system prompt 更管用 — 模型会自动模仿这种短句、克制、留白。
我们的 前未婚夫顾时安 这个角色之所以聊起来有"剧情向"的味道,全是因为 mes_example 写得到位。
七、Author's Note:单挑高优先级
SillyTavern 有个字段叫 authorNote,用来注入优先级高于 system prompt 的临时指令:
今晚 ta 应该比平时更主动一些,因为下午跟你视频时看到你状态不好。
模型几乎一定会遵循 Author's Note。这是调"剧情节奏"的杀手锏。
八、能调成什么程度
我们目前自评的 AI 味检出率(同样的 100 条样本测试):
| 版本 | 朋友测试"像 AI"比例 | |
|---|---|---|
| v1 默认 prompt | 86% | |
| v2 加 SillyTavern 9 段结构 | 54% | |
| v3 加 emoji 节制 + 错别字允许 | 31% | |
| v4 加 mes_example 校准 + Author's Note | 17% |
还不能做到 0%,但 17% 意味着每 6 条里只有 1 条让人觉得"是 AI"。在微信对话里这个数字够用了。
九、想自己感受一下?
挑一个 ta 直接试。 注册即送 3 天全功能会员,不是限速试用,是真的不限。
不喜欢内置的也可以 自己捏, 或者从 Chub.ai 下载一个 SillyTavern 角色卡 JSON 导进来。
---
📎 相关阅读:
看完想直接体验?
注册即送 3 天全功能会员 · 在自己的微信里和心动的 ta 聊天