Code Researcher是什么
Code Researcher是微软研究院推出的深度研究Agent工具,专门用于处理大型系统代码库及其提交历史,自动化修复系统代码崩溃问题。通过三个阶段工作:分析(Analysis)、合成(Synthesis)和验证(Validation)。在分析阶段,Code Researcher基于多步推理策略,结合代码语义、模式和提交历史信息,收集上下文并存储在结构化内存中。合成阶段基于收集到的上下文生成修复补丁,验证阶段通过外部工具验证补丁的有效性。
能深入探索代码库和提交历史,挖掘与崩溃相关的全局上下文信息。支持多种推理策略,如控制流和数据流分析、模式搜索以及基于历史提交的因果分析,通过正则表达式搜索代码库和提交历史,高效定位问题根源。

Code Researcher的主要功能
- 深度代码分析:Code Researcher能通过多步推理,结合代码的语义、模式和提交历史,逐步收集上下文信息,全面理解崩溃的根本原因。
-
上下文收集:通过结构化内存存储分析过程中收集的信息,确保在生成修复补丁时有足够的背景信息支持。
-
代码搜索:支持通过正则表达式搜索代码库中的特定模式,快速定位相关代码片段。
-
提交历史分析:能搜索历史提交记录,找到与当前崩溃相关的变更,基于过去的开发经验辅助修复。
-
因果分析:分析历史提交对当前问题的影响,识别引入问题的根源。
-
智能合成:基于收集到的上下文信息,生成针对崩溃问题的修复补丁。能识别修改多个文件中的代码片段,生成高质量的修复方案。
-
过滤与优化:在合成阶段,Code Researcher会过滤掉无关信息,专注于与崩溃修复直接相关的上下文,确保生成的补丁精准有效。
-
外部工具集成:用外部工具验证生成的补丁是否能有效防止崩溃的发生,确保修复的准确性和安全性。
-
自动化验证流程:通过自动化测试验证补丁的有效性,减少人工干预,提高修复效率。
- 泛化能力:Code Researcher适用于Linux内核等大型系统代码,能在其他系统代码库(如FFmpeg)中快速适应并生成有效的修复补丁,展现出良好的泛化能力。
-
提供修复建议:在某些复杂情况下无法完全修复问题,Code Researcher能提供有价值的调试信息和修复建议,加速问题解决。
Code Researcher的技术原理
- 多步骤推理与语义分析:Code Researcher通过多步骤推理逐步收集代码的语义信息、模式和提交历史的上下文。基于大型语言模型(LLM)的语义分析能力,深入理解代码逻辑和结构,更准确地定位崩溃的根本原因。
- 代码提交历史分析:创新性地挖掘代码提交历史,通过分析漏洞在开发过程中的演化轨迹来理解问题本质。这种时序分析方法使能处理百万行级别的超大规模代码库。
- 全局上下文收集:Code Researcher在分析阶段会收集全局上下文信息,包括代码片段、过去的提交记录以及符号定义等。被存储在结构化内存中,用于后续的补丁生成。
- 深度探索与智能合成:Code Researcher能深入探索代码库,平均每个轨迹可以探索10个相关文件。在合成阶段,会过滤掉无关信息,基于收集到的上下文生成修复补丁。
Code Researcher的项目地址
- arXiv技术论文:https://arxiv.org/pdf/2506.11060
Code Researcher的应用场景
- Linux内核崩溃修复:通过深度分析代码的语义、模式和提交历史,Code Researcher能够自动定位崩溃的根本原因,生成修复补丁。
- 企业级软件维护:Code Researcher能自动化处理企业级软件中的崩溃问题,通过深度研究代码库和提交历史,快速生成修复补丁。
- 开发者辅助工具:Code Researcher可以作为开发者辅助工具,提供崩溃的根本原因分析和修复建议。
- 自动化测试与持续集成:Code Researcher可以集成到自动化测试和持续集成环境中,自动检测和修复崩溃问题。