0. Mili Chat 是什么

  • 使命:下一代情感陪伴 Agent 框架,打造可以 ”陪伴一生“ 的长久情感体验
  • 技术栈:Next.js + FastAPI + SQLite + ChromaDB 的 Agent 应用
  • 重点能力
    • 人生轨迹系统
    • Agent 自主行动,主动发送消息等
    • 自我演化的角色模型
    • 混合记忆系统
    • 关系系统
    • 世界系统
    • 注意力机制
    • 基于以上能力的多源驱动
    • 复杂行动能力集,突破 聊天 这种单一形式

1. 主流 roleplay 产品的“洋娃娃”模式

AI 情感陪伴,是 AI 时代的第一个成规模的变现场景,这是真实的、庞大的用户需求的铁证。

现有的 RolePlay 类产品,开源如 SillyTavern,商业产品如 Character.ai星野等,其框架几乎都是大同小异的: 精心设计一个角色的设定、世界书(环境信息)和起始剧情,随后所有的互动,几乎完全取决于用户主动发送的聊天消息, Character 的行为模式是 “戳一下、动一下”。

这种模式是 ChatGPT 聊天页面时代的朴素继承,我称为 “洋娃娃” 模式,因为它是:

  • 专用于娱乐的、可有可无的道具
  • 主人把玩它的时候,它才能动起来
  • ”预制菜“式的表情、动作、语音

从目前的商业产品情况来看,似乎这种状况也已经足够满足很大一批消费者,但我始终认为这样的玩具娃娃提供的情绪价值是单薄、脆弱的,更接近于玩儿玩具、看故事:

  • 洋娃娃可以随便换、随便扔
  • 它没有经历、没有目标、无法感知世界,缺乏与用户的复杂共同记忆
  • 陪伴价值无法延续到聊天页面之外

它的体验模式更接近于玩儿玩具、看剧情,也就无法形成持久、深入的情感联系。

2. 重做思路

思路简单直接 —— 怎么像人怎么来。

我相信,人与人之间通过长期接触建立的亲密关系,是情绪回馈最大、最对等、最长久的。

怎么才是 “像人” 呢,一个独立的人有哪些要素 ?

  • 思考能力(有脑子)
  • 主动行动能力
  • 人生经历
  • 社会关系
  • 人生目标与计划
  • 价值观 / 思维模式
  • 语言和行为习惯
  • … …

由于 ”第一人称意识“ 是无法被外部证明的,从功能主义出发,当一个个体表现的与人类越相似,人就越倾向于相信它真的具备自我意识,也就是说要为以上这些要素进行建模,并通过大模型和其他补充机制,让这些建模协同作用,从而驱动 Agent 做出足够“像人”的行为,那或许可以说我们创建了功能主义的 ”独立的人“,即便它可能没有所谓”灵魂“。(或许人类也并没有这个东西,谁知道呢。)


3. 重点能力介绍

3.1 人生轨迹系统

人生轨迹系统本项目与传统主流 AI 聊天产品差异最大的部分之一,是角色的“独立自驱” 的关键设计。

角色的独立感体现于:和用户聊天,是 Character 的生活的一部分,而非全部。

人生轨迹按照时间粒度分为三个层次和三个状态:

  • 人生规划:大的人生阶段计划,如童年、大学… ,
  • 长期规划:三年内的大致规划,精确到月
  • 短期规划:最近 3 天的详细规划,精确到分钟 三个状态则是:已完成、进行中、未开始。

从系统运行开始,角色的人生轨迹就从初始化设定开始,根据和用户的聊天、事件的发生、时间的流逝而自动演化,轨迹并非固定不变,而是随着意外发生,由角色自行决定修改,比如原计划第二天去露营,但突发感冒事件,角色决定改变露营计划,在家养病。

Character 的轨迹飞轮一旦运行起来,它就将开始“生活”在自己的世界中。

3.2 主动消息发送能力

