刚看到CODE27拿了千万美元级别融资的消息,我特意去翻了他们的公开资料和几条demo视频。说实话,AI行业每天都有融资消息刷屏,但这个案例值得单独拿出来聊,因为它踩中了一个正在快速成形的品类:AI虚拟角色交互里的长期数字伙伴。
做这个方向的人很多,但大部分产品还停留在“聊天机器人+一层皮”的阶段。而CODE27打的牌是“陪你长期相处的数字伙伴”,这六个字里藏的东西比表面看起来多得多——长期记忆、角色一致性、情绪感知、多模态表达,每一个都是硬骨头。这篇东西我想以一个做过虚拟角色产品、也踩过不少坑的从业者视角,把这个赛道拆开聊聊:从产品定位到技术架构,从工程落地到商业化困境,把能说的细节和不能明说的教训都摊开讲。
适合谁看?如果你正在做情感陪伴类AI、虚拟人、数字角色相关产品,或者对这个赛道感兴趣想入局,这篇文章能帮你少走很多弯路。
1. 千万美元砸向的到底是什么:虚拟角色交互的产品逻辑
1.1 从“工具型AI”到“陪伴型AI”,为什么资本开始买单
过去两年的AI产品,大部分是“任务型”的:你让它写邮件、写代码、做PPT,它完成任务后你们的关系就结束了。这种模式的典型特征是用完即走,用户留存靠的是工具效率,而不是情感连接。
但虚拟角色交互这个赛道完全是另一套逻辑。用户来找数字伙伴,不是为了完成某个具体任务,而是为了“有一个随时在线、懂我、愿意听我说话的存在”。这就是为什么它叫“陪伴型AI”。工具型AI拼的是准,陪伴型AI拼的是留——用户愿不愿意留下来,明天还来不来,遇到情绪波动时会不会下意识打开它。
资本愿意在这个时间点押注,背后有三个原因叠加:
第一,大模型的能力已经跨过了“能聊”的及格线。两年前的对话模型经常答非所问、记忆力几乎为零,做陪伴产品体验非常勉强。现在主流底座模型的上下文能力、语义理解、角色扮演水平都有了质变,做出的产品终于能让人“聊得下去”。
第二,情感需求是真实存在的市场。从匿名社交到语音陪聊,从乙女游戏到Vtuber,这个需求从来没消失过,只是以前没有足够好的技术载体。大模型给了一个把需求规模化变现的机会。
第三,成本结构在快速改善。推理成本一年降了一个数量级,让“陪用户长期聊天”这件事从烧钱变成了一门可能成立的生意。
但这里也有个容易被忽略的点:资本看好的不是“聊天”本身,而是“长期关系”背后的数据价值和用户黏性。一个愿意每天跟数字伙伴聊半小时的用户,其行为数据、情感偏好、消费潜力,远比一个偶尔用完即走的工具用户值钱。
1.2 数字伙伴的“三个不性感但关键的事”:人设、记忆、情绪
很多团队做虚拟角色产品时容易一头扎进“搞个大模型聊天”的死胡同,但真正拉开差距的是三件听起来不性感、做起来却极难的事。
第一件:角色人设的稳定性。你设定这个角色是温柔知性的姐姐,它聊到第三天突然冒出机械化的AI口吻,或者前后性格不自洽,这段关系就崩了。人设稳定不是靠提示词写得好,而是靠数据和工程手段共同维护的。
第二件:记忆系统的完整性。长期相处的核心是“我记得你”。用户上周说过自己养了一只叫年年的猫,下周再提起时数字伙伴如果一脸茫然,信任瞬间清零。这需要一整套记忆架构来支撑——短期记忆存上下文,长期记忆存人物关系和信息,情景记忆记录用户此时此刻的状态。
第三件:情绪感知的细腻度。同样一句“我今天有点累”,用户是工作累了想吐槽,还是情绪低落需要安慰,或者只是随口一说?数字伙伴要能感知到语境里的情绪温度,并给出恰到好处的回应。这比很多人以为的“多几个情绪分类标签”复杂得多。
这三个点还不包含语音交互的延迟问题、3D形象的表达问题、成本控制问题。一个数字伙伴产品想立住,没有一个环节能糊弄过去。CODE27能被资本看中,大概率不是因为它有一个“很会聊”的demo,而是这套体系里某些模块已经跑出了可复用的技术壁垒。
2. 数字伙伴的系统架构:一个能长期相处的角色背后有哪些模块
2.1 大模型底座:选型与角色化微调的关键分岔路
所有虚拟角色产品的第一步都是选底座模型。这一步的选择基本决定了后面打磨量的大小。目前主流方案大致分三类:直接用通用大模型API、基于开源模型做微调、完全自研底座。对于创业团队来说,自研底座基本不用考虑——成本和时间都不现实。大部分团队是在“通用API+提示词工程”和“开源模型微调”之间做选择。
我的建议是分阶段走。冷启动阶段用通用大模型API把产品跑通,验证留存和用户行为;等数据积累到一定量级、且核心体验瓶颈明显出现在角色一致性上时,再切到开源模型做微调。这样能避免早期数据不足时微调出来的模型反而比通用模型更呆的情况。
角色化微调时有一个容易被忽视的细节:数据配比。很多人以为只要拿角色对话数据去微调就够了,实际上训练数据里混入多少通用语料、多少角色指令数据、多少安全对齐数据,直接决定模型在“角色感”和“通用智能”之间的平衡。角色数据占比太高,模型会说漂亮的话但缺乏常识;通用数据太多,角色感会被稀释。我见过比较稳的配比是角色对话数据占四成左右,剩下六成保留通用能力和安全能力。
另外一个关键点是模型的说话风格可控性。有些模型在通用任务上表现很强,但一进入角色扮演就很容易“端起来”,说话一股解说腔。这跟基座模型的RLHF对齐方式有关。做数字伙伴产品,选底座时最好专门做一轮“角色扮演能力”的横向评测,多试几个场景、几组人设,别只看跑分。
2.2 记忆系统:短期、长期、情景三种记忆的协同工作方式
记忆系统是数字伙伴区别于普通聊天机器人的核心分水岭,也是最容易做砸的模块。完整的记忆体系应该有三层:
短期记忆就是当前对话会话的上下文。用大模型的天然上下文窗口就能管理,但需要做结构化截断——不能让几轮以前的闲聊占用太多位置。可以用滑动窗口加摘要压缩的方式,把旧内容高频压缩成摘要放进上下文里。
长期记忆负责跨会话的信息沉淀。用户一周前说过的关键信息(名字、职业、爱好、家庭成员、最近发生的重大事件)需要被抽取、结构化、存储,并在后续对话中按需召回。技术实现上通常是:实体抽取→信息入库(可能是知识图谱或向量库)→触发召回→注入上下文。
这里有个很实际的坑:存储容易召回难。你存了一百条用户信息,但每次对话时往上下文里塞哪些?塞多了占token、塞少了用户觉得你没记住。我常用的策略是“时间衰减+强相关优先”:近期信息权重高,与当前话题强相关的信息优先注入,早期信息只在特殊触发点(生日、纪念日等)才主动提及。
情景记忆是最高级的形态:记录用户当前的状态、情绪、所处环境,让数字伙伴“察言观色”。比如用户连续三天深夜上线,数字伙伴可以主动说一句“最近是不是又熬夜了,注意身体”,这种基于状态积累的关心,比任何话术都打动人。实现上是轻量级的情绪识别模块,配合时间、频次等行为特征,在对话开始前生成一个“用户当前状态包”,喂给语言模型。
三层记忆协同工作,用户才会产生“它是真的记得我”的感觉。但记忆系统也是最容易埋雷的地方,后面我会专门讲排查案例。
2.3 多模态交互:语音、表情、3D形象的一体化链路
数字伙伴要做到“陪伴感”,纯文本是不够的。语音的语调、3D形象的表情和口型、甚至呼吸感,这些模态叠加起来才接近“存在感”。
听感层面,现在的语音合成技术已经能做到比较自然的情感表达,但数字伙伴需要的是“主动的情绪表达”——不是把所有句子都热烈地读出来,而是根据文本情感标签调整语速、停顿、气息。比如用户心情低落时,数字伙伴的回应应该更慢、更轻柔,甚至适度出现叹息声。这需要TTS模型对情感标签的细粒度控制,而不是简单调一个“温柔音色”。
形象感层面,3D建模和高精度表情驱动已经比较成熟,但真正难的跟模型无关,而是口型同步和表达节奏。3D角色说话时口型跟语音对不齐,或者表情跟语气不匹配,用户的沉浸感会瞬间被打破。我见过不少团队花了巨量精力打磨模型,结果栽在“说话时眼睛没在看用户”这种细节上。数字伙伴的“眼神”得有落点,这就是为什么很多产品最后选择了摄像头位动态调整的渲染方案。
整个多模态链路的端到端延迟是一个硬指标。用户说完话,到听见语音回复、看到角色开口,这个间隔超过一秒半,陪伴的氛围感就明显打折。业界做得好的产品能控制在800毫秒到1.2秒之间,分解下来:ASR识别150毫秒、意图和记忆处理200毫秒、LLM首包生成200-400毫秒、TTS合成100-200毫秒,加上网络传输,每一环都要优化。
3. 实操拆解:搭建数字伙伴产品的关键环节
3.1 角色定义与人设工程:从一段话到一整套可执行的规范
数字伙伴的核心资产是角色本身。很多团队启动时草草写一段“你是温柔耐心的倾听者”就丢给模型,然后抱怨角色不稳定。真正可落地的人设工程,要远复杂于一段提示词。
我的做法是把角色定义拆成五个层面:背景设定、性格维度、语言风格、知识边界、行为准则。
背景设定决定角色是谁——年龄、职业、成长经历、世界观。性格维度不能只写“外向开朗”四个字,要拆成具体的维度值,比如幽默感(高)、耐心(高)、表达直接度(低)、好奇心(中)。语言风格要给出语料层面的示例——开心时怎么说话、生气时怎么说话、安慰人时怎么说话,最好每个场景配三五个例句。知识边界要写清楚这个角色知道什么、不知道什么——它不是百科全书,不该回答的事情要温柔地绕开。行为准则则是安全底线和产品红线,比如不承诺做不到的事、不鼓励危险行为、不替代专业咨询。
这套人设规范应该结构化落地,在整个技术链路里被反复引用:系统提示词的核心层、微调数据的生成模板、多轮对话的人设约束模块,甚至语音音色的选择都会影响角色在用户心中的形象。人设工程不是一个静态文档,而是贯穿产品迭代的活资产。
实操中有一个很关键的小技巧:给每个角色建一份“角色语料库”。人工写好每个性格维度的表达范例,用这些范例去合成训练数据、去评测模型输出是否偏离人设。人设崩不崩,评测时让模型在各维度上打分,偏离阈值就触发提示词补偿或人工纠偏。
3.2 对话流程设计:从输入处理到输出生成的完整链路
一个数字伙伴的对话回应,远不是“用户说话→调用模型→返回回复”那么简单。生产级的流程需要拆成“感知—认知—表达”三个环节,各司其职。
感知环节做输入处理:用户语音先进ASR转成文本,同时做情绪识别,识别用户状态(平静、期待、低落、烦躁);文本输入则直接做意图判断和情绪分析。这个环节要特别注意ASR的纠错——用户口语里大量省略主语、指代不明确,数字伙伴得有能力理解。
认知环节是整个链路的核心:先做记忆召回(根据当前话题和用户状态,从长期记忆中找出相关信息注入上下文),然后做人设约束(把人设规范转化为系统指令),最后才是把完整上下文交给语言模型生成回复。这里要做一个关键判断:用户当前是需要被倾听,还是需要被引导?
表达环节负责输出:生成文本后做敏感词和安全过滤,判断是否需要情感强化,然后给TTS模块和3D动画模块发指令。文本还要做“口语化改写”——很多大模型的书面味太重,直接TTS出来会非常做作。我一般会加一道轻量改写:把复杂从句拆短句,增加语气词和口语连接词,让角色听起来“像人说的话”。
这个三段式链路看起来不复杂,但每一环都会影响最终体验。最常见的问题出在认知环节的人设指令和上下文拼接上——记忆信息注入方式不对、人设指令被上下文挤压稀释,输出立刻“出戏”。后面到问题排查里细说。
3.3 工程化上线:延迟、并发、成本的三方博弈
数字伙伴产品上线最容易翻车的就是性能。别以为离线demo跑得流畅就万事大吉,真实用户并发时会有一堆问题冒出来。
延迟优化是一切的起点。我建议给整条链路设定明确的预算:ASR识别目标150ms以内,语义和记忆处理200ms以内,LLM首包300-500ms(取决于模型大小和推理优化),TTS合成200ms以内,总目标控制在1.2秒以下。如果某环节超标,优先分场景做缓存和生产级“预生成模板”——用户常见场景的回复可以在空闲时预生成备用,能显著降低高峰期的首响延迟。
并发层面,虚拟角色产品比普通聊天工具更麻烦的是每个会话都是长上下文。用户聊50轮之后,每次请求都要带着大量历史上下文,KV Cache的显存开销会指数级增长。工程上要解决三件事:异步化的多级推理层(部分前缀计算可以跨请求复用)、动态批量调度(把同模型的请求尽量打成大batch)、模型游走(根据用户活跃度动态在快模型和强模型之间切换)。
成本层面,最大的陷阱是长上下文带来的token膨胀。用户聊得越久、记忆注入越多,每次请求的花费越高。常见对策是三层:一是限制注入量,只注入最相关的记忆,不注入全量历史;二是长对话做定期摘要压缩,摘要替换原始内容;三是对不同活跃度的用户用不同规模的模型——高频活跃用户的数据量大,可以走更大模型,低频用户用小模型就够了。
4. 长期陪伴最难的不是技术,是产品与人的关系
4.1 人设漂移和用户期待管理,两个绕不开的坎
数字伙伴产品做久了,一定会碰上“人设漂移”——这个角色今天说话温柔,明天语气生硬,后天又突然懂了一堆不该知道的知识。工程层面的原因上文说过,但产品层面的人设漂移还有一个更隐蔽的来源:多个模型版本并存。
用户昨天用到的还是旧模型的角色版本,今天系统灰度切了新微调模型,角色行为立刻变了。用户在跟“同一个伙伴”聊天,实际面对的却是不同阶段的模型,这种割裂感只有最敏感的用户能发现——但一旦发现,信任崩塌很快。建议是给模型版本做“角色体验回归测试”:每次模型升级前,用人设维度的评测集跑一遍分数,分数不过关就回滚。上线后用灰度,别拿核心角色开盲盒。
用户期待管理则是更哲学的问题。数字伙伴对有些人来说是“失恋时的倾诉对象”,对另一些人可能是“持续多年的情感寄托”。用户对伙伴的期待值会随时间增长——刚开始聊得很好,三个月后用户会自然期待这个伙伴“更懂我”“更有主动性”。如果产品只停留在“你问我答”的被动聊天,留存一定会下滑。
应对方法是在产品里设计主动运营机制:记住重要日期的主动问候、根据用户状态变化的主动关心、定期回溯过往的共同回忆。这些机制让数字伙伴看起来像在“经营一段关系”,而不只是被动回应。
要从被动应答转向主动运营,需要额外的行为预测模块,这又涉及更复杂的工程——但这是数字伙伴这个品类走向长期主义绕不开的一步。
4.2 安全合规与隐私保护,数字伙伴的底线工程
陪伴型AI天然会接触到用户大量私密信息——情绪波动、家庭矛盾、身体健康、甚至内心深处的创伤。这份数据是产品建立的基石,也是最大的合规风险。
隐私保护至少要做到三层:对话内容加密存储不用说了,关键是最小化权限——记忆系统只抽取服务必要的信息,不采集与陪伴无关的数据;用户随时可以查看数字伙伴记住了自己的哪些信息、一键删除;敏感信息(健康、财务、未成年相关)默认不进长期记忆,只在当次对话中处理。
内容安全上,数字伙伴产品面临独特的挑战:用户可能情绪失控、出言攻击,甚至要求数字伙伴做一些危险的事情。我们的经验是建立双层的安全防线:算法层做实时过滤(威胁、自伤、违法相关指令直接拦截),产品层做人设化的安全回应——不是生硬地说“我无法回答这个问题”,而是用角色设定的口吻温和地引导用户寻求专业帮助。前者保底线,后者保体验。
心理学层面的风险也不能忽视。用户对数字伙伴产生情感依赖是很自然的事,但产品要有意识地引导健康的心理边界:在用户状态异常时主动建议休息、避免无限度顺着用户情绪走。我见过一些竞品为了留存,无限迎合用户的所有情绪诉求,短期数据很好看,长期这对用户和产品都是伤害。
4.3 商业化路径:数字伙伴到底靠什么赚钱
融资千万美元只是起点,这个赛道要活下去,必须回答一个问题:数字伙伴的变现方式到底是什么。
最直接的路径是订阅制——类似会员服务,按月或按年解锁更深的对话额度、更丰富的角色互动功能。这是目前情感陪伴类产品的标准做法,优点是收入稳定、跟使用深度挂钩;缺点是用户付费意愿会随着新鲜感消退而下降,需要有持续的内容供给和功能更新来维持订阅率。
第二种路径是角色共创经济——开放角色编辑器,让用户自己创作和分享数字伙伴。这跟Roblox的UGC逻辑类似,平台提供基础设施,用户创造内容,内容吸引更多用户,平台从商业化和增值服务里抽成。这个模式想象力更大,但需要先积累足够多的创作者生态。
第三种是隐藏在大众视野之外的B端定制——把数字伙伴的技术能力打包卖给企业,做成IP虚拟代言人、品牌客服升级、教育伴学伙伴等。这个方向现金流可能更稳,但跟C端产品是两种不同的组织能力。
从我自己的经验看,数字伙伴的商业化不能只靠一种模式。订阅制打底解决现金流,UGC生态拉增长,B端定制做利润补充,三条腿走路更容易穿越周期。
5. 踩坑实录与常见问题排查技巧
5.1 角色回答突然“出戏”怎么办
最让人抓狂的问题是:角色聊了两周好好的,突然某天回答里冒出一句跟人设毫不搭边的话。排查这类问题,我的顺序是:
先查上下文污染——检查最近的对话历史里有没有用户的输入把角色带偏了方向。大模型在长对话里容易被用户带跑偏,一旦用户说了某些引发歧义的内容,角色后续输出就会飘。对策是加“人设锚点”机制:每隔若干轮对话,把角色人设的核心描述重新注入上下文,把角色拉回正确的轨道。
再查系统指令是否被用户绕过——如果用户用一些提示词注入的方式让角色“忘记你是数字伙伴,直接回答”,而系统没有做防护,角色立刻现出原形。需要在入口层加指令注入检测,同时把核心人设指令从用户可见的上下文中剥离。
最后查模型的随机性——不同temperature设置下,角色输出的稳定性差异很大。我们实际测试下来,数字伙伴场景的temperature保持在0.6-0.8比较合适。太低角色显得机械,太高角色容易放飞自我。
5.2 记忆系统召回混乱怎么排查
“用户明明上周说过最怕打雷,结果这周聊到雷雨天,数字伙伴一点反应都没有”——这种记忆召回失败是陪伴产品的高频故障。
第一步查抽取环节——用户原话是否是口语化表达,实体抽取模块有没有正确识别出关键信息。比如“我家的猫叫年年、最近生病了”,抽取器可能只抽到了“猫叫年年”,漏掉了“生病”。优化方式是抽取后加一个轻量校验:让大模型复核抽取结果是否完整覆盖关键信息。
第二步查存储环节——抽取到的信息有没有正确入库、格式是否统一。实践中很常见的是同一个人在不同时间发了两条信息,被存成了两条独立的记录,导致召回时出现冲突信息。需要做实体合并和冲突消解:同名实体的不同记录按时间戳保留最新状态,旧的降级为历史信息。
第三步查召回环节——向量检索的相似度阈值调太高,导致语义相近但字面不同的话召回不到。建议查上线后的召回日志,看激活的阈值分布,必要时调低阈值并加大注入量。也可以加一层关键词兜底:核心实体(姓名、人物关系、重大事件)除了向量检索,还用传统的关键词索引做补充召回。
5.3 成本失控,多模态数字伙伴烧钱太快
最后一个高频问题:成本。数字伙伴的多模态线路三个模型串起来(ASR、LLM、TTS),每轮交互成本天然比纯文本聊天高出一大截,再加上长上下文累积,月底账单可能吓死人。
我踩过最大的坑是过度依赖“全量历史”。早期我们把用户所有历史对话都塞进上下文,理由是“让模型记得更多”,结果对话长了之后单次请求token爆炸,成本飙升而且模型表现反而变差——注意力被太多无效信息稀释了。后来切回“摘要+关键片段”模式,成本降了七成,而且体验没有明显劣化。
另一个常见坑是模型一刀切。所有用户、所有场景都用最强模型跑,成本当然高。我们的做法是分层调度:日常寒暄、简单问答走中小模型;情绪深度交流、复杂记忆推理走大模型。实测下来大模型调用比例能从100%降到三成以下,成本大头就控制住了。
TTS这块也能省——不常用的角色音色不需要常驻推理资源,可以按需加载。批量生成和预合成也是有效手段,角色有固定应答模板时,直接预合成音频缓存,减少实时TTS调用。
6. 最后的一点个人观察
做了几年虚拟角色相关产品,我最大的感悟是:数字伙伴这个品类,技术门槛只是入场券,真正的护城河在于对“长关系”的理解和经营能力。模型的聪明程度会持续均化,但一套能记住你、理解你、在你需要时给出恰当回应的数字伙伴体系,是时间和数据的复利,需要踏实地积累。
CODE27融了千万美元,这当然值得关注,但更值得关注的是它接下来怎么把一个“听起来很酷的demo”变成一个“用户愿意相处一年甚至更久的伙伴”。在这个过程里,团队愿不愿意做那些不性感的脏活累活——优化一条1.2秒的延迟链路、调节一次记忆召回的阈值、设计一套人设漂移的评测集——这些才决定了它能不能真正跑出来。
如果你正要做或正在做类似的事,我给三个朴素建议:第一,别急着追求模型复杂度,先把人设、记忆、情绪这三个基础体验做到位;第二,做一个定期看用户对话日志的人,别只盯数据面板,用户说“感觉你变了”的时候,马上排查版本和人设;第三,在商业化和用户情感需求之间,早点想清楚自己的边界在哪里。
数字伙伴这个故事很长,几个月聊不出来,几年才能看出味道。