配置
.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。
执行参数
| 字段 | 默认值 | 含义 |
|---|---|---|
concurrency | 4 | 同时运行的审查任务数(1–32) |
taskTimeoutMinutes | 10 | 单个审查任务的时间上限 |
runTimeoutMinutes | 25 | 整次运行的时间上限 |
某个任务失败或超时不会导致整次运行失败,它负责的文件会被标记为 failed。
文件选择
ocra 会跳过:二进制文件、疑似密钥文件(.env、私钥、证书)、已删除的文件、媒体和压缩包、锁文件、第三方和生成的代码,以及过大的 diff。数据库迁移文件始终会被审查。
exclude:额外要跳过的 glob。include:即使会被当作生成代码或按扩展名跳过,也要审查的 glob。密钥文件永远无法被 include。
插件
runtime 指定使用哪个已注册的运行时。plugins 按包名或路径列出额外的插件,pluginSettings.<插件名> 存放各插件自己的设置。详见插件。