第 0-6 课
Agent Loop 与 Harness:让模型真正持续工作的运行环境
参考:来源 E · Anthropic / Clawdbot 案例
学完你能做到
- 理解 loop 是 Agent 的最小运行单位
- 理解 harness 不是模型,而是承载模型工作的运行层
- 能用 Clawdbot 识别一个真实 Agent 系统的组成
Agent loop:观察 → 判断 → 调用工具 → 再观察
先建立直觉
你让助理“找出本月销量下降原因”。他先看报表,发现缺少渠道数据;去查渠道数据后,又发现需要和上月比较;信息足够后才写结论。这不是一段一次性回答,而是一圈一圈地工作。
示例任务:“比较两家公司的最新营收,并注明来源。”点击下一步看一个可靠 loop 应该留下什么。
- STATE状态
目标:比较 A、B 公司最新营收;尚无证据。
状态是应用保存的,不是期待模型永久记住。
Harness 工程:模型的“工作台”和“安全员”
先建立直觉
模型像一个很会思考的员工;harness 是办公室系统:给他任务单、打开允许的工具、记录工作过程、控制预算,并在他要花钱或发送消息前要求确认。
案例:Clawdbot 能教我们什么(不是要求你立刻安装它)
Clawdbot 是一个可在个人设备上运行、通过多种消息渠道交互的个人助手项目。它的价值不在于某个名字,而在于它把真实 Agent 系统会遇到的部件放在了一起:消息渠道、Gateway 控制面、会话、工具、模型选择与回退、权限策略和本地运行环境。课程里把它当作“拆系统”的案例,而不是当成必须照抄的框架。
| 在案例中看到的东西 | 对应课程概念 | 初学者该问的问题 |
|---|---|---|
| WhatsApp / Telegram / Slack 等入口 | 产品接口层 | 谁可以向 Agent 下达任务? |
| Gateway 与会话 | 状态、日志、编排入口 | 任务中断后如何继续和追踪? |
| 模型选择、认证轮换、回退 | 模型路由与可靠性 | 首选模型失败后是否安全地换模型? |
| 工具与技能 | 受控执行层 | 模型能调用哪些工具,参数和权限谁检查? |
| DM 配对和允许名单 | 安全边界 | 陌生人发来的内容能否触发动作? |
真实项目会变、名字也可能变;但“入口—上下文—loop—工具—状态—安全—观测”这张检查表不会过时。
案例推演:一个夜间研究 Agent 如何持续十二小时
任务包括搜索、下载、阅读、去重、比较和写报告。模型一次调用只能决定当前一步;真正让任务持续的是 Loop、状态机、重试、超时、检查点和预算。
本节追问:模型回答结束之后,谁决定任务完成、继续、重试还是停止? 先不要急着看结论。沿着下面四步,逐项区分输入、决策、证据和失败信号。
| 阶段 | 本步要做的决定 | 什么算证据 | 最常见的失败 |
|---|---|---|---|
| 读取状态 | Harness 提供目标、当前节点、预算和可用工具 | 每轮输入都有确定的运行状态 | 只把上一轮自然语言原样续写 |
| 请求决策 | 模型选择一个受约束的下一动作 | 动作符合工具 Schema 与权限 | 允许模型输出任意命令直接执行 |
| 观察更新 | 运行工具、验证结果并写回状态 | 成功与失败都有机器可读结果 | 工具报错后模型假装成功 |
| 判断终止 | 由完成条件、预算和安全规则共同决定 | 结束原因可解释且可恢复 | 只靠模型说“完成了” |
阅读方式:先遮住后两列自己回答,再用“证据”和“失败”两列检查理解。
常见误解
写一个无限 while 循环不断调用模型
实际上
可观察症状:重复调用、费用失控、错误状态被持续放大。
更可靠的修复:把循环变成有状态、有预算、有终止条件且可检查点恢复的 Harness。
案例工作坊 · 建议真正动手完成
25 分钟- 为研究任务写出状态字段:目标、进度、证据、预算和错误。
- 设计正常完成、预算耗尽和安全中止三种终止条件。
- 描述进程重启后从哪个检查点恢复。
查看参考答案
LLM 提议动作,Harness 负责让动作在真实系统里可持续、可约束、可观察。Agent Loop 是决策闭环;Harness 是承载这个闭环的工程运行环境。
迁移检查:换一个场景还会不会
谁最适合判断“重试已超过三次,停止并告警”?