ocra

配置

.ocra/config.json 配置文件与环境变量。

ocra 从被审查仓库根目录的 .ocra/config.json 读取配置。所有字段都是可选的;未知字段会直接报错,避免拼写错误被悄悄忽略。

{
  "models": {
    "top": "google/gemini-3.1-pro-preview",
    "standard": ["google/gemini-3.5-flash", "google/gemini-flash-lite-latest"],
    "light": "google/gemini-flash-lite-latest"
  },
  "concurrency": 4,
  "taskTimeoutMinutes": 10,
  "runTimeoutMinutes": 25,
  "include": [],
  "exclude": ["legacy/**"],
  "runtime": "opencode",
  "plugins": [],
  "pluginSettings": {}
}

模型

模型写成 provider/model,provider 使用 OpenCode 的供应商 ID(例如 google、anthropic、openai)。每个层级可以写一个模型,也可以写一条降级链:

层级用途
standard审查员 agent
light辅助调用,比如给改动文件分组
top预留给最终裁决(M2)

模型过载、额度用完或拒绝请求时,任务会换到链上的下一个模型重试。同一次运行里失败两次的模型,之后会被直接跳过。凭证错误会立即停止,因为同一供应商的其他模型也会失败。

环境变量会覆盖配置文件,降级链用逗号分隔:

export OCRA_MODEL_STANDARD="google/gemini-3.5-flash,google/gemini-flash-lite-latest"
export OCRA_MODEL_LIGHT="google/gemini-flash-lite-latest"
export OCRA_MODEL_TOP="google/gemini-3.1-pro-preview"

供应商 key

key 只从环境变量读取,变量名用 OpenCode 里各供应商对应的名字,例如 ANTHROPIC_API_KEY、OPENAI_API_KEY。Google 支持 GEMINI_API_KEY、GOOGLE_API_KEY 和 GOOGLE_GENERATIVE_AI_API_KEY。

执行参数

字段默认值含义
concurrency4同时运行的审查任务数(1–32)
taskTimeoutMinutes10单个审查任务的时间上限
runTimeoutMinutes25整次运行的时间上限

某个任务失败或超时不会导致整次运行失败,它负责的文件会被标记为 failed。

文件选择

ocra 会跳过:二进制文件、疑似密钥文件(.env、私钥、证书)、已删除的文件、媒体和压缩包、锁文件、第三方和生成的代码,以及过大的 diff。数据库迁移文件始终会被审查。

  • exclude:额外要跳过的 glob。
  • include:即使会被当作生成代码或按扩展名跳过,也要审查的 glob。密钥文件永远无法被 include。

插件

runtime 指定使用哪个已注册的运行时。plugins 按包名或路径列出额外的插件,pluginSettings.<插件名> 存放各插件自己的设置。详见插件。

在 GitHub 上编辑

本页目录