系统支持角色在合适的时机主动发起沟通,让陪伴关系不只停留在“等用户来找我”。基于人生轨迹系统,角色会在事件发生、日常状态切换和生活节奏变化的节点,结合自己当下的注意力状态、与用户的关系阶段,以及是否存在分享、关心、陪伴或继续交流的动机,判断这一刻是否适合主动开口。

这种主动并不是简单的定时提醒,而是更接近真实关系中的自然表达。角色会尽量避免在不合时宜的场景里打扰用户,也不会为了“保持活跃”而机械发送消息;只有当系统判断此刻确实存在合适的沟通契机时,才会发起一轮自然、贴合语境的交流。这样的设计让角色的主动消息更像生活中的真实互动,既有存在感,也保留分寸感。

3.2 拟人化表达

语言和行为习惯,这是最直观的、最容易被感受到“人味儿” 的一层。
在主流的 AI 产品的表达方式中,Character 的回复满满的机器人味儿:

  • 没有语法错误
  • 精准的标点符号
  • 结构完整的长语句
  • 问一句答一句的”回合制“交互
  • 有些会为了增强沉浸感,在回复中增加环境描写(小声)(就像这样)
  • 一切信息来源都是对话页面
  • 24x7 无休止在线

而真实的人则是

  • 有错别字和口误
  • 不用、错用、滥用标点符号
  • 口语化的简化表达,碎片化的语句,一个完整意思可能通过多个短句传达
  • 可以同时聊好几个话题,会等待/打断对方
  • 纯粹的口语
  • 有其他事情做,在聊天之外还有很多故事发生
  • 注意力不是 100% 停留在对话中,会看不到消息,或者看到了故意不回复/延迟回复

基于以上分析,本项目做了几个设计:

  1. 用户消息接收:在对话流中,不再采用 「 用户发一条消息 —> 锁定输入框 —> Character 处理并生成一条回复 —> 用户继续发消息… 」这种回合制模式。在接收用户消息时, 会监测用户是否正在进行下一条输入,从而决定是否要等待用户输入完了再开始处理。

  2. 消息处理:
    (1)引入日程和注意力机制,仅在 Character 世界中,它的当前注意力在手机上,且有回复意愿的时候才开始处理消息,否则进入待处理状态等待处理时机。
    (2)多因素驱动思考:角色当前正在做的事情(日程)、情绪状态(开心/平静/失落等)、记忆、价值观、关系状态(亲密/生疏/喜爱/厌恶…)

  3. 消息回复:
    (1)在提示词和后处理节点,对回复进行”口语化“ 和 ”脏化“ 处理,把回复转化成离散的短句,并刻意引入错别字、错误标点符号。
    (2)按照消息长度模拟回复速度,延迟消息输出,并给出 ”对方正在输入“ 的指示; 支持多个短句连续输出;
    (3)回复可被打断,当 Character 正在按计划回复时,允许用户输入,Character 立刻停止计划输出,优先开始思考新的用户消息,或者被其他非用户事件打断。

拟人化设计不是表面语气词,而是把多个系统一起拉通后的行为一致性。

这个项目的拟人化不是靠“更可爱的措辞”或“更像人类的口头禅”实现的,而是把角色回复、关系状态、日程、注意力、自我模型放进同一个运行体系里联合建模。

  • 这样做的结果是,角色的回复不只是“内容像个人”,而是其节奏、可用性、状态延续性和上下文反应都像一个持续存在的个体。用户感知到的是一个有生活流、有关系演进、有内部状态的对象,而不是一个即时生成文本的接口。
  • 从工程上看,这也是项目最有辨识度的一点:它不是把聊天、记忆、日程分别做成几个功能点,而是试图把它们收束成一个类人的角色运行框架。

3.3 角色模型与自我进化

