长期记忆正在把 Agent 变蠢

最近有篇论文,标题很炸:Useful Memories Become Faulty When Continuously Updated by LLMs。

翻译成人话就是:LLM Agent 的长期记忆,不是越更新越聪明,而是可能越更新越蠢。

论文里有个实验很刺眼:GPT-5.4 原本能 100% 解出一组 ARC-AGI 题。研究人员给它正确答案,让它把成功经验总结成长期记忆。连续更新 10 轮之后,准确率掉到 52.6%。它不是”没学会”,而是”本来会,被自己的记忆教坏了”。

很多神话故事里,转世都要过奈何桥,喝孟婆汤。以前看这类设定,总觉得它只是为了制造戏剧冲突:忘了前世,才有今生的爱恨情仇。现在再看,反而像一种系统设计。前世记忆不是外挂,很多时候是污染源。那些经验是在上一组约束里长出来的——上一具身体、上一套关系、上一种秩序、上一轮恐惧和欲望。换了环境,还把它们当成真理带进来,不是开局优势,而是路径依赖。长期记忆最危险的地方,不是忘记,而是把一个过早的抽象硬编码进未来。

阅读全文

从 Prompt 到 Harness

最近我看到一个很有意思的现象。

有人给 Agent 加了一堆 SKILL,接上各种 Knowledge base,工作流满天飞,prompt 里塞满了注意事项、反例、few-shot,然后很认真地说:我们现在也在做 harness engineering。

我的第一反应是:这连门儿都还没摸着,离真正的 Harness Engineering 还远着呢。

SKILL、KB、structured prompt 当然有价值。它们能让模型更懂上下文,更容易按你的预期行动,也能显著降低低级错误。但如果你把这些东西叫 harness,那就把整件事想浅了。

KB/SKILL 不是 harness,它们最多只是 harness 的输入约束层。

阅读全文

Graphite: Code 即上下文

很多人以为,让 Agent 理解代码,就是给它更多源码:更大的 context window,更好的 embedding,更聪明的 RAG,更细的 AST index。我以前也差点信了。

直到我让 Agent 清理 AB 实验代码:它很快扫出一堆调用点,然后说“清完了”。真正的问题不是 Agent 能不能读代码,而是我怎么证明它没有漏掉第 201 个调用点。对 Agent 来说,context 不应该只是源码文本;Code 本身就应该成为 Agent 可以查询、验证、推理的上下文。 Graphite 就是为这个问题做的。

阅读全文

上海还是那个上海,少年已不是那个少年

五一假期,从首尔飞上海,距离上一次踏上这片土地,整整十二年。

到了酒店,把孩子们安顿好,晚上带夫人去了 The Stage 玉兰观景台,三百多米的高度,俯瞰整个陆家嘴和黄浦江。出舱门的那一刻,满地的灯光像潮水一样在脚下铺开。

回想起十二年前,我也曾在这片土地上。只不过那时候,我是站在江对面,仰望着这边的塔尖。

阅读全文

Harness 的尽头是品味

最近 Agent 写的代码,review 时要改的东西越来越多。硬编码、魔法数字、抛异常时不给用户友好提示、catch 了又吞掉、内存悄悄上涨、循环里塞着循环——以前偶尔出现,现在几乎每个 PR 都能看到。

Agent 写代码快,但快得没有 engineering excellence。

阅读全文