Auto-advisor 模式
@advisor 仅在阻塞性决策上提供独立的第二意见 —— 且仅在确有必要时(见 advisor 协议中的节俭规则)。非阻塞决策始终以声明假设的方式继续推进。
模式说明
| 模式 | 行为 |
|---|---|
| off(默认) | 不调度 @advisor;编排器独自决策。手动 @advisor 仍可用。 |
| lite | 调度 @advisor;向用户同时展示两方意见,由用户决定。 |
| full | 调度 @advisor;FACTUAL 类问题置信度 >= 8 → 自动执行(每会话最多 10 次,之后降级为 lite);否则走 lite 流程。 |
切换
/auto-advisor off
/auto-advisor lite
/auto-advisor fullauto-advisor-mode 插件在 LLM 看到命令之前就写入了配置,因此切换是代码级可靠的。
状态持久化
- 存储位置:
opencode.jsonc中的autoAdvisorMode字段——无隐藏状态文件、无环境变量。取值:off/lite/full。 - 解析顺序:项目配置(
opencode.jsonc或.opencode/opencode.jsonc)→off(默认)。纯项目级 —— 没有全局回退。 - 写入仅限项目级:
/auto-advisor <mode>在项目opencode.jsonc中更新该字段(保留注释与其他字段);永远不修改全局配置。 - 取值跨会话和跨进程持久化,作用域为单个项目。
Red-team 立场(对抗式设计审查)
一种可选的调度方式,@advisor 会反对提案而非平衡选项:
- 触发条件:用户明确要求("压测这个方案" / "red team this" / "唱反调"),或编排器在不可逆设计决策前自动触发(schema 迁移、公开 API 契约、认证重构、破坏性数据操作)。
- 输出:裁决(
HOLDS/HOLDS WITH CAVEATS/FAILS)+ 按严重性排序的攻击列表 + 钢铁人辩护。 - FAILS 时:编排器将攻击发回设计负责人要求反驳/修订,然后向用户同时展示攻击和反驳。
- 自动执行隔离:red-team 输出不携带置信度分数;代码级守卫抑制所有自动执行指令 —— 对抗式裁决永远不会触发 full 模式自动执行。