阿里巴巴团队日前开源发布基于人工智能驱动的代码审查 CLI 工具,该工具名为 Open Code Review (简称 OCR),其前身为阿里巴巴集团内部官方的 AI 代码审查助手,经过大规模充分验证后阿里巴巴将其孵化为开源项目对社区开放,开发者只需要自行配置 AI 模型端点后即可使用。
OCR 可以读取 Git Diff 并通过具备工具调用能力的智能体将变更文件发送至可配置的 AI 模型,生成具有行级精度的结构化审查意见,智能体可以读取完整文件内容、搜索代码库、检查其他变更文件以获取上下文从而进行深度代码审查,而非仅停留在表面的 Diff 进行反馈。

OCR 工具能解决以下问题:
覆盖不全:变更内容较大时常规的智能体倾向于偷懒并选择性的审查部分文件导致出现遗漏等问题。
位置漂移:报告的问题与实际代码位置常常无法对应,出现行号或文件漂移等问题。
无法稳定:基于自然语言驱动的智能体技能难以调试,审查质量因提示词的细微差异而大幅度波动。
这些问题的根源在于纯语言驱动的架构缺乏对审查流程的强约束,因此 OCR 工具的核心设计就是确定性工程 + 智能体混合驱动,其中确定性工程负责强约束,对代码审查场景中不能出错的缓解由工程逻辑而非语言模型来保证。
OCR 工具的工作逻辑:
精准的文件筛选:明确哪些文件需要审查、哪些文件应当过滤,确保真正重要的改动没有任何遗漏。
智能的文件打包:将关联文件归并为同一审查单元,每个包会作为子智能体执行任务,其上下文相互隔离。
精细化规则匹配:针对不同文件的特征匹配对应的审查规则,确保模型的注意力足够聚焦,从源头避免干扰。
提升内容准确性:独立的评论定位模块与评论反思模块,系统性提升 AI 反馈的位置准确性和内容准确性。
子智能体负责动态决策:
将智能体的优势集中发挥在真正擅长的地方 --- 动态决策以及动态召回上下文,针对代码审查场景深度优化的提示词模板可以在提升效果的同时有效降低 Token 消耗。
而场景化的工具集沉淀基于对大量线上数据中工具调用轨迹的深入分析,包括不同的工具调用频率分布、单一工具的重复调用率、新增工具对整体调用链路的影响等多维度分析,从而对通用智能体工具集进行取舍和拆分,最终沉淀出可以在代码审查场景下效果更稳定、行为更可以预期的专属工具集。
项目地址:
https://github.com/alibaba/open-code-review/blob/main/README.zh-CN.md

消息来源:GitHub
免责声明:以上内容来源于互联网,如有问题请联系本公众号删除,联系方式见公众号主页菜单。
夜雨聆风