OpenCode 代码审查完全指南:用 AI 编程助手自动化 Code Review 流程

引言

代码审查(Code Review)是软件开发中保证代码质量的重要环节,但传统的 Code Review 往往面临几个痛点:审查周期长、人工审查容易遗漏细节、团队规范执行不一致等问题。OpenCode 作为一款强大的 AI 编程助手 CLI 工具,不仅能帮你写代码,还能充当智能代码审查员,自动检查代码中的潜在问题、风格违规和安全漏洞。

本文将详细介绍如何利用 OpenCode 构建自动化代码审查工作流,涵盖从基础配置到高级技巧的完整实践。

一、为什么用 OpenCode 做代码审查

OpenCode 的架构设计让它天然适合代码审查任务。它通过 LSP 服务器深度理解代码结构,支持自定义规则系统(AGENTS.md),还具备上下文管理能力,可以一次性分析多个文件。

相比传统的 Code Review 工具,OpenCode 有以下优势:

上下文感知:它能够理解整个项目的代码结构,而非单文件分析

可自定义审查规则:通过 AGENTS.md 配置团队特有的编码规范

支持多种编程语言:借助 LSP 服务器,支持 JavaScript、Python、Go、PHP、Rust 等主流语言

交互式审查:发现问题后可以立即追问、深入分析

二、配置代码审查规则

首先,在项目根目录创建或编辑 .opencode/rules/code-review.md,定义代码审查的标准:

# Code Review Rules

## 通用规则
- 检查未使用的变量和导入
- 检查硬编码的敏感信息(密码、密钥、Token)
- 检查错误处理是否完善
- 检查函数复杂度是否过高

## 安全规则
- 检查 SQL 注入风险
- 检查 XSS 漏洞
- 检查不安全的文件操作
- 检查权限控制是否缺失

## 性能规则
- 检查 N+1 查询问题
- 检查内存泄漏风险
- 检查不必要的重复计算
- 检查大对象的不合理引用

然后在 AGENTS.md 中引用这个规则文件:

## Code Review 模式

当执行代码审查任务时,加载 .opencode/rules/code-review.md 中的规则。

审查流程:
1. 先理解代码的整体结构和功能
2. 逐文件检查代码质量
3. 汇总问题并按严重程度排序
4. 给出具体的修复建议

三、基础代码审查实战

3.1 单文件审查

最基础的用法是直接让 OpenCode 审查单个文件:

Review src/services/UserService.php for potential bugs and security issues.

OpenCode 会结合 LSP 分析结果,给出类似这样的回复:

## UserService.php 审查报告

### 严重问题
1. SQL 注入风险(第 45 行)
   - 使用了字符串拼接构造 SQL 查询
   - 建议使用参数绑定

### 建议改进
1. 未使用的导入(第 10 行)
   - `use Carbon\Carbon` 未被使用
   - 建议移除

3.2 多文件关联审查

对于跨文件的代码变更,可以一次性提供多个文件:

Review these files for consistency and potential issues:
- src/Controllers/OrderController.php
- src/Services/OrderService.php
- src/Models/Order.php

Focus on data flow and error handling between them.

OpenCode 会分析文件之间的调用关系,发现接口不匹配或数据流异常等问题。

3.3 PR/MR 审查

审查 Git 变更时,可以先查看 diff:

Run git diff main...feature-branch and review all changes.

OpenCode 会获取 Git diff 输出,逐段审查代码变更,确保新增代码符合项目规范。

四、自定义审查命令

通过 OpenCode 的自定义命令功能,可以创建一键审查快捷指令。在 opencode.json 中配置:

{
  "commands": [
    {
      "name": "review",
      "description": "审查当前分支的代码变更",
      "command": "git diff --cached && echo '---' && git diff HEAD --stat"
    },
    {
      "name": "review-all",
      "description": "审查整个项目的代码质量",
      "command": "echo 'Reviewing all source files for code quality issues...'"
    }
  ]
}

这样在终端中只需输入:

/review

OpenCode 就会自动获取暂存区的变更内容并进行审查。

五、代码审查最佳实践

5.1 分层审查策略

不要试图一次审查所有内容,而是分层次进行:

第一层:语法和类型检查 — 由 LSP 自动完成,OpenCode 汇总结果

第二层:代码风格检查 — 检查命名规范、代码格式

第三层:逻辑审查 — 检查业务逻辑是否正确

第四层:安全审查 — 检查潜在的安全漏洞

第五层:架构审查 — 检查设计模式和架构合理性

5.2 审查提示词模板

高效的审查需要好的提示词。以下是一些模板:

作为资深代码审查员,请审查以下代码:

[粘贴代码]

请从以下维度分析:
1. 功能正确性:是否存在逻辑错误?
2. 安全性:是否存在安全漏洞?
3. 性能:是否存在性能瓶颈?
4. 可维护性:代码是否易于理解和修改?
5. 规范遵从:是否符合 [语言/框架] 的最佳实践?

每个问题请标注严重程度(严重/主要/次要),并给出具体的修改建议。

5.3 结合 Git Hooks 自动化

将代码审查集成到 Git 工作流中,在 pre-commit 钩子中调用 OpenCode:

#!/bin/bash
# .git/hooks/pre-commit

echo "Running code review on staged changes..."
staged_files=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(php|js|py|go)$')

if [ -n "$staged_files" ]; then
  opencode "Review these staged files for critical issues: $staged_files"
fi

这样每次提交前都会自动审查,从源头拦截问题。

六、团队协作中的代码审查

在团队中使用 OpenCode 做代码审查时,AGENTS.md 就成了团队规范的最佳载体。将团队的编码规范写入 AGENTS.md,所有成员都能获得一致的审查标准。

## 团队编码规范(全员适用)

### PHP 规范
- 使用 PSR-12 编码标准
- 类型声明必须完整(PHP 7.4+)
- 禁止使用 `eval()`、`extract()` 等危险函数

### 数据库规范
- 所有 SQL 查询必须使用参数绑定
- 禁止在循环中执行数据库查询
- 大表查询必须加索引提示

这样当任何团队成员发起代码审查时,OpenCode 都会自动应用这些规范进行检查,确保团队代码风格统一。

七、总结

OpenCode 作为 AI 编程助手,在代码审查领域的应用潜力巨大。通过合理配置规则系统、自定义命令和 Git Hooks,可以将它打造成一个强大的自动化代码审查工具。与传统的人工 Code Review 相比,OpenCode 能更快地发现低级错误和安全隐患,让开发人员能专注于更高层面的架构和设计讨论。

关键要点:

  • 通过 AGENTS.md 和自定义规则文件定义审查标准
  • 利用自定义命令简化审查流程
  • 结合 Git Hooks 实现提交前自动审查
  • 分层审查提高效率和质量
  • AGENTS.md 作为团队规范的统一载体

代码审查不是为了找茬,而是为了提升团队整体代码质量。OpenCode 让这一过程更加高效和一致,值得每个开发团队尝试。