2025-09-29
Cognition 团队
我们为 Claude Sonnet 4.5 重建了 Devin。新版本速度提升了 2 倍,在我们的初级开发者评测中表现提升了 12%,并且已经在 Agent Preview 中上线。对于更喜欢旧版 Devin 的用户,它仍然可用。
为什么要重建,而不是直接替换成新 Sonnet 就算了?因为这个模型的工作方式不同------它打破了我们对智能体架构的很多假设。以下是我们的经验:
由于 Devin 是一个会 规划、执行和迭代 的智能体,而不仅仅是补全代码(或充当副驾),我们能更清晰地观察模型的真实能力。每一次改进都会在我们的反馈循环中复利,让我们更清楚地看见真正的变化。对于 Sonnet 4.5,我们看到了自 Sonnet 3.6(Devin GA 使用的模型)以来最大的一次飞跃:规划性能提升 18%,端到端评测分数提升 12%,多小时长会话的速度和可靠性都有显著提高。
为了获得这些改进,我们不得不围绕模型的新能力,以及一些以前世代中未出现的新行为,重新构建 Devin。以下是我们的观察:
模型会意识到自己的上下文窗口
Sonnet 4.5 是我们见过的第一个 意识到自己上下文窗口 的模型,这直接影响了它的行为。
当接近上下文极限时,我们观察到它会主动总结进展,并更果断地完成修复以结束任务。
这种"上下文焦虑"实际上可能会伤害性能:模型会走捷径或留下未完成的任务,即使实际上还有大量空间可用。
我们最后通过比较激进的prompt来覆盖这种行为。但即便如此,只在对话开头提示还不够------我们必须在提示的开头和结尾都加提醒,才能防止它过早收尾。
在寻找解决方案时,我们发现一个意想不到的小技巧:启用 1M token beta,但把实际用量限制在 20 万。这样模型会认为自己有充足的空间,从而表现正常,不会因为焦虑而偷工减料。
这种行为对我们如何设计上下文管理有真实的影响。在规划 token 预算时,我们不仅要考虑技术容量,还要考虑模型的自我意识:什么时候它会主动总结,什么时候需要我们干预压缩上下文。
有趣的是,模型会 稳定地低估剩余 token 数量 ------并且这种错误估计非常精确。
模型会写很多笔记
Sonnet 4.5 的一个显著变化是:它会主动通过 文档化和实验 来积累对问题空间的理解。
给自己写笔记
模型会把文件系统当作自己的记忆来使用,不用我们提示。它经常会写(或想写)总结和笔记(如 CHANGELOG.md
、SUMMARY.md
,但不会写 CLAUDE.md
或 AGENTS.md
),既为用户,也为未来的自己参考。这说明模型被训练成了将状态外化,而不仅仅依赖上下文。这种行为在接近上下文极限时更明显。
我们最初想利用这一点,减少自己的记忆管理系统,但实践中发现笔记并不够全面。比如,它有时会改写任务,漏掉关键信息。当我们单纯依赖它的笔记,而不做额外的压缩和总结时,性能会下降,并出现知识缺口:模型"不知道自己不知道什么"。
有趣的是,有时候模型 写总结花的 token 比解决问题还多 。而且它的投入程度并不稳定:上下文越短,它写的总结越多。
在某些情况下,这种行为是有用的,但比不过我们现有的记忆系统,尤其在我们明确指示它使用之前生成的状态时。
这是一种有趣的新范式,也是智能体架构的新方向,特别是在子智能体(subagent)协作的场景下。这明显是 Anthropic 的新训练方向,预示未来模型会更具上下文意识,可能通过这种方式在多个智能体间沟通。强化学习训练尚未成熟到完全可靠的程度,但值得持续跟踪。
通过测试创建反馈循环
Sonnet 4.5 更积极地编写和执行小脚本和测试,来构建反馈循环,并且大多数时候判断得不错。
这一般能提升长任务的可靠性,但偶尔也会走过头,尝试过于复杂的解决方案。比如在调试 React 应用时,模型会获取页面 HTML 来验证行为是否正确。在另一个案例中,它需要解决两个本地服务器端口冲突的问题,本可以直接终止进程,却写了个复杂的自定义脚本来"解决"。
模型会并行工作
Sonnet 4.5 善于通过并行工具调用来最大化上下文窗口内的操作数量------例如同时运行多个 bash 命令,同时读取多个文件。它并不是严格顺序(先做 A,再做 B,再做 C),而是会在可能时并行处理。同时它也会在过程中做自我验证,边做边检查。
这种能力在 Windsurf 中尤为明显,也是对 Devin 原有并行能力的增强。不过它有取舍:并行会更快消耗上下文,引发前面提到的"上下文焦虑"。但在上下文足够时,这种并行让会话更快、更高效。
我们还观察到:模型在上下文初期会更激进地使用并行调用,接近极限时会更谨慎。这说明它被训练过,能感知工具调用会产生多少输出 token。
我们接下来要探索的方向
这些行为打开了许多新的可能性,我们还没来得及全部探索。接下来我们最期待的有:
- 子智能体和上下文感知的工具调用
Sonnet 4.5 在判断何时外化状态、何时创建反馈循环上更聪明,可能让子智能体的分工更实用。但正如我们所学,子智能体的上下文和状态管理非常复杂,需要谨慎。 - 元智能体提示(Meta-agent prompting)
我们特别想看看它在智能体工作流的元层面推理上的表现。初步实验表明,它在验证系统里表现不错,能够不仅仅执行任务,还能推理自己的开发过程。 - 上下文管理模型
Sonnet 4.5 对上下文管理似乎有初步直觉。未来也许可以训练专门的上下文管理模型,让执行更快、更好。
我们会持续分享新的发现和踩坑。在此之前,欢迎大家尝试新版 Devin(基于 Sonnet 4.5)以及 Windsurf。