Simon Willison 甩出了 LLM 0.32——他自己说是项目启动以来最重要的版本,这话一点不夸张。新版本表层更新不少:支持显示推理轨迹、加入服务端工具调用、对接 OpenAI Responses API,默认模型也换成了 GPT-5.6 Luna。但这些都只是开胃菜。真正改变游戏规则的,是藏在命令行输出和日志体系里的两处架构级重构。
第一刀砍在推理过程的可观测性上。此前要看模型“怎么想”,得在调试信息里刨食,不同模型、不同工具的输出格式各搞一套,管道一串联就彻底抓瞎。LLM 0.32 直接把推理轨迹和普通响应做了硬分离:推理内容全部写进 stderr,响应主体留在 stdout。这意味着你随时可以 pipeline 一条自然语言结果给下一个工具,同时还能在终端看到模型完整的思维链路,谁都不干扰谁。第二刀更狠——日志全面转向内容寻址存储。过去 LLM 的每一次对话、每一次工具调用都像一团纠缠的意大利面,重复消息四处散落,状态难以追溯。现在每个 prompt 和 response 都按其哈希值存储,相同的输入输出自动去重,引用关系瞬间清晰。这从根本上甩掉了早期消息抽象带来的重复和混乱。
这两处改动放在一起,把一个原本好用的命令行大模型瑞士军刀,直接推到了轻量级代理框架的位置。你不用再为“该把推理藏在哪里”“怎么避免上下文里塞满重复的系统提示”这类低级问题耗费心力——Willison 用内容寻址日志和 stderr 分流给了你一个干净的答案。对于已经用 LLM 来拼装管道的开发者来说,0.32 版不是一次功能堆叠的升级,而是一次令人舒爽的债务清理。

