> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kodus.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 自定义消息

> 为 Kody 配置个性化的开始和结束审查消息

## 概述

自定义 Kody 在代码审查开始和结束时发送的消息。此功能允许您个性化沟通风格并为团队添加特定的上下文或说明。

## 默认行为

当您没有自定义任何消息时,Kody 的工作方式如下:

1. **初始消息**:Kody 发送标准的开始审查消息
2. **建议**:Kody 提供所有代码审查建议
3. **最终消息**:Kody 用审查摘要更新初始消息

## 自定义消息行为

一旦您第一次编辑开始或结束审查消息,Kody 的行为将更改为:

1. **初始消息**:Kody 发送您的自定义开始审查消息
2. **建议**:Kody 提供所有代码审查建议
3. **最终消息**:Kody 发送您的自定义结束审查消息(不更新初始消息)

这创建了一个完整的时间线:**初始消息 → 建议 → 最终消息**

## 消息配置选项

### 消息行为

使用**消息行为**下拉菜单来决定 Kody 何时发布您的自定义
开始和结束消息:

* **重要提示**：消息只会在审查实际运行时发送。\
  如果审查节奏为**手动**，消息仅会在有人运行 `@kody start-review` 时发送。

* **每次推送**:Kody 在拉取请求打开时发布开始消息,并在每次触发审查的新推送后重复开始/结束对。

* **仅在打开时**:Kody 仅在首次审查运行后发送一次开始和结束消息。如果审查节奏为**手动**，首次审查运行发生在执行 `@kody start-review` 时。未来的推送只添加审查建议以及通常的反应,以便作者知道审查已重新运行。

* **关闭**:自定义消息已禁用。Kody 仍会运行审查并发布建议,但不会发送开始或结束消息。

当行为是 `每次推送` 或 `仅在打开时` 时,Kody 使用您填写的任何模板。如果您只自定义开始消息,则只发送该消息;结束消息也是如此。这保持了熟悉的**初始消息 → 建议 → 最终消息**时间线,只要行为允许发布消息。

**示例（手动审查节奏）**\
PR 打开 → 暂无消息\
`@kody start-review` → 开始消息 → 建议 → 结束消息

## 动态上下文

您可以使用**添加上下文**按钮通过动态上下文增强自定义消息。这允许您包括:

### changedFiles

已更改文件的摘要,显示每个文件的添加和删除。这提供了拉取请求中修改内容的详细分解。

### changeSummary

拉取请求中所有更改的全面摘要,概述整个修改范围。

### reviewOptions

反映团队配置的审查设置,显示审查启用或禁用了哪些分析类型。

### reviewCadence

提供确切的后续审查策略,以便作者知道第一次自动审查后会发生什么:

* **自动**:Kody 在每次推送后立即重新审查。
* **自动暂停**:Kody 自动重新审查推送,但如果检测到"推送突发"(例如,根据您的阈值,15 分钟内 3 次推送),它会暂停后续审查,直到您恢复它们。节奏上下文包括推送和时间限制,以便团队知道何时可以触发暂停。
* **手动**:Kody 等待某人运行 `@kody start-review` 后再进行另一次审查。

### reviewScope

显示本次 pull request 的审查使用了哪个配置级别 —— 全局、代码库还是目录 —— 让作者知道
实际生效的是哪套设置。

### agentPrompt

<Note>
  **仅用于结束审查消息。** 它会打包本次审查的行级评论建议,而这些建议在审查跑完之前并不存在 ——
  因此它不会出现在开始消息中。
</Note>

把本次审查的所有建议打包成一个可复制粘贴的提示词块(渲染为可折叠的 **Open Agent Prompt**)。
把它粘贴到你的编码代理中,即可一次性应用本次审查的全部修复。

<Info>
  当 Kody 发送消息时,这些上下文变量将自动填充来自您的拉取请求的实际数据。
</Info>

<Note>
  在 `kodus-config.yml` 中,这些标记要带 `@` 前缀书写 —— `@changedFiles`、
  `@changeSummary`、`@reviewOptions`、`@reviewCadence`、`@reviewScope`、`@agentPrompt` ——
  可以放在消息 `content` 内的任意位置。网页界面中的 **Add Context** 按钮会为你插入相同的标记。
</Note>

## 错误消息

与开始/结束消息这一对相互独立,你还可以在审查**失败**时,把自己的文本追加到 Kody 发布的
评论中 —— 例如未配置 BYOK 提供商,或提供商拒绝了请求时。

* **Off**(默认)—— Kody 按原样发布标准错误评论。
* **Active** —— 你的文本会追加到标准错误评论下方。

用它把人引导到对应的内部负责人或 runbook,而不是只留下一个笼统的失败提示:

```yaml theme={null}
customMessages:
    errorReviewMessage:
        status: 'active' # off | active
        content: |
            审查失败?请联系 #platform-eng —— Kodus API 密钥由我们负责。
```

把 `content` 留空则保持默认错误消息不变。

## 全局设置

两个开关,作用于 Kody 的所有评论,而不只是自定义消息:

| 设置                     | 默认值     | 作用                                                                                   |
| ---------------------- | ------- | ------------------------------------------------------------------------------------ |
| `hideComments`         | `false` | 把每条审查消息都作为隐藏/折叠评论发布。界面中显示为 **Post as hidden comment**。**仅 GitHub** —— 在其他平台上该开关会被隐藏。 |
| `suggestionCopyPrompt` | `true`  | 为建议添加"复制为提示词"的能力,便于你粘贴到编码代理中。**Bitbucket 上不可用。**                                     |

```yaml theme={null}
customMessages:
    globalSettings:
        hideComments: false # 仅 GitHub
        suggestionCopyPrompt: true # Bitbucket 上不可用
```

<Note>
  您始终可以通过禁用两个自定义消息或清除消息内容来恢复到默认行为。
</Note>
