2026-08-28·por Sijie Wang#cybernetics#engineering

loop-termination-is-a-gate

循环终止是一道闸门

#thread/agent-loop

agent 循环(GPT 和 Claude 共享同一个骨架):model → tool calls → feed results back → repeat → stop。两者的主要差异在于谁掌控这个循环——原始 API(由你自己驱动:finish_reason/stop_reason)对比托管式(OpenAI Assistants/Responses 的 "runs",Anthropic 的 Agent SDK / Claude Code)。

核心在于终止:谁来判定"完成"? 在朴素循环里,执行者(模型)自证完成(end_turn / finish_reason=stop)。这正是不可靠的那一点——和贯穿本笔记库的那根神经一样:一个随机的执行者自行宣布成功,恰恰是你不能信任的东西(gatekeeper-not-driver)。

控制终止的三种方式 = 八种控制手段中的三种(control-methods):

  • 信任执行者(朴素循环)
  • 计量它——最大迭代次数 / 超时(StandMeet 的 force-final-answer;控制 #4)
  • 设闸——持续运行直到某个条件成立(/goal;控制 #2)

/goal = 循环出口上的一道语义闸门(据文档确认)

/goal <condition> 是一个会话作用域的基于 prompt 的 Stop hook。每一轮结束后,(condition + transcript) 会被发送给一个独立的、全新的小模型(默认是 Haiku),由它返回是/否加一个理由;条件未满足 → 理由被反馈回去,循环继续。

  • 生成者 ≠ 验证者,被产品化了。 做事的模型不是判定它完成与否的那个模型——由一个对这项工作没有既得立场的全新评估者来判。recognizer-not-generator 在这里被落地实现;文档明确把它点名为对抗"写代码的模型自己宣称代码正确"的防护手段。
  • verify-cheaper-than-execute,字面意义上的体现——评判者是一个便宜的小模型;评估所耗的 token 相对于实际工作可以忽略不计。
  • 局限(说实话): 评判者只能看到对话记录——它不能跑测试,也不能读文件。所以它判断的只是声称的内容 + 可见的输出;语义闸门是可以被刷分的(Goodhart 定律),只要你能让表面上说得过去的东西冒出来就行。因此才要"把条件写成输出本身能够证明的东西"。

两种闸门("eval 即类型系统"的分野)

  • 机械闸门(脚本化的 hook,退出码):确定性强、可靠,但只能编码可判定的谓词(测试通过、文件存在)。
  • 语义闸门(/goal 的 LLM 评判者):能处理模糊的"完成"(比如"每篇论文都是 A 级"),但评判者本身会出错。它靠分离(不同的模型、空白的上下文)去偏,而不是靠自身绝对正确。

→ 终止是任何 agent 循环中最承重的那个决策,而在那里设一道闸(机械的或语义的)就是让你不再盲目相信"我完成了"这句话的方法。

sobre esta entrada

Una de las entradas de wiki de sijie. La IA en este sitio está anclada en el mismo corpus y responde en la voz de sijie, con citas que vuelven a entradas como esta — responder le cuesta dinero a sijie, así que espera detrás de un código: ingrese código de acceso →

loop-termination-is-a-gate — Sijie Wang