代码 Agent6 分钟阅读

AI 代码审查 Agent:在提交前发现潜在问题

一个用于辅助 Code Review 的 AI Agent,关注正确性、安全性、性能、可维护性和测试覆盖。

作者与复核STS2Hub 编辑组AI 工作流与内容站实践编辑

本文速览

主题
代码 Agent
内容类型
Agents
阅读时间
6 分钟阅读
你将获得
可配置的助手角色与使用边界

AI 代码审查 Agent 适合在提交 Pull Request 前做一轮自查。它可以帮助开发者从正确性、边界条件、安全性、性能、可维护性和测试覆盖等角度检查代码。但它不应该替代真实测试,也不应该把风格偏好包装成严重问题。

一个好的代码审查 Agent 应该关注“会不会出错”,而不是泛泛地说“建议增加注释”“代码可读性有待提升”。每条问题都应说明触发场景、影响范围和修复建议。

Agent 角色

AI 代码审查 Agent 是一个辅助开发者进行代码质量检查的智能体,适合在 Pull Request 前进行自查。

它应该像一个严格但务实的 reviewer:先理解变更意图,再找真实风险;能验证的问题优先,主观建议靠后。

工作目标

  • 找出真实潜在 Bug
  • 检查边界条件
  • 识别安全和权限风险
  • 提出测试建议
  • 改善可维护性
  • 标记无法确认但需要人工验证的问题

适合场景

适合:

  • PR 提交前自查
  • 重要功能上线前检查边界条件
  • 重构后检查行为是否改变
  • API、权限、数据处理逻辑审查
  • 测试用例补充建议
  • 构建失败或回归问题定位

不适合:

  • 让 Agent 自动合并代码
  • 没有上下文,只粘贴孤立函数就要求完整判断
  • 用 AI 审查替代测试、lint、类型检查和人工 review
  • 要求 Agent 生成攻击、绕过检测或破坏性利用步骤

系统提示词

你是一名高级代码审查 Agent。请以严格、务实、可验证的方式审查代码。

审查顺序:
1. 判断代码意图和变更范围。
2. 检查正确性和边界条件。
3. 检查安全、权限和数据泄露风险。
4. 检查性能和资源使用。
5. 检查可维护性和测试缺口。
6. 区分必须修复、建议修复和需要验证。

输出问题时必须说明:
- 具体文件和位置
- 触发场景
- 影响
- 为什么这是问题
- 建议修复方式
- 建议测试方式

不要输出泛泛建议。没有证据的问题标记为“需要验证”,不要当作确定缺陷。

输入要求

每次审查建议提供:

  • diff 或完整代码
  • 相关上下文
  • 预期行为
  • 运行或测试结果
  • 约束条件
  • 重点关注领域,例如安全、性能、兼容性

输入模板:

请作为代码审查 Agent 审查以下变更。

变更目标:
[填写]

预期行为:
[填写]

已运行检查:
[例如 npm run build / npm test]

重点关注:
[正确性 / 安全 / 性能 / 测试 / 兼容性]

代码 diff:
[粘贴]

审查维度

维度 重点问题
正确性 是否符合预期行为,边界条件是否处理
安全 权限、输入校验、敏感信息、依赖风险
性能 重复计算、N+1、内存、构建体积
可维护性 复杂度、重复逻辑、命名、模块边界
测试 是否覆盖正常、异常和边界场景
发布风险 是否影响已有路由、配置、环境变量或数据迁移

使用建议

让 Agent 先审查,再让它根据审查结果生成测试用例,可以形成更完整的质量闭环。

建议两轮使用:

  1. 第一轮:只找问题,不急着改代码。
  2. 第二轮:针对确认的问题生成最小修复和测试建议。

使用案例:让 Agent 审查一个 Pull Request

场景

开发者完成了搜索页功能,涉及页面、组件和构建脚本。希望 AI Agent 在提交前从多个角度审查。

示例任务

请审查这个 Pull Request。重点关注:
- 搜索页是否能在静态构建后正常使用
- 是否有无效链接
- 是否影响现有页面
- 是否需要补充测试或文档

变更文件:
- src/pages/search.astro
- src/components/SearchBox.astro
- package.json

已运行:npm run build 通过

Agent 工作过程

Agent 应先理解变更范围,再查看相关文件,最后输出必须修复、建议修复和测试建议。对于无法确认的问题,应明确说明需要运行构建或人工验证。

输出示例

## 必须修复
暂无确认的阻断问题。

## 建议验证
1. 静态构建后的搜索索引是否包含新页面。
触发场景:用户在生产环境搜索新文章标题。
建议验证:运行构建后检查 Pagefind 输出,并在预览环境手动搜索。

2. 空查询状态是否有清晰提示。
触发场景:用户打开搜索页但未输入关键词。
建议修复:增加“输入关键词开始搜索”的提示。

## 建议测试
- 搜索已有文章标题
- 搜索不存在关键词
- 移动端输入和清空关键词

常见失败输出

失败 1:泛泛建议

建议提高代码可读性,增加注释。

这不是有效审查。有效问题应该具体到位置和影响。

失败 2:把风格偏好当 Bug

函数名不够优雅,属于严重问题。

命名可以建议优化,但除非导致误用或维护风险,否则不应列为严重缺陷。

失败 3:没有复现路径

这里可能有 bug。

应该补充:什么输入、什么状态、会得到什么错误结果。

失败 4:忽略已运行测试

如果用户已经提供 npm run build 通过,Agent 不应继续猜测“可能无法构建”,除非有新的证据。

变体 Prompt:生成测试用例

请根据以下代码变更和审查结果,生成测试用例建议。

要求:
- 覆盖正常路径、异常路径和边界条件
- 每个测试说明输入、步骤、预期结果
- 区分自动化测试和人工验证
- 不要求引入大型新测试框架,除非必要

变更说明:
[填写]

审查发现:
[粘贴]

变体 Prompt:审查修复是否完整

请检查下面的修复是否真正解决了原始问题。

原始问题:
[填写]

修复 diff:
[粘贴]

要求:
- 判断是否修复根因
- 是否引入新问题
- 是否需要补测试
- 如果无法确认,请说明需要运行什么验证

安全边界

AI 代码审查可以帮助发现权限、输入校验、敏感信息泄露等防御性问题。对于安全相关审查,应聚焦修复建议、风险说明和验证方式,不应生成破坏性利用、绕过检测、批量攻击或未授权测试步骤。

人工检查清单

  • Agent 是否理解了变更目标?
  • 每条问题是否有具体触发场景?
  • 是否区分必须修复和建议优化?
  • 是否避免把风格偏好当严重问题?
  • 安全建议是否聚焦防御和修复?
  • 是否给出测试或验证方式?
  • 已运行的检查结果是否被纳入判断?
  • 最终合并是否由维护者确认?

使用边界

不要让 Agent 自动合并代码。它适合做审查和建议,最终合并仍应由维护者确认。AI 审查的价值在于发现遗漏和组织检查维度,但最终质量仍取决于测试、人工 review 和真实运行环境验证。

You may need

你可能还需要

按任务找更多 →

Feedback

这篇内容对你有帮助吗?

你的反馈会帮助我们优先更新过时内容、补充更好用的 Prompt。