Skip to content

智能体循环工程

智能体循环工程关注的不是单次回答,而是智能体如何持续工作:什么时候启动、怎样推进、何时停止、如何验证、失败后如何恢复,以及资源预算如何被约束。

四种循环形态

常见循环可以分成四类,区别不在于“自主程度”本身,而在于谁负责触发下一轮、谁负责判断该停下:

形态触发方式停止条件适合场景
回合循环用户提示智能体判断完成,或需要补充上下文短任务、探索性任务、非固定流程
目标循环用户启动明确目标可验证条件达成,或达到轮次上限结果必须收敛到可测量状态的任务
时间循环本地间隔或云端计划任务用户取消,或被观察的工作完成轮询、周期输入、外部系统检查
主动循环事件或云端排程单个任务达成目标;例程持续运行直到关闭定义清晰、可无人值守的重复工作流

这些形态不是可以互换的命令。选择时先问两个问题:什么会启动下一轮?什么能证明这一轮应该结束?

两层运行时循环

pigo 将运行时拆成两个层次:

  • 单轮循环:向模型发起流式请求,累积内容块,执行工具,再把工具结果送回模型,直到该轮不再产生工具调用。
  • 多轮循环:在单轮结束后处理 steering、follow-up、停止条件和上下文压缩,判断是否启动下一轮。

这种分层让工具协议与任务级控制分开:单轮循环保证每个工具调用都有匹配结果,多轮循环负责目标、预算、用户干预和终止决策。智能体运行时契约则为两层提供统一事件和停止原因。

Claude Code 的循环原语

Claude Code 把循环拆成几种可组合的原语:

  • 普通回合把检查责任交回给用户。
  • goal 命令把停止条件交给验证器,适合“达到某个分数”“通过某些测试”这类可外部检查的目标。
  • loop 命令把下一次触发交给本地时间间隔,适合周期检查和轮询。
  • schedule 命令把时间循环搬到云端,适合离开本地会话后继续运行的例程。
  • 主动式工作流可以把计划任务、目标、动态工作流、自动模式和复审智能体组合起来,处理持续到来的 bug、issue、迁移或依赖升级。

从回合循环走向计划任务和主动循环后,智能体就不再只是对话工具,而是进入自动化系统的范畴。

关键工程约束

一个循环需要明确几件事:

  • 触发条件:由用户、时间、事件、CI、Webhook 还是调度器启动。
  • 停止条件:完成、预算耗尽、验证失败、重复失败、需要人工确认。
  • 验证机制:测试、lint、schema、链接检查、部署状态、业务指标。
  • 执行环境:本地会话、无头进程、CI、云函数或服务器任务。
  • 资源预算:时间、token、模型档位、API 额度、并发限制。

缺少这些约束时,循环很容易变成不可审计、不可停止、不可复现的自动化脚本。

成本和质量边界

循环越长,越需要把质量和成本写进系统,而不是靠最后一句提示补救:

  • 先用回合循环验证任务形状,再升级为持续循环。
  • 用技能、脚本和端到端检查让智能体能自我验证。
  • 确定性步骤优先交给脚本,减少重复推理消耗。
  • 让轮询频率匹配外部状态变化频率。
  • 大规模派生多个智能体前,先在小范围估算 token 和失败模式。
  • 用用量报告、目标轮次和工作流级 token 拆分定位预算消耗。

当某次循环产物不达标时,最好不要只修当前结果,而是把失败转成技能、测试、Hook、仓库规则或评审流程,让后续循环自动受益。

与其他页面的关系

智能体无头执行解决循环离开人工会话后的运行问题;智能体反馈循环解决执行后的验证问题;智能体成本控制解决持续运行的费用边界;智能体 Harness 工程把这些约束装进可维护的运行时。

持续记录 AI、产品、工程与个人实践之间的连接。