---
url: /zh/build/showcase/ai-review.md
description: 介绍如何在 CNB 流水线中集成 AI 代码评审能力，支持通过 AI 评审插件自动触发或通过 NPC 事件按需触发两种方式，帮助提升代码质量。
---
借助 AI 能力，你可以让流水线自动对 PR（Pull Request）进行代码评审，快速发现潜在问题、提升代码质量。

云原生构建支持两种方式实现 AI 代码评审：

| 对比项 | AI 评审插件 | NPC 事件 |
|--------|-----------|---------|
| 触发方式 | PR 事件时流水线自动触发 | 在 PR 评论中提及 NPC 按需触发 |
| 适用场景 | 每次 PR 都自动评审 | 按需评审，灵活控制 |
| 配置方式 | 当前仓库 `.cnb.yml` | 无需配置（自定义 NPC 在 NPC 仓库定义） |

两种方式均使用 `CNB_TOKEN` 环境变量调用平台 API，提及自定义 NPC 角色时该令牌代表被提及的角色身份。

## 使用 AI 评审插件

使用 [`cnbcool/code-review`](https://cnb.cool/cnb/plugins/cnbcool/code-review) 插件，在 PR 事件触发时自动进行代码评审。该插件基于 CodeBuddy CLI，支持多种编程语言，自动过滤非代码文件，并将评审结果以评论形式提交到 PR。

### 配置示例

```yaml title=".cnb.yml"
main:
  pull_request:
    - stages:
        - name: 代码评审
          image: cnbcool/code-review:latest
          settings:
            comment: true
            max_comments: 10
            fail_on_critical: false
```

更多参数配置请参考 [cnbcool/code-review 插件详情](https://cnb.cool/cnb/plugins/cnbcool/code-review)。

## 通过 NPC 事件触发

在 PR 评论中提及 NPC 角色，触发 `pull_request.comment@npc` 事件，由 NPC 流水线执行 AI 评审。

### 触发方式

* **系统 NPC**：在 PR 评论中提及 `@CodeBuddy`：

```text
@CodeBuddy 代码评审
```

* **自定义 NPC**：先[配置自定义 NPC 角色](../npc.md#自定义-npc)，然后在 PR 评论中提及：

```text
@cnb/feedback(评审专家) 代码评审
```

### 工作原理

1. PR 评论中提及 NPC 时，触发 `pull_request.comment@npc` 事件。
2. 系统加载 NPC 所属仓库的 `.cnb.yml`，执行对应的事件流水线。
3. 流水线使用 `CNB_TOKEN` 调用 AI 能力进行评审，结果以 NPC 身份提交到 PR 评论。

详细配置参考 [NPC 文档](../npc.md)。

## 注意事项

* 两种方式都需要确保流水线有权限访问代码仓库和提交评论。
* NPC 事件触发时，TOKEN 权限仅限于当前仓库。
* 如需在评审过程中修改代码，可开启 [NPC 工作模式](../npc.md#工作模式)。
