智能体入门课
loop_and_harness零基础60 分钟

第 0-6 课

Agent Loop 与 Harness:让模型真正持续工作的运行环境

参考:来源 E · Anthropic / Clawdbot 案例

学完你能做到

  • 理解 loop 是 Agent 的最小运行单位
  • 理解 harness 不是模型,而是承载模型工作的运行层
  • 能用 Clawdbot 识别一个真实 Agent 系统的组成

Agent loop:观察 → 判断 → 调用工具 → 再观察

先建立直觉

你让助理“找出本月销量下降原因”。他先看报表,发现缺少渠道数据;去查渠道数据后,又发现需要和上月比较;信息足够后才写结论。这不是一段一次性回答,而是一圈一圈地工作。

示例任务:“比较两家公司的最新营收,并注明来源。”点击下一步看一个可靠 loop 应该留下什么。

  1. STATE状态

    目标:比较 A、B 公司最新营收;尚无证据。

    状态是应用保存的,不是期待模型永久记住。

1 / 7

Harness 工程:模型的“工作台”和“安全员”

先建立直觉

模型像一个很会思考的员工;harness 是办公室系统:给他任务单、打开允许的工具、记录工作过程、控制预算,并在他要花钱或发送消息前要求确认。

案例:Clawdbot 能教我们什么(不是要求你立刻安装它)

Clawdbot 是一个可在个人设备上运行、通过多种消息渠道交互的个人助手项目。它的价值不在于某个名字,而在于它把真实 Agent 系统会遇到的部件放在了一起:消息渠道、Gateway 控制面、会话、工具、模型选择与回退、权限策略和本地运行环境。课程里把它当作“拆系统”的案例,而不是当成必须照抄的框架。

在案例中看到的东西对应课程概念初学者该问的问题
WhatsApp / Telegram / Slack 等入口产品接口层谁可以向 Agent 下达任务?
Gateway 与会话状态、日志、编排入口任务中断后如何继续和追踪?
模型选择、认证轮换、回退模型路由与可靠性首选模型失败后是否安全地换模型?
工具与技能受控执行层模型能调用哪些工具,参数和权限谁检查?
DM 配对和允许名单安全边界陌生人发来的内容能否触发动作?

真实项目会变、名字也可能变;但“入口—上下文—loop—工具—状态—安全—观测”这张检查表不会过时。

案例推演:一个夜间研究 Agent 如何持续十二小时

任务包括搜索、下载、阅读、去重、比较和写报告。模型一次调用只能决定当前一步;真正让任务持续的是 Loop、状态机、重试、超时、检查点和预算。

本节追问:模型回答结束之后,谁决定任务完成、继续、重试还是停止? 先不要急着看结论。沿着下面四步,逐项区分输入、决策、证据和失败信号。

每一步都要回答:看到了什么?为何这样决定?怎样证明? 1 读取状态 Harness 提供目标、当前节点、预算和… 观察 → 决策 → 留证据 2 请求决策 模型选择一个受约束的下一动作 观察 → 决策 → 留证据 3 观察更新 运行工具、验证结果并写回状态 观察 → 决策 → 留证据 4 判断终止 由完成条件、预算和安全规则共同决定 观察 → 决策 → 留证据 完整案例链:不是记住名词,而是能够用证据作出下一步决定
四步案例推演。手机上可左右滑动查看;每个箭头都代表一次需要证据支撑的状态转换。
阶段本步要做的决定什么算证据最常见的失败
读取状态Harness 提供目标、当前节点、预算和可用工具每轮输入都有确定的运行状态只把上一轮自然语言原样续写
请求决策模型选择一个受约束的下一动作动作符合工具 Schema 与权限允许模型输出任意命令直接执行
观察更新运行工具、验证结果并写回状态成功与失败都有机器可读结果工具报错后模型假装成功
判断终止由完成条件、预算和安全规则共同决定结束原因可解释且可恢复只靠模型说“完成了”

阅读方式:先遮住后两列自己回答,再用“证据”和“失败”两列检查理解。

常见误解

写一个无限 while 循环不断调用模型

实际上

可观察症状:重复调用、费用失控、错误状态被持续放大。

更可靠的修复:把循环变成有状态、有预算、有终止条件且可检查点恢复的 Harness。

案例工作坊 · 建议真正动手完成

25 分钟
  1. 为研究任务写出状态字段:目标、进度、证据、预算和错误。
  2. 设计正常完成、预算耗尽和安全中止三种终止条件。
  3. 描述进程重启后从哪个检查点恢复。
查看参考答案

LLM 提议动作,Harness 负责让动作在真实系统里可持续、可约束、可观察。Agent Loop 是决策闭环;Harness 是承载这个闭环的工程运行环境。

迁移检查:换一个场景还会不会

谁最适合判断“重试已超过三次,停止并告警”?