返回 FEED
AGENT2026-06-13

Claude Code 长任务模式:/goal /loop 与自主编码 Agent 的控制工程

@omarsar0 (elvis) · 2026-06-13 · ❤ 610

原文:Autonomous Long-Running Coding Agents

自主编码正在从「更好的提示」转向「更好的控制系统」。重要的转变是,工程师正在学习如何将 agent 包装在目标、评估器、循环和工件中,让它们在人类停止打字后继续工作。

这很重要,因为大多数严肃的工程工作跨越长时段:模糊的需求、隐藏的约束、部分失败、变化的上下文和反复验证。新前沿是围绕 agent 设计系统,让它能够规划、执行、检查工作、从错误中恢复,并在没有持续人工操控的情况下继续推进。

本文基于 DAIR.AI Academy 关于自主长运行编码 agent 的课程,我在其中讲解了 Claude Code 的 /goal 模式、较新的 /loop 命令、验证器、工件和实践中的编排模式。与 Codex 和 Claude Code 合作撰写。


从提示到目标设计

Claude Code 的 /goal 等特性背后的核心思想很简单。编码 agent 仍然是执行者,但人类不再与它逐轮交互。相反,人类指定期望的结束状态、证明成功所需的证据、不能违反的约束,以及(在可能的情况下)轮次和预算数量。

目标更像合约而非更长的提示。 弱目标给模型留下提前停止、走捷径或重新定义成功的空间——在对话记录中看起来合理但在真实系统中失败。强目标给 agent 一个可以反复自我测量的目标。

工程判断在这里仍然重要。最佳目标编码了模型否则会猜测的领域知识。对于研究实验,可能意味着目标基准分数、保留评估、要求的损失曲线和结果必须击败初始基线的规则。对于 UI 任务,可能意味着截图参考、具体布局约束和浏览器验证步骤。模型可以执行,但人类仍然定义「完成」实际意味着什么。

评估器成为一等组件

长运行 agent 需要除目标之外的第二个角色。评估器可以是另一个编码 agent、LLM-as-judge、脚本、测试套件、基准 harness 或它们的混合。关键设计选择是将评估器与任务匹配。

当成功是清晰的,确定性检查更好。类型检查、单元测试、lint 规则、集成测试和基准脚本应尽可能用于清晰表达条件。

当成功是模糊的,agent 评估器变得有用。脚本可以告诉你测试是否通过,但它不能轻易决定生成的研究报告是否连贯、实现是否忠实遵循论文、或 UI 是否符合设计意图。这就是评估器受益于语言、判断和有时视觉的地方。

实用模式:确定性检查作为地板,agent 评估作为高层审查。 这种组合减少幻觉成功,同时仍允许不适合干净测试断言的任务的自主性。

验证器定义信任边界

更深层的点是:自主性只有在系统有可靠验证器时才有效。编码 agent 可以生成计划、实现功能并解释为什么相信工作已完成,但解释不应被视为证据。证据来自 agent 不容易绕过的外部检查。

对于代码,验证器可能是测试套件、类型检查器、基准、浏览器运行、截图比较或可复现脚本。对于研究工作,可能是保留评估、复现的表格、损失曲线或改善基线的基准分数。对于设计工作,可能是参考截图加视觉审查步骤。验证器将长运行 agent 从自信的文本生成器转变为可以被信任处理更多时间的系统。

大多数捷径出现在这个边界。如果验证器模糊,模型通常会满足任务的最简单解释。如果验证器太窄,模型可能过拟合它而错过更广泛的意图。好的自主工作流因此需要分层验证:廉价的确定性检查捕获基本失败,高层审查捕获需要判断的失败。

前沿模型已经能在某种程度上实现验证,但基于我的研究,仍然存在明显的 OOD(分布外)问题——如果分配给 agent 的验证任务超出训练分布,模型会显著挣扎。验证器仍然是开放研究领域,但我预期更多公司将在此投入巨额投资。微调验证器的概念在企业中也需求很高。

循环让自主性持久

目标给 agent 方向,但循环让工作持续。这个区别很重要,因为模型经常在真实任务完成前停止。它们可能达到轮次限制、失去信心、耗尽上下文或决定部分解决方案足够。

