RealCompanion: Benchmarking Human Understanding from Reasoning over Longitudinal Real-World Conversations
Arman Behnam, Sunglyoung Kim, Liangwei Yang
cs.AI
2026-10-01
Quis Lab 放出十段真实陪聊记录,跨度最长 120 天、合计 27218 条,自然抽样里仅 3.4% 的用户消息需要调用旧内容,所需证据中位相隔 2157 条。
合成记忆基准把长对话写在待考事实周围,或先宣布人设再提问。LoCoMo、LongMemEval 围着待考记忆写超长对话,PersonaChat 到 PersonaMem 先给人设再发问。过去被设成永远相关,人是谁也被提前写死。
跟陪聊 companion 连续几个月,要分开两件事:这个人是谁,眼前这句用不用得着以前的话。前者大体稳定,后者每条都变。图 1 里的人写过自己并不确定想管人,申请只是不想空猜。恭喜他「这正是你想要的」,用的是对话里没有的判断。两件事都只能拿本人说过的话来核。对话私密,常含健康与家庭,公开基准就改用编出来的人。
RealCompanion 是 Quis Lab 发布的十段经同意的真实关系,取自同一产品运营库,跨度 36 到 120 天,共 27,218 条。最重两段占 73%。每人五个文件:原文、profile(陈述过的事实)、persona(如何想、感受、决定)、带推理轨迹的 chat 金标、问题集。
三条轨道。重建读完整历史,重写 profile 和 persona。对话探针是用户原话。问题从 profile 写成,3,235 道可评分,另 63 道按设计无解。
chat 金标五段现推,决定和理由在同一次调用里写完。A 看这条消息指向哪里。B 对照原文,对不上就丢,且只能删引用、不能加,漏标只会把需求率压低。C 用十九条规则标 tier:近处前文够用是 basic,用到 profile 是 intermediate,用到更早一轮是 hard,上下文为空是 edge。D 只按记下的上下文写参考回复。E 核对应,失败就降级或撤回。
proportional 层随机抽用户发言,1,169 条可评分,只此层能估计发生率。enriched 层 364 条,是深历史的普查,不能当发生率。abstention 层 434 条开场白,不该用旧信息。1,533 条可评分项里,404 条指向当前线程之外(profile 223、更早对话 116、companion 自己的旧行为 65),参考回复真用到引用的有 167 条。
检索比随机、最近窗口、用户自己的最近消息、BM25,以及交还金标的 oracle。broken oracle 给金标以外的消息,应当得 0。消融把每条截到 220 字:C0 只有当前句,C1 前三条,C2 标注点名的消息,C3 为 BM25 前十,C4 为时间上的前十。C3m、C4m 用同一中性标题并按时间排,把 memories 这个框定拆出去。
发生率只看 proportional 层。recorded 读法下 3.4%(2.5% 到 4.6%)要动用旧内容。strict 读法去掉屏幕上已经看得见的所指,降到 1.3%(0.8% 到 2.1%)。样本外普查是 3.2% 与 1.73%。宽松读法下十人有三人、严读法下有五人,一条记忆探针都没有。核验只能删不能加,所以这是下界。
一旦需要,最远必要消息中位在 2,157 条前,上四分位 5,114,最大 12,542。最近一条必要消息的中位也有 450 条。
| 方法 | 远处 hit@5(前五命中) | 全体有参考集 |
| 随机 | 0.005 | 未单列 |
| Recency | 0.022 | 0.959 |
| BM25 | 0.248 | 0.236 |
| Oracle | 1.000 | 未单列 |
| broken oracle | 0.000 | 未单列 |
1,477 条里 72.6% 靠当前线程就能答,最近窗口因此命中 0.959,只看远处掉到 0.022,严读法下为 0。BM25 两边都在 0.24 上下,远处仍漏掉约四分之三。按人平均,它的远处 hit@5 是 0.424,按条池化只有 0.248,池化分跟着语料构成走。覆盖率在 8k token 为 0.109,128k 为 0.453,一百万 token 才到 1.000。
内容匹配是 0 到 2 分。C1 前三条 1.622,C2 标注消息 1.763。全体差 +0.140,proportional 层 +0.108,其中需要记忆的只占 +0.004,不需要的占 +0.104,96% 的增益不来自记忆。167 条真依赖引用的,差值 +0.455。标题未对齐时,BM25 的 1.426 和什么都不给的 1.431 打平。对齐标题和顺序后,仍比时间上的前十条低 0.189。
读探针和前三条的检测器,自然发生率上 AUROC 0.530,离瞎猜的 0.5 很近。冷开场 0.548,对自己的目标 0.601:40 条里抓住 6 条,误报 40 次。人工问题上,带三条检索的检测器到 0.802,聊天探针只有 0.546。无上下文时误触发率为 0。给了之后,按探针选的升到 29.2%,随便十条升到 60.8%。同一批十条标成 retrieved memories,使用率比标成更早回合高 10 到 14 个百分点,不需要记忆时也一样。最近窗口换标题则没有这效果。
| 系统 | F1 | 精确率 | 召回 | token | 运行一致 |
| Claude Opus 5.5 | 0.686 | 0.557 | 0.893 | 5.46 亿 | 0.935 |
| Codex GPT-5.6-sol | 0.688 | 0.573 | 0.861 | 1800 万 | 0.932 |
| Antigravity(Gemini 3.8 Flash) | 0.701 | 0.591 | 0.861 | 3600 万 | 0.946 |
三套 agent 各跑三次,F1 同在 0.69 到 0.70,token 差约 30 倍。彼此一致 0.86 到 0.88,高于和金标文件的重合。精确率 0.56 到 0.59、召回 0.86 到 0.89,等于每找回一百个有依据的字段,再多写约七八十个对话里没有的。
记忆层多半对着「题目已写明该检索什么」的基准来调。那种题上克制没有难度,每条都被做成需要过去。真实比例大约 3%。逢消息就翻的系统,错主要错在不该翻的时候。
proportional 层上,96% 的内容匹配涨幅来自不用记忆的探针。只报总涨幅,量到的主要是语料里有多少消息根本不用记忆。远处子集上 recency 的 hit@5 只有 0.022,全体却是 0.959。把历史标成 memories,使用率再高 10 到 14 个百分点。人格重建上,前沿模型与 flash 档 F1 打平,约 30 倍 token 没有换成更少的臆写。
只有一个产品、十段关系。两人占 19,870 条,按人重采样的区间很宽。共情、未来行为、价值观都不评分。
3.4% 是下界。漏看真实指代会把需求报得更稀,Stage A 是否看漏无从排除。发布文本由模型改写,用词变了,事情和语境按设计保留。问题、profile、persona、chat 金标都是模型流水线再经人工审。profile 审计里,1,471 条 supported,1,025 条 repairable,455 条 unsupported,390 条待复核,37 条修剪后支持,202 条未判定。评判相对人工的 κ,二分类 0.804,分级 0.545。验证前的表面猜测和最终 tier 在 685/1,533 条上不一致。
companion 自己有记忆。404 条里 22.0% 的证据全来自它发出的消息。去掉任务就是回忆它说过的话,仍有 7.1%(24/339)可能在复述它告诉用户的内容。C1 与 C2 标题不同,差值混有标题效应。审查不是独立 IRB。条款禁止画像、识别和商业使用。