Start learning →GlossaryLearning record

Agent Harness 基础:循环与控制

本课程讲解 Agent 的 harness——模型之外那层真正让 Agent 跑起来的控制代码:驱动「模型→执行工具→把结果喂回去→再问一次」的循环,决定这个循环什么时候停、失控了怎么兜底、以及人怎么在中途打断和转向。课程围绕单个 Agent 的执行循环展开,最后带你手写一个带停止条件、预算上限、空转检测和人工审批阀的最小 harness。适合已完成本系列前 6 门课的读者——你需要理解一次工具调用的往返(stop_reason: "tool_use" / tool_result)、Agent 的记忆与上下文窗口、以及多 Agent 的基本分工。本课不涉及任何特定框架的 API 教程(不教 Claude Agent SDK、LangChain 的具体用法),不涉及多 Agent 编排(那是本系列的另一门课)、也不涉及评测与回归(留给后面的验证课);聚焦的是「循环本身怎么被控制住」这一层。

课程大纲

  1. 什么是 Harness:模型之外的那层控制代码
  2. 核心循环:从一次往返到持续运转
  3. 停止条件:Agent 什么时候该收手
  4. 失控与兜底:死循环、空转、预算耗尽
  5. 干预与操控:打断、转向、人在环
  6. 实战:手写一个带控制的 Agent Harness

学习目标

完成本课程后,你将能够:

  • 说清楚 harness 和模型的分界线,理解为什么「同样的模型、不同的 harness,结果可能天差地别」
  • 手写出驱动 Agent 的核心循环,并解释 stop_reason 如何决定循环继续还是停下
  • 为一个 Agent 设计一组显式的停止条件,而不是只依赖模型自己说「我说完了」
  • 识别死循环、空转、预算耗尽、误差累积这几种循环失控模式,并给循环装上对应的兜底
  • 判断人工检查点该放在循环的哪一步,把不可逆操作挡在自动执行之前
  • 从零搭出一个带停止条件、最大轮次、预算上限、空转检测和审批阀的最小 harness

前置要求

  • 完成本系列前 6 门课,或具备等同基础
  • 理解一次工具调用的完整往返:模型返回 stop_reason: "tool_use"、宿主执行工具、把 tool_result 拼回对话
  • 了解上下文窗口是有限资源、历史会不断累积(本系列第 5 门课「记忆与状态」)
  • 能读懂基础的 JavaScript / Node.js 代码(第 6 课需要跟着写)
  • 不需要机器学习或模型训练背景

预计学习时间

约 3-4 小时,包括每课的动手练习