循环是外层控制系统。 它唤醒、检查进度、运行检查、将结果与目标比较,并在目标未达成时发送 agent 回去执行下一个指令。最简单的形式是 Ralph 循环模式,使用编码 agent 和确定性条件。更灵活的形式包括可以推理进度并决定下一步的评估器 agent。

长运行自主性作为控制层监督下的重复努力工作,而非一次连续的智能行为。agent 仍然可能失败,但循环让系统注意到失败并继续,而非默默宣布胜利。

规划是专业知识进入的地方

课程中最强的主题之一是规划仍然关键。你可以要求前沿模型生成计划,但你仍然需要检查它、挑战假设并在交给自主循环之前让成功标准更锐利。

这导致一个有用的劳动分工。更强的规划模型可以帮助定义目标、识别缺失约束和构建评估。然后不同的执行模型可以在计划清晰后运行实现。在实践中,这意味着工程师应该停止将「模型」视为单一选择。模型选择成为架构决策。

有些模型更擅长规划。有些更擅长执行。有些是更便宜的评估器。有些更擅长基于视觉的审查。好的编排器让你可以交换这些角色,而非等待一个供应商提供完美的编码 agent 接口。

视觉工件成为控制面

终端记录在多个 agent 并行运行时不扩展。一旦有几个会话同时工作,原始文本成为理解进度的糟糕界面。

实时工件很重要,因为带有损失曲线、基准分数、任务状态、截图、成本估算和最近决策的 dashboard 给人类监督自主性的更好方式。工件成为决定何时干预的控制面,而非事后生成的报告。

最有用的模式是分离存储与展示。Markdown 或 vault 可以存储持久证据、日志、笔记、计划和结果。HTML 工件可以将该状态渲染为视觉和交互式的东西。Agent 搜索 Markdown,人类监控工件。

对于 UI 和产品工作,视觉线索尤其强大。截图参考可以比散文更精确地传达设计意图,有视觉能力的评估器可以将实现与该参考比较。这减少了常见的失败模式:agent 技术上实现了请求的组件但错过了间距、层次、对齐或产品感觉。

会话挖掘将使用转化为记忆

另一个重要洞察是,过去的 agent 会话是丰富的工作流数据来源。如果 agent 反复以相同方式失败、忘记运行相同检查、使用错误路径或重试相同损坏命令,该模式不应埋在日志中。

会话挖掘将这些对话记录转化为操作规则。 Agent 可以扫描过去 30 天的工作,找到重复失败模式,并提议更新项目指令、vault 学习或 agent 规则。这是团队可以逐渐改进其 harness 而无需手动记住每个错误的方式。

目标是在不从头训练模型的情况下让本地环境更聪明。Agent 指令文件中的一条小规则可以在未来会话中防止重复失败,尤其是当规则特定于项目时。

实用操作模型

对于 AI 工程师,新兴工作流看起来像这样:

  1. 在启动完整自主运行之前,先用小的、廉价的子集开始。
  2. 编写带有可测量成功标准、显式约束和(在可能时)轮次或时间预算的目标。
  3. 将执行器与评估器分离,使实现和判断不 collapsed 到一个角色中。
  4. 在长运行循环开始前定义外部验证器。
  5. 尽可能使用确定性检查,然后为模糊标准添加 agent 审查。
  6. 要求证明工件:日志、截图、基准曲线或更改的文件。
  7. 挖掘过去会话,将重复教训提升为项目指令。

这就是使用编码 agent 与工程化自主编码系统的区别。一个给你对话。另一个给你 harness。

什么仍然崩溃

这些都没有消除硬问题。Agent 仍然走捷径。仍然提前停止。仍然高估完成度。仍然产生自信但弱的计划,尤其是在最近论文、陌生基准或训练分布外的系统上。

更信任它们不会解决这个。更好的控制系统会。 目标、循环、评估器、确定性检查、视觉工件和会话记忆都是让自主性可观察和可纠正的方式。

方向是清晰的。编码 agent 的未来取决于围绕更有能力的模型的更好编排,工程师设计 agent 可以安全运行数小时或数天并仍能产生可验证工作的条件。


→ 原推