跳到正文
全部 31 篇FREN中文
目录
第 5 部分 · 第 4 篇,共 5 篇 难度:进阶 阅读时间:13 分钟

审查、审计、加固

agent 写得飞快,您的本职因此变成了把关。审查 diff、审计质量、把安全过一遍筛子的好做法,配合 Claude Code、Codex、OpenCode 或任意 agent 都适用。

本文目录
  1. 011. 系统性地审查 diff
  2. 022. 质量审计
  3. 033. 安全审计
  4. 04把它变成习惯
  5. 05常见问题

要点速览

用上代码 agent 之后,您的工作变成了核查:每个 diff 接受之前先审一遍,定期做质量审计,每次上线前做一次安全审计。Claude Code 自带 /code-review(别名 /review)来找出 diff 里的 bug,/simplify 处理代码质量,/security-review 查找安全漏洞;Codex 在会话里有 /review,在命令行里有 codex review;用 OpenCode 的话,就把这些做成可复用的命令。请让一个与写代码时不同的模型来审,并且在认证、支付和个人数据上始终保留人工审阅。

请先完成: 技能:把您的工作流自动化

一个 agent 出代码的速度快得离谱。这是它的强项,也正是这一点把您的角色挪了位。您不再是逐行敲代码的那个人;您是把关核对的那个人。一段生成得又快又多、还自信满满的代码,值得和手写代码一模一样的审查认真劲儿。也许更甚,因为 agent 从不怀疑自己。

好消息是:agent 同时也是一个出色的核对工具。我们把它掉转过来对付它自己的成果。下面这三道关,请当成条件反射。

1. 系统性地审查 diff

那条已经在本站随处遇到的金科玉律:接受之前先读 diff。git diff 会精确地告诉您改了什么。您只放行您看懂的部分;其余的,您就追问「为什么这么选?」。

但您也可以把第一道关交给一个专职 agent, 一个审查员,去抓那些疲惫的眼睛会漏掉的东西:

Claude Code 自带 diff 审查。/code-review(或它的别名 /review)会读取当前的改动并查找 bug:

/code-review              # 审查当前 diff
/code-review high         # 更深入、更耗时的审查
/code-review --fix        # 随后应用找到的修复

也可以给它一个 pull request 编号或一个分支。或者用自然语言要求它:「把当前 diff 跟基准分支比对一下,按 文件:行号 列出 bug 和回归,没有我的同意不要改任何东西」。

2. 质量审计

bug 之外,还有代码的健康度:它可读吗、好维护吗、有测试吗?定期要一次质量审计, agent 很擅长发现那些正在悄悄腐烂的东西:

  • 重复和死代码,该抽取的复制粘贴,不再被用到的函数。
  • 复杂度,又臭又长的函数、读不下去的嵌套、那些拆开会更好的部分。
  • 命名和一致性,误导人的名字、各行其是的约定。
  • 测试覆盖,那些没被测、却本该被测的部分。

在 Claude Code 里,/simplify 自带了其中一部分工作:它从复用、简化和效率的角度审查改动,然后应用修复。它不找 bug,那是 /code-review 的事。Codex 和 OpenCode 没有现成的质量审计命令:把上面的清单写成指令交给它们,例如 codex exec "对仓库做质量审计:重复代码、死代码、复杂度、命名、缺失的测试。不要修改任何东西。"(在非交互模式下,Codex 默认是只读的),或者做成一个技能。

3. 安全审计

这是最常被跳过的一道关,也是被忽视时最伤人的一道,尤其在一台从外部可达的机器上。在把任何东西放上线之前,明确地要求一次安全审查:

已完成 0 步,共 3 步 勾选记录只保存在此浏览器中。

  1. 跑一次有针对性的审计

    在 Claude Code 里,/security-review 会把您分支上的改动与远程仓库的默认分支对比分析(需要一个名为 origin 的远程仓库),指出注入、认证问题和数据泄露。OpenAI 这边,Codex Security 可以对仓库做安全扫描(npx @openai/codex-security scan .),但除了 ChatGPT 账户,还需要开通 Codex Security 权限。换成任何 agent,用自然语言下指令也行:

    「对这段代码做一次安全审查。查找:注入(SQL、命令)、明文密钥、有漏洞的依赖、未校验的输入、过宽的权限,以及一切无需认证就暴露在外的东西。按严重程度分级。」

  2. 敏感点亲手核一遍

    agent 的审计帮您把大头清掉,但要紧的部分您自己再交叉核对一遍:代码里没有任何密钥(见 保护访问安全)、用户输入都做了转义、没有任何不该公开的东西被公开暴露。

  3. 盯紧依赖

    一半的漏洞来自第三方库。让 agent 去核对版本、报出已知漏洞,并把您的依赖保持在最新。

把它变成习惯

诀窍在于,只要您把这三道关自动化,它们几乎不花您什么力气。先用好 agent 自带的命令(Claude Code 里的 /code-review、/simplify、/security-review,Codex 里的 /review 和 codex review)。它们覆盖不到的部分,比如您自己的标准、您的技术栈、您反复踩的坑,就写成您自己的 技能(一个按您的方式做的 /audit),并把它们变成每次上线前的固定步骤。

常见问题

AI agent 写的代码可以不审就直接相信吗?

不可以。写得快、写得多、又充满自信的代码,和手写代码一样需要认真审阅,甚至更需要,因为 agent 从不怀疑自己。不审就放行,您的产出和 bug 会以同样的速度一起翻倍。请在接受之前读一遍 diff,只放行您看得懂的部分;其余的,问问 agent 为什么这样选择。

测试全部通过,就能证明 agent 写的代码没问题吗?

不一定。agent 可能写出什么真实行为都不验证的测试,只为了让结果变绿。请挑几个测试读一读,看它们是在验证正确的行为,还是仅仅存在而已。一个永远不会失败的测试,什么也保护不了。

代码质量审计应该检查哪些方面?

四类问题:重复代码和死代码,复杂度(冗长的函数、难以读懂的嵌套),命名和约定是否一致,以及测试覆盖率。agent 非常擅长发现那些正在慢慢变质的地方。请定期做这项审计,或者在某个模块开始显得陈旧时就做。

代码安全审查应该找哪些问题?

注入(SQL、命令)、明文存放的密钥、有漏洞的依赖、未经校验的输入、过宽的权限,以及任何无需认证就暴露在外的东西,并按严重程度排序。agent 的审计负责粗筛,关键几点请您亲自核对:代码里没有密钥,用户输入已转义,不该公开的东西一样都没有公开。一半的漏洞来自第三方库,所以也请保持依赖为最新版本。

Codex 和 OpenCode 有类似 Claude Code 里 /simplify 的质量审计命令吗?

没有,两者都不自带现成的命令。请把要检查的清单作为指令交给 agent(重复代码、死代码、复杂度、命名、缺失的测试),并要求它什么都不改动;也可以把它做成可复用的 skill。在非交互模式下,Codex 默认保持只读,正适合做审计。

本文涉及的术语: Claude CodeCodexOpenCode

发现错误?

命令失效了,价格变了?

这些工具每个月都在变。请告诉我这篇文章哪里不对,我会改正并更新日期。

只保留页面、您的留言和选填的联系方式,别无其他。

第 30 / 31 篇 · 第 5 部分 还没有读过任何一篇 打开文章目录