作为负责服务器、发布流水线、监控告警和故障处理的运维或 SRE,你可能也有同感:告警多、脚本杂、变更文档和故障复盘写起来费时,夜间排障时更需要快速理清思路。代码评审耗时且容易流于形式,AI 可以先找出明显的问题,让人把精力放在设计和业务逻辑上。本文给出运维工程师用 AI 做代码评审的一套可直接照抄的做法:把改动的代码和背景说明交给 AI,指定评审维度和输出格式,让它按严重程度列问题,再由人判断。

使用场景

运维工程师每周要评审不少代码改动,比如和“完成两台数据库服务器的磁盘扩容”相关的提交。改动多的时候很难每行都仔细看,容易漏掉边界条件、异常处理和安全问题。尤其当技术负责人同时还在等“更新 Nginx 配置模板”的结果时,能把这部分工作提速,就能腾出精力处理更重要的判断。

工具选择

代码托管平台和编辑器中有不少 AI 评审工具,例如 GitHub Copilot 的代码评审、GitLab Duo、Cursor 以及各类开源的 AI 评审机器人;也可以把差异内容贴给对话助手。

案例:一次完整的使用过程(虚构)

先看一个虚构但很典型的例子。晓雯是一位负责服务器、发布流水线、监控告警和故障处理的运维或 SRE,这周手头的事情包括“处理 2 起磁盘告警和 1 起证书过期隐患”和“清理无主的云资源”,偏偏这时又需要做代码评审。晓雯没有从空白页开始,而是先花几分钟把相关材料整理好,按下面的提示词交给 AI,拿到初稿后对照原始资料逐条核对,再补上自己的判断。整个过程中,晓雯特别留意不把服务器 IP、账号口令、证书私钥和内部拓扑放进对话里。

操作步骤

  1. 准备改动说明:这次改动要解决什么问题
  2. 提供代码差异或改动后的文件
  3. 指定评审维度:正确性、边界条件、安全、性能、可读性
  4. 要求按严重程度分级输出,并给出修改建议
  5. 人工确认每条意见,AI 的意见不等于结论

提示词模板(可直接复制)

下面的提示词可以直接复制,按运维工程师的实际情况替换细节:

【背景】身份:负责服务器、发布流水线、监控告警和故障处理的运维或 SRE;平时主要和开发团队和技术负责人打交道。
请评审下面这段代码改动。

背景:完成两台数据库服务器的磁盘扩容,这次改动新增了一个按主机组查询“告警记录”的接口。
语言:Python(FastAPI)

评审维度:
1. 正确性和边界条件(空值、分页、时区)
2. 安全(注入、越权、敏感信息日志)
3. 性能(N+1 查询、缺少索引)
4. 可读性和可维护性

输出格式:严重程度(阻塞 / 建议 / 细节)| 位置 | 问题 | 修改建议
只指出确实存在的问题,不确定的请标注“需确认”。

代码:
(粘贴 diff)

示例输出(仅供示意)

下面是演示用的输出示例,其中的人名、数字和事项均为虚构,实际使用时请以你自己的资料为准:

严重程度位置问题修改建议
阻塞query_records 第 12 行用字符串拼接构造 SQL,存在注入风险改为参数化查询
阻塞接口入口未校验调用者是否有权访问该主机组的数据增加权限校验
建议第 20 行每条记录单独查询关联信息,存在 N+1 问题改为批量查询
建议日志打印了完整请求参数,可能包含敏感信息脱敏后再记录
细节第 5 行变量名 d 含义不清改为 record_date

需确认:page_size 未设上限,是否在网关层已限制?

注意示例中所有内容都是虚构的。实际使用时,AI 的输出质量取决于你提供的材料是否完整、要求是否具体。

避坑指南

  • 提供改动背景,否则 AI 无法判断逻辑是否符合需求。
  • 把团队的编码规范放进提示词,评审意见会更一致。

给运维工程师的特别提醒

排障时把日志片段、时间线和最近变更一起提供,让 AI 帮你列排查顺序。还有一点很关键:涉及删除、重启、改权限的命令,必须先确认影响范围并做好回滚准备,不能照抄执行。

还可以这样用

  • 安全专项:只关注注入、越权、敏感数据等安全问题。
  • 评审总结:汇总一段时间的评审意见,提炼团队常见问题。

相关阅读