语言模型的蜂巢思维
你让 GPT-4 推荐一部被低估的科幻电影,它说《月球》。换 Claude 问同一个问题,也是《月球》。再问 Gemini,还是《月球》。一篇 NeurIPS 2025 Best Paper Artificial Hivemind: The Open-Ended Homogeneity of Language Models (and Beyond) 用大规模实验量化了这个现象:不同语言模型在开放式问题上的回答,相似度高到反常。
你让 GPT-4 推荐一部被低估的科幻电影,它说《月球》。换 Claude 问同一个问题,也是《月球》。再问 Gemini,还是《月球》。一篇 NeurIPS 2025 Best Paper Artificial Hivemind: The Open-Ended Homogeneity of Language Models (and Beyond) 用大规模实验量化了这个现象:不同语言模型在开放式问题上的回答,相似度高到反常。
RAG 的工作方式是每次提问都重新检索、重新拼接、重新推理。问一个需要综合五篇文档才能回答的问题,模型每次都得从头找到这五篇,拼起来,再给你答案。问十次,找十次。什么都没积累下来。
Karpathy 前两天发了一个叫 LLM Wiki 的 gist,提了一个不同的思路:别让模型每次现场检索了,让它把知识预先编译成一个结构化的 wiki,查询的时候直接查编译好的结果。
向量检索(dense retrieval)这几年几乎成了 RAG 的标配。把文档编码成一个向量,查询也编码成一个向量,算个余弦相似度就能检索。但一个基本问题很少被认真讨论过:一个 d 维向量,到底能表示多少种不同的 top-k 检索结果?
ICLR 2026 这篇来自 Google DeepMind 和 JHU 的论文 “On the Theoretical Limitations of Embedding-Based Retrieval” 给出了一个数学上的回答:不够。而且远远不够。
前段时间孙割有个暴论:“现在已经2026年了,大家能和AI聊天就不要和人类聊天。“后面还有什么删掉90年前出生人的联系方式、微信登味重之类的,典型的孙割风格,听个乐。
但抛开那些离谱的部分,作为AI重度用户,谈谈AI的好处和坏处。
Claude Code 内部有一个叫 autoDream 的模块。它的 Prompt 标题是"Dream: Memory Consolidation"。
这不是什么隐喻。Claude Code 确实会在后台启动一个子代理,回顾过去多个会话的记录,把零散的记忆整理、去重、纠错,然后写回磁盘。整个过程你看不到,除非刻意去翻后台任务列表。
2025 年科技行业的招聘页面很分裂:传统软件工程师岗位在缩,带"AI"前缀的职位在涨。同一家公司,左手砍初中级开发和项目管理,右手开 Agent 编排工程师和 AI 应用架构师。
去年 6 月 Shopify CEO Tobi Lutke 发了条推,说他觉得 context engineering 比 prompt engineering 好。Karpathy 转发 +1。Simon Willison 写了篇博客说这个词可能真能立住。Phil Schmid 做了完整定义。半个 AI 圈在一周之内集体换了术语。
到了 2026 年初,Phil Schmid 又抛了一个新词:Agent Harness。这次没有上一轮那么热闹,但写 Coding Agent 的人几乎都默默点了头。
OpenClaw 拿下 35 万 Star 之后,社区开始出现一种论调:底层都是 Opus 4.6,开源方案应该能对标 Claude Code。实际用过两边的人大概都有同一个感受,长会话跑到后半段,OpenClaw 开始丢上下文,忘记之前读过的文件,重复做已经做过的事。Claude Code 也会,但明显晚得多,而且恢复能力强很多。
模型一样,体验不一样。差在哪?
Cursor 的母公司 Anysphere 大概 150 人,2025 年 11 月 年收入突破 10 亿美元 。OpenAI 到 2026 年初有 4500 名员工 ,2025 年收入 131 亿美元,但据 Fortune 报道, 亏损约 90 亿美元 ,而且预计一直亏到 2028 年。
一个不训练任何模型的应用公司,人均产出碾压了训练模型的公司。这组数字是 2025 年 AI 行业最值得琢磨的信号。
2025 年 11 月底,一个叫 OpenClaw 的开源项目在 GitHub 上线。4 个半月后,它有 35 万 Star,7 万 Fork,81 个发布版本,OpenAI、NVIDIA、Vercel 做它的赞助商。同期对比:Open WebUI 用了两年半才到 13 万,NextChat 三年到 8.8 万。OpenClaw 的增速在 GitHub 历史上都不多见。
它不是一个新模型,不是一个训练框架,甚至不是一个传统意义上的"技术突破"。它是一个个人 AI 助手,跑在你自己的机器上,通过你已经在用的聊天工具跟你对话。WhatsApp、Telegram、Slack、Discord、微信、飞书、iMessage、Matrix,25 个以上的平台,同时接入,一个后台。
这篇聊聊它为什么能出圈。
用 Claude Code 写代码的时候,你大概不会注意到一件事:它注册了超过 40 个工具,但你让它读个文件、改几行代码,它只用到三四个。剩下那三十多个工具的定义,每个大约 500 个 token,全塞进上下文就是一万多 token 的固定开销。你只想改一行 CSS,却要为 WebSearch、NotebookEdit、CronCreate 这些完全用不到的工具买单。
Claude Code 的 Edit 工具接口极简: 给一个 old_string, 给一个 new_string, 在文件里找到前者替换成后者。听上去就是一个 str.replace() 的事。但在 LLM Agent 的语境下, 这个看似平凡的操作背后藏着一整套从字符串清洗到并发安全的工程。模型会把行号塞进替换字符串, 会凭空产生弯引号, 会在用户审批的间隙里被外部工具改了目标文件。Edit 工具要在这些情况下保持正确, 比 find-and-replace 复杂得多。
从行为上观察, Edit 工具的执行可以拆成三个阶段: API 层预处理(在工具拿到输入之前), 输入校验(展示权限对话框之前), 和实际写入(用户同意之后)。每个阶段各自处理一类问题, 且刻意保持了特定的同步/异步边界。
Claude Code有一个从未出现在任何文档中的模式,在这个模式下,它会系统性地抹除一切AI参与的痕迹。不写Co-Authored-By,不写Generated with Claude Code的footer,甚至连system prompt里都不告诉模型它自己是什么型号。这个模式叫Undercover Mode,只存在于Anthropic内部构建版本中,外部用户永远看不到它,因为整个功能在公开构建时会被dead code elimination彻底剔除。
从行为推断,这个机制的存在意味着Anthropic员工日常使用Claude Code向公开仓库提交代码。如果没有某种保护措施,commit message里可能出现未发布模型的代号,PR描述里可能暴露内部项目名称,system prompt里的模型标识可能通过某种方式泄露。Undercover Mode就是为了堵住这些口子。
Claude Code 执行复杂任务时会并行派生多个子 agent,每个都需要父对话的完整上下文。假设父对话积累了 100K token,并行 3 个子 agent,朴素实现要付 300K 的输入费用。
熟悉 LLM 推理优化的人会立刻想到:这不就是 KV Cache 共享的问题吗?多个请求如果前缀相同,Attention 层的 Key/Value 可以复用,省掉重复计算。Anthropic 把这个能力以 Prompt Cache 的形式暴露给了 API 用户,对缓存命中的前缀部分打一折。但前提是多个请求的前缀字节完全一致。Claude Code 的 fork 子 agent 被刻意构造成彼此之间 99% 以上的字节相同,3 个子 agent 的实际输入成本大约只有 120K 等价(100K 全价 + 2 × 100K × 10%)。
200K context window 听起来很大, 但一个中等复杂度的编程 session, 读几十个文件, 跑几轮 grep, 执行一些 bash 命令, 就能轻松吃掉大半个窗口. 压缩是必须的, 但压缩本身又要花钱: 你需要一次 LLM 调用来生成摘要, 而这次调用的输入就是你要压缩的那整段上下文. 这形成了一个有趣的工程权衡: 压得太早浪费信息, 压得太晚窗口爆了, 压缩本身的成本也不能忽略. Claude Code 对此给出的答案是一套多层级联系统: 能不压就不压, 能便宜压就便宜压, 实在不行才动用 LLM.
AI 执行 Bash 命令的安全问题,不是"该不该信任模型",而是"怎么确认命令的含义和它看起来的一样"。
Claude Code 允许 AI 直接执行 Bash 命令。不是通过 MCP 那样的结构化接口间接调用,是真给模型开了一个 shell。MCP 的思路是把工具封装成 JSON schema,安全是安全了,但你不可能为几千个 CLI 工具逐个写 adapter,能力天花板肉眼可见。直接给 Bash,什么都能干,代价是安全问题从"接口权限控制"变成了"搞懂这条命令到底在干嘛"。上一篇聊了 YOLO Classifier 怎么用 AI 审查 AI,但 YOLO Classifier 看到的是完整的命令字符串,它做的是语义判断:这个操作危不危险。在那之前,还有一层更底层的问题需要回答:这个命令真的是它看起来的那个意思吗?
塔勒布在《随机漫步的傻瓜》里讲了一个思想实验:如果有无限只猴子在无限台打字机前随机敲击,总有一只会打出《伊利亚特》全文。
我越想越觉得,这个故事的终局,就是今天的大语言模型。
用过Claude Code的开发者可能都有这样的体验:即便在一次超长对话中修改了几十个文件,它似乎始终"记得"之前做过什么。更神奇的是,你在上一次对话里告诉它"我喜欢用bun而不是npm",下次它就自动遵守了。
这背后是一套精密的记忆管理系统。今天,我们把Claude Code的记忆机制彻底拆解开来。