让一个对话一直聊下去
Berth Bot 的长对话与长期记忆方案,通俗版
效果:对话越来越长,模型的负担不再跟着涨
每个 bot 只有一条对话,定时任务的产出也写在里面。今天它没有上限,同一个早报任务第 1 次 24.6K token,第 2 次已经 47.4K。
走势是示意,不是实测;64K、80K 是托管模式初值。
把 bot 想成一位交易助理
整个方案就是这位助理的工作方式,下面六样东西各管一件事。
桌面
最近的聊天原文,模型直接看得到。
便签
旧内容压成一张,每次在旧便签上更新。
规矩本
用户定的规矩,由代码保管。
档案室
原文永久保留,翻历史和以前一样。
翻档案
需要时按关键词、币种、时间查原文。
客户档案卡
长期偏好,可查看、修改、撤销。
看一次压缩怎么发生
消息不断进来,桌面堆到软阈值时,助理在后台整理一次。可以暂停、单步或重来。
桌面(热尾)
便签(摘要)
规矩本(约束账本)
档案室(冷归档)
消息内容和每条的 token 数是示意。固定部分(tools、职能说明、画像、便签、台账)按约 18K 算。
模型每次看到什么
点按钮切换。条形长度按 token 比例画,满宽是 80K。
这是一个 Run 第一次调用模型时的上限。Run 内继续调 tool 还会增长,单次调用绝对上限 144K。BYOK 用户的软阈值、硬上限和绝对上限是 100K、128K、192K。「刚压缩完」的约 34K 是按各段上限加出来的。
规矩为什么不会被弄丢
实测中模型自己维护规矩时,写了撤销记录,条目却还留着。所以模型只负责报告,代码核对过原话才写入。
这一段里用户说过的话
模型报告
规矩本
这是软约束,模型可能不遵守。硬性拦截要靠交易限额,bot 也会这样提示用户。
几个月前的事怎么找回来
用户问「三个月前为什么开空 ETH?」,便签上已经没有细节,模型去翻原文。
数据是示意。用 SQLite 自带的全文搜索 FTS5,中文逐字切分加短语查询,这样「强平」这类 2 字词也搜得到。
网页里藏的指令怎么挡住
如果摘要把注入内容改写一遍,标记就没了,这叫「洗白」。下面这条链专门防它。
各类信息放在哪
| 信息 | 放哪里 | 谁来保证 |
|---|---|---|
| 规矩:杠杆上限、不碰 meme | 约束账本,也可以进画像 | 代码核对用户原话 |
| 长期偏好:语言、常看币种 | 画像 | 用户可查看、修改、撤销 |
| 情节:上周为什么开空 | 原文,用线程回读查 | 原文永久保留 |
| 金融事实:仓位、成交、盈亏 | 不记,每次现查 | Hyperliquid 是权威来源 |
有意不做的
- 向量库和知识图谱:先用关键词搜索,模型自带同义词。nightly 证明召回不够再加。
- mem0、Letta 这类第三方记忆库:也不留插件口。
- 厂商服务端压缩:无法审计,也换不了 provider,污染必须自己控制。
- 后台自动整理记忆:原文和用户管理的画像已经够用,自动改写反而难追溯。
- 手动 compact 和「新对话」:用户无感,什么都不用做。
分三段上线
聊多久都有上限,规矩不丢。Routine 不再越跑越贵,关掉 BERTH-1669。
bot 能找回几个月前的交易理由。
画像自动写,两壳的灰字通知和画像页。
两件事不随阶段一上线。聊天读网页后「自动下单 Routine 不再降级」默认关,验收后单独放开,mainnet 由大佬确认。tool 输出的清理水位,等真实用量证明值得再做。
和谁最像
开源里最像 QwenPaw:原文入库加回读工具、批量折叠 tool 结果、增量摘要加本地校验。产品形态最像 Grok Bot,但它只有营销页,内部机制无从比较。
对比过的项目里没看到的有三点,都是交易场景要求的:规矩由代码保管、摘要防洗白、Routine 窄视图。
还没验证的
- 线上行为:搬家、FTS5、CPU 和内存只有本机数据,搬家票要求 staging 跑约 1 万行。
- 预算初值:64K、80K、48K 等都是推算值,上线后用真实数据复核。
- 每日 $0.10 额度:粗算只够约 5–13 次未命中缓存的首调,可能偏紧,阶段一验收要核算。
- 摘要质量:只用合成中文线程测过 40 轮,「最近别太激进」这类含蓄说法没测过。
-
依赖 SDK 私有表:
agents还是实验版本,每次升级都要过表结构断言。