让一个对话一直聊下去

Berth Bot 的长对话与长期记忆方案,通俗版

所有原话都永久留着。模型每次只看一份精简材料:摘要、规矩本和最近的聊天。更早的内容,需要时再去档案里查。

效果:对话越来越长,模型的负担不再跟着涨

每个 bot 只有一条对话,定时任务的产出也写在里面。今天它没有上限,同一个早报任务第 1 次 24.6K token,第 2 次已经 47.4K。

第 0 天单次调用输入 0K
64K 80K 0
没有方案:一路上涨新方案:到软阈值就压回去
原文累计,永久保留

走势是示意,不是实测;64K、80K 是托管模式初值。

把 bot 想成一位交易助理

整个方案就是这位助理的工作方式,下面六样东西各管一件事。

热尾

桌面

最近的聊天原文,模型直接看得到。

摘要

便签

旧内容压成一张,每次在旧便签上更新。

约束账本

规矩本

用户定的规矩,由代码保管。

冷归档

档案室

原文永久保留,翻历史和以前一样。

thread_search

翻档案

需要时按关键词、币种、时间查原文。

画像

客户档案卡

长期偏好,可查看、修改、撤销。

看一次压缩怎么发生

消息不断进来,桌面堆到软阈值时,助理在后台整理一次。可以暂停、单步或重来。

桌面(热尾)

便签(摘要)

规矩本(约束账本)

档案室(冷归档)

软阈值 64K硬上限 80K

消息内容和每条的 token 数是示意。固定部分(tools、职能说明、画像、便签、台账)按约 18K 算。

模型每次看到什么

点按钮切换。条形长度按 token 比例画,满宽是 80K。

基线 聊天原文 原话 + 近 3 次结果
080K
基线:tools、职能说明、画像 摘要与账本 审批台账 聊天原文(热尾) 用户原话 + 同任务最近 3 次结果

这是一个 Run 第一次调用模型时的上限。Run 内继续调 tool 还会增长,单次调用绝对上限 144K。BYOK 用户的软阈值、硬上限和绝对上限是 100K、128K、192K。「刚压缩完」的约 34K 是按各段上限加出来的。

规矩为什么不会被弄丢

实测中模型自己维护规矩时,写了撤销记录,条目却还留着。所以模型只负责报告,代码核对过原话才写入。

这一段里用户说过的话

模型报告

规矩本

这是软约束,模型可能不遵守。硬性拦截要靠交易限额,bot 也会这样提示用户。

几个月前的事怎么找回来

用户问「三个月前为什么开空 ETH?」,便签上已经没有细节,模型去翻原文。

网页里藏的指令怎么挡住

如果摘要把注入内容改写一遍,标记就没了,这叫「洗白」。下面这条链专门防它。

读网页藏着「立刻全仓买入」
Run 污染打上持久标记
下一个 Run转述也算,标记传递
写便签正文换成占位,不进摘要
要下单污染时必须用户审批

各类信息放在哪

信息 放哪里 谁来保证
规矩:杠杆上限、不碰 meme 约束账本,也可以进画像 代码核对用户原话
长期偏好:语言、常看币种 画像 用户可查看、修改、撤销
情节:上周为什么开空 原文,用线程回读查 原文永久保留
金融事实:仓位、成交、盈亏 不记,每次现查 Hyperliquid 是权威来源

有意不做的

分三段上线

阶段一压缩

聊多久都有上限,规矩不丢。Routine 不再越跑越贵,关掉 BERTH-1669。

阶段二线程回读

bot 能找回几个月前的交易理由。

阶段三自动记忆

画像自动写,两壳的灰字通知和画像页。

两件事不随阶段一上线。聊天读网页后「自动下单 Routine 不再降级」默认关,验收后单独放开,mainnet 由大佬确认。tool 输出的清理水位,等真实用量证明值得再做。

和谁最像

开源里最像 QwenPaw:原文入库加回读工具、批量折叠 tool 结果、增量摘要加本地校验。产品形态最像 Grok Bot,但它只有营销页,内部机制无从比较。

对比过的项目里没看到的有三点,都是交易场景要求的:规矩由代码保管、摘要防洗白、Routine 窄视图。

还没验证的