公司动态

C++ 推理引擎的多轮之痛:KV 缓存越攒越贵,AI“记住更多“与“记得便宜“本就冲突

📅 2026/8/5 2:50:27
C++ 推理引擎的多轮之痛:KV 缓存越攒越贵,AI“记住更多“与“记得便宜“本就冲突
你去银行办事,在一号窗口把事情原原本本说了一遍,柜员让你去二号窗口盖个章。你走过去,二号窗口的柜员抬起头问:请问您办什么业务?这是第一种痛。多轮对话最先暴露的问题就是它——机器人第二句话就把第一句话忘了。这种痛很好治,把历史拼上去就行,几乎所有入门教程讲到这里就收尾了。但还有第二种痛,它藏在治法里面。为了让二号窗口的柜员知道来龙去脉,你把刚才那段话原样重放一遍;到了三号窗口,你把前面两段一起重放;办到第十个窗口,你已经重放了四十五段话,而其中真正新增的信息只有十段。柜员们的耳朵没坏,坏的是这套流程本身:每一轮的成本都在为已经说过的话重复付费。线上系统里,这份重复开销同时体现在首字延迟、显存占用和 token 计费三个地方,而且是平方级增长的。这条演化线的终点,是一个我自己刚开始做客服机器人时完全没料到的结论:让机器人记住更多,和让它记得便宜,在工程实现上是两件互相打架的事——而入门资料最爱教的那两招(滑动窗口截断、滚动摘要),恰好都死死站在“便宜”的对立面。它们省下的是 context 长度,赔进去的是每一轮一次的全量重算。下面我们从一个四十行、彻底失忆的版本开始,一步一步把它改造成能上线的样子。中间会故意把它写坏好几次——报错、串话、token 成本翻四倍、投诉升级,每一次都先让现象跑出来,再回头拆机理。1. 先把机器人写坏:无状态版本的失忆现场1.1 四十行的 v0我们全文只维护一个工程,叫svcbot,是一个电商