主流的 Rolplay Agent 的角色模型就是一段静态的设定提示词,Agent 的成长性仅限于聊天记录的累积,而角色的“人格” 部分始终是静态的:

  • 聊天历史的消失就意味着重回一张白纸
  • 聊天历史越长,对话性能下降越严重,角色漂移越严重,上下文压缩功能只能有损缓解,而不能人格化的沉淀下来。

本项目希望能赋予角色生命力、可成长性,它根据演化速度主要分为五个层次:

3.3.1 五层模型

L0 宪法层 这层是不可轻易变化的底线,包括善良、非反社会、禁止诱导伤害和违法等安全与伦理边界。它决定角色“绝对不能变成什么”。在代码里,默认模型初始化时就把这一层写进去,作为系统硬约束。

L1 身份层
这层决定角色“我是谁”。它承载身份主叙事、长期定位、风格主轴,是角色稳定感的来源。包括“身份锚点、价值与推理、表达风格”三个部分,也就是“我是谁、我怎么思考、我怎么表达”

L2 倾向层
这层不是身份本身,而是角色在长期互动中形成的偏好和策略偏置,比如偏好什么话题、做决定时更偏共情还是偏事实、表达节奏如何。它相当于角色的“长期习惯和中期性格纹理”。

L3 状态层
这层是快变的,包括情绪、精力、健康、自我叙事、反思摘要等。它决定角色“此刻处于什么状态”,所以同一个角色在不同时间回复会有差异,但不会丢失底层一致性。

L4 会话层
这层是瞬时策略层,记录本轮对话偏置和上下文约束。它是 turn 级、临时的,不应该变成永久人格的一部分。

3.3.2 角色模型如何受到刺激并演化

用户对话
普通闲聊只能影响 L3/L4,也就是即时状态和本轮策略;不会因为用户一两句话就把角色整个人设洗掉。只有反复、稳定、长期一致的互动,才可能影响 L2;关系转折、长期承诺这类高权重信号,才有资格逐步触碰 L1。

世界事件和系统刺激
角色运行时是一个事件驱动系统,刺激源包括用户消息、随机世界事件、天气新闻变化、日程变化等。这意味着角色不仅会被用户输入改变,还会被时间流逝、外部事件、工具结果影响。

关系变化
关系模型会独立演化,并反过来影响角色如何表达边界、亲密度和互动节奏。它强调证据驱动、低频更新、单步变化,避免一夜之间从陌生人跳到恋人。

日程与注意力
角色的时间安排和注意力状态会影响是否即时回复、回复时所处的情绪和精力状态。也就是说,同一句用户输入,在“睡前疲惫”和“白天闲暇”两个状态下,角色表现应该不同。

反思与记忆写回
系统在 idle tick 等场景会触发反思,把近期对话和任务摘要压缩成 reflection_summary 和 self_narrative,写回 L3 运行时状态,再同步到角色快照。这是当前“自我进化”最直接的已落地路径。

  • 项目里对角色模型的处理不是静态人设模板,而是可快照、可回放、可重建的状态资产。它可以随着运行时事件不断被更新,而不是每次请求都从零开始扮演。
  • 对话、关系变化、日程推进、注意力状态,都会反向塑造角色模型。这意味着角色不是只在“回答内容”上变化,而是在“如何看待自己、如何看待用户、当前处境是什么”这些更底层的维度上演进。
  • 这种设计让自我进化成为系统能力,而不是运营文案。角色会在持续互动里沉淀出更稳定的行为倾向和状态轨迹,而不是每一轮都像刚刚被初始化过一样。

3.4 混合记忆系统

本项目的记忆设计基于以下原则:

  • 记忆是天然有重要性差异的,越重要/影响越大的越容易记住
  • 遗忘和记住一样重要,越用到越强化,越不用越淡忘
  • 记忆≠写下一切历史,而是对历史的再理解

3.4.1 记忆类型

  • 短期记忆:最近的 N 轮对话会被完整的召回,用于保证最近对话的语义连续性
  • 长期记忆:向量化存储,用于支持语义检索,用保证长期一致性

