Meta和哈佛研究人员发布了孔子代码代理,这是一个基于孔子SDK的开源AI软件工程师,专为工业规模软件仓库和长期运行会话设计。该系统针对真实GitHub项目、评估时的复杂测试工具链,以及在SWE Bench Pro和SWE Bench Verified等基准测试中的可复现结果,同时向开发者开放完整脚手架。孔子SDK是一个代理开发平台,将脚手架作为主要设计问题处理,而非语言模型的薄包装。它围绕三个轴组织:代理体验、用户体验和开发者体验。代理体验控制模型所见内容,包括上下文布局、工作内存和工具结果。用户体验专注于可读跟踪、代码差异和人类工程师的安全保障。开发者体验专注于代理本身的可观察性、配置和调试。SDK引入了三个核心机制:一个具有分层工作内存的统一编排器、一个持久笔记系统,以及一个用于工具的模块化扩展接口。一个元代理通过构建、测试、改进循环自动化合成和优化代理配置。孔子代码代理是这一脚手架在软件工程中的一个具体实例。在SWE Bench Pro上的真实软件任务通常需要推理数十个文件和许多交互步骤。孔子SDK中的编排器维护分层工作内存,将轨迹划分为范围,总结过去步骤,并为后续回合保留压缩上下文。这种设计有助于保持提示在模型上下文限制内,同时保留重要工件,如补丁、错误日志和设计决策。关键点在于,有效的基于工具的编码代理需要一个明确的内存架构,而不仅仅是先前消息的滑动窗口。第二个机制是一个笔记系统,使用专用代理从执行跟踪中编写结构化Markdown笔记。这些笔记捕获任务特定策略、仓库约定和常见失败模式,并存储为长期内存,可在会话间重用。研究团队使用Claude 4.5 Sonnet在151个SWE Bench Pro实例上运行孔子代码代理两次。在第一次运行中,代理从头解决任务并生成笔记。在第二次运行中,代理读取这些笔记。在此设置下,平均回合数从64降至61,令牌使用量从约104k降至93k,Resolve@1从53.0提升至54.4。这表明笔记不仅是日志,还作为有效的跨会话内存功能。孔子SDK将工具作为扩展公开,例如文件编辑、命令执行、测试运行器和代码搜索。每个扩展可以维护自己的状态和提示连接。研究团队使用SWE Bench Pro的100个示例子集进行消融研究,探讨工具使用复杂性的影响。使用Claude 4 Sonnet时,从没有高级上下文功能的配置移动到具有高级上下文的配置,Resolve@1从42.0提升至48.6。使用Claude 4.5 Sonnet时,简单工具使用配置达到44.0,而更丰富的工具处理达到51.6,中间变体为51.0。这些数字表明,代理如何选择和排序工具几乎与骨干模型选择一样重要。