3.4.2 记忆强度机制

  • 记忆强度:记忆在写入时会同步进行评估,事件本身对角色影响越大(中彩票了、出车祸了),初始强度越大(更容易回忆起来)
  • 遗忘(强度弱化):记忆条目存在半衰期,越早的记忆,评分越低
  • 强化(强度增加):不常用的记忆自然遗忘,常用的则被强化。

3.4.3 基于知识图谱的逻辑记忆

传统基于文本的向量化记忆,其本质是记录一块块局部历史现场, 而并不记录多个事件、角色之间深层的联系,这就导致召回的是当时的碎片化表象,而非长期积累的”理解”, 生成的回复也就是浅显、表面的。

而基于 Graph 的记忆则沉淀了:

  • 人物关系:谁对用户重要,关系亲疏,最近是否有变化
  • 偏好与主题归属:用户喜欢什么,这些喜欢和哪些场景、情绪、人物相关
  • 事件链:某件事的起因、经过、结果、后续影响
  • 长周期模式:反复出现的问题、习惯、情绪触发点、关系循环

角色的回答会更容易出现这几种产品层面的提升:

  • 更会“顺藤摸瓜”:不是只回答当前一句,而是能联系更远的上下文
  • 更会“抓主线”:看出一个用户反复困扰的核心问题,而不是每次都只处理表面情绪
  • 更会“记关系网”:不只是记住“用户提过妈妈”,而是知道“妈妈和用户压力、自我期待、考试焦虑是连着的”
  • 更会“持续推进”:下次再聊时,不只是说“我记得你说过”,而是能接着上次的逻辑继续走

所以 graph 记忆对陪伴产品的意义,是让角色开始具备“理解复杂人生上下文”的能力。

3.5 注意力机制

24 小时随时待命的“玩具”、“洋娃娃” 是得不到尊重的。
本项目中 Character 的注意力也会被收敛和管理起来,是用户需要珍惜的资源。

注意力用来决定角色“此刻该不该进入对话”的状态系统。注意力由日程驱动,挂载在多天日程结构中,用来表达角色在不同时间片的可打断程度。这样一来,“正在忙”“能看到消息但不立即回复”“可以立刻进入对话”就有了状态依据,而不是完全依赖随机延迟模拟。

这套机制的价值在于把对话节奏做真。它不只是让角色“慢一点回复”,而是让回复这件事本身受到角色当前生活状态的约束,从而形成更可信的存在感。

4. 下一步

4.1 世界系统开发

把角色系统从“只理解对话上下文”推进到“能够感知真实世界环境”。

  • 下一阶段需要把时间、地理位置、新闻媒体、公共事件等现实世界信号接入角色运行时,让角色不是只活在聊天窗口里,而是活在一个持续变化的外部世界中。
  • 这部分的关键不只是接数据,而是设计一套世界事件发生器与反馈系统:世界中发生了什么、哪些事件会进入角色感知、它们如何影响日程、注意力、关系和角色模型,都需要统一编排。

4.2 移动端应用开发

把当前系统从网页端体验推进到更贴近日常陪伴场景的移动端。

  • 移动端不是简单换一个 UI 壳,而是要让通知、前后台切换、设备权限、定位、系统时间和持续在线状态真正成为角色系统的一部分。
  • 只有进入移动端,Mili Chat 才更接近一个全天候陪伴产品,而不只是一个在浏览器里打开的实验性系统。

扩展角色能力集

  • 当前的角色能力集

4.4 完整的 Character 导出能力;

一键带走所有 Character 数据,

5. 其他小事

5.1 为什么叫 Mili Chat

我很喜欢鬼灭之刃的角色 甘露寺-蜜璃,她能吃、有力气、爱着所有好人,很有能量感和生命力。我希望这个产品能像蜜璃一样是充满能量的、温情的小太阳,温暖所有人。