使用 Loop Engineering 将 Hermes 智能体效率提升 10 倍

AAI LABS
컴퓨터/소프트웨어AI/미래기술

Transcript

00:00:00最近有个新术语正在流行,你可能已经听过了。
00:00:04它叫“循环工程”,就像其他所有炒作出来的词一样,每个人都在谈论它,好像是什么新鲜事。其实不然,
00:00:09但当你把它与像 Hermes 这样始终运行的代理(agent)结合时,它就不再是炒作了。大多数人
00:00:13试图设置这些循环时,虽然做对了循环,却错过了真正
00:00:17让它发挥作用的关键。如果你已经知道有两种循环,那么在其中一种里面
00:00:22有一种特殊的设置,几乎没人用到。一旦你看到了这一点,你关于构建代理的思考方式
00:00:27就会彻底改变。看完这段视频,你就会确切了解它是什么,并且你会拥有它,
00:00:31让它在 Hermes 甚至 Claude Code 上运行,而无需你亲自插手。关于循环工程,
00:00:36核心理念很简单。你不再是编写驱动代理的提示词(prompt)的那个人,
00:00:41而是让代理自己驱动自己。但要明白为什么这是一个转变,你必须
00:00:46将其与过去的方法进行比较。曾经重要的技能是提示词工程(prompt engineering),我们所有的注意力
00:00:51都花在编写一系列正确的指令来正确驱动编码代理上。但循环工程
00:00:56彻底颠覆了这一点。你不再亲自编写提示词,而是设计一个系统,为你
00:01:01完成提示词工程,并让代理自动运行。因此,重点从精心打造
00:01:05指令转移到了设计能够自我运行的系统上。这一切始于 OpenClaw 的创造者
00:01:10所说的,你不应该再通过提示词去操纵你的编码代理,而应该专注于
00:01:15设计为代理编写提示词的循环。他不只是一个人。Boris,Claude Code 的创造者,
00:01:20也在 Anthropic 年度开发者大会上提出了同样的观点,他说他
00:01:25不再给 Claude 编写提示词了。他运行着循环来驱动 Claude,它会自己弄清楚
00:01:30需要做什么。那么问题来了,你怎么开始使用它们呢?这一切归根结底在于
00:01:34你能在多大程度上建立起无需担心代理提示词的系统。
00:01:39你定义需求,代理完成剩下的工作。这正是人工智能驱动开发的发展方向。
00:01:45在我们了解如何实际构建它们之前,你需要清楚什么是循环。循环是
00:01:50一种过程,你定义最终目标,代理自己找出达成目标的步骤。
00:01:56它在过程中自行纠正,并绕过问题,直到实现你设定的目标。
00:02:01几个月前,在模型具备维持长时间任务的能力之前,这是不可能的。如果你
00:02:06需要构建一个应用程序,你会提示代理,监视它在做什么,自己检查输出,
00:02:11发现问题并重新提示以修复它们。你就是那个循环。你就是那个在每一步之间进行
00:02:16错误检查和过程修正的部分。对大多数人来说,开发仍然是这样子,
00:02:20而这正是循环工程即将为你分担的工作。现在,这听起来可能
00:02:25是一个全新的概念,但循环实际上已经存在很久了。Cron jobs 就是
00:02:30一个很好的例子,你可能已经见过。它们只是被安排在固定时间重复运行的程序,
00:02:35无需你每次去触发它们。唯一的真正区别是
00:02:39Cron job 在固定时间运行。所以有了循环,工作就不再是编写提示词了。
00:02:44代理在任务上的表现取决于你定义最终目标的能力。对你们中的一些人来说,
00:02:49这个过程听起来很像强化学习。如果你还没接触过,强化学习
00:02:54基本上是一种训练模型的方法,你不用给它展示正确的答案。相反,你只是在它
00:02:59做得好和做得不好的时候给它反馈,它就会逐渐弄清楚如何自我提升。
00:03:04模型通过尝试不同的事物来寻找正确的路径。当它向正确的方向前进时,它会得到一个正向信号,
00:03:09而不正确时则得到负向信号。同样的道理也适用于这里,只是模型本身
00:03:14并不是在被训练。相反,代理正在努力完成你想要的任务,
00:03:19以模型在训练过程中改进相同的方式对其进行迭代。如果它失败了,你放在代理上的循环
00:03:23不会将任务标记为完成。它会再次尝试,继续运行,并自我纠正,直到
00:03:28达到你设定的目标。现在,听到这一切后,你可能想知道,如果一切都变得自主了,
00:03:33还有什么留给你做呢?但你的角色并没有缩小,反而变得更重要了。
00:03:38因为正是你的领域知识和经验定义了最终目标,
00:03:43而这最终体现在你构建和发布的一切事物中。这就是为什么向自主
00:03:48循环的推动只会加速,并且体现在现在发布的每一个新特性中。Fable 5 是
00:03:54目前最明显的例子。Anthropic 发布了它,即使他们一直呼吁减缓 AI
00:03:59的发展,因为模型的能力增长速度太快了,难以跟上。在
00:04:03发布一段时间后,他们甚至撤回了它。他们构建它是为了应对长期和复杂的任务,
00:04:08并且任务越长越复杂,它的表现就越好,这基本上与模型
00:04:13过去的工作方式相反。这种转变实际上始于 Opus 4.5。一旦发布,长期运行的任务变得
00:04:19显著好转。你不再需要为代理设置精心引导的“笼头”,
00:04:23也就是那些指导代理逐步操作的结构化设置。重点转而向
00:04:28准备长期运行的项目上,因为模型现在具备了足够的能力,
00:04:33可以在没有太多分步处理的情况下自行处理事情。但循环不是唯一重要的东西。
00:04:38你还需要以一种方式构建你的项目,让代理在不需要你介入的情况下独自工作
00:04:43很长一段时间。所以很多人一直在构建并开源
00:04:48专门用于此类设置的系统。RALF 循环是最早的系统之一。它的工作原理是设定最终目标,
00:04:53并确保代理不会偏离它。它是通过钩子(hooks)做到的,这些钩子基本上是
00:04:57在发生特定情况时自动运行的脚本。所以这个脚本严格防止代理在
00:05:03确实满足条件之前将任务标记为完成。但钩子很僵硬,所以 Claude 推出了它自己的目标
00:05:09命令,做了同样的事情但更加灵活。它不是硬编码的检查,而是让
00:05:14另一个模型来决定任务是否真的完成了。我们介绍了 Goal Buddy 2,它构建在
00:05:19该基础上,让代理在本地文件中跟踪其进度,并在开始之前
00:05:24准确定义什么样子是“完成”,这样它总是知道自己朝着什么工作。Hermes 代理和 OpenClaw
00:05:29都是建立在相同的哲学之上的。它们把你完全排除在画面之外,让代理自己处理一切。
00:05:35现在,如果你想构建这些循环,我们为你准备了一个简单的五步系统,因为
00:05:40有两种类型的循环,其中一些步骤工作方式略有不同,但我们稍后会详细介绍这两种类型。
00:05:45现在,我们将从 Claude Code 开始,稍后在视频中,我们将看看如何在
00:05:49Hermes 代理中做同样的事情。第一步是检查项目处于什么状态。从中,模型
00:05:54决定下一步应该是什么行动。然后它根据该决定采取行动,这就是实际工作
00:05:59发生的地方。代理调用工具、写入文件并运行命令来完成任务。一旦完成,
00:06:04它会收集反馈以查看实际发生了什么,并基于此,它决定任务是否
00:06:09完成。这也正是提示词工程和循环工程之间的差异变得
00:06:14明显的地方。使用提示词工程,你只是在控制决策步骤,而循环工程
00:06:19处理全部五个步骤。构建一个运行良好的循环意味着要把几件事做对,
00:06:24每一件事的存在都是因为它解决了一个具体的问题。首先是上下文管理。你对
00:06:29每一次轮次中进入上下文的内容都要关注,因为那决定了代理
00:06:34在任何给定时刻实际知道什么。你不能仅仅依靠聊天上下文,即使上下文窗口
00:06:39大到一百万 token(基本上是代理一次能保留在内存中的量),因为随着
00:06:44对话的增长,你的系统提示词和指令会被最新的工具输出掩盖。代理的
00:06:50注意力自然会被最新的内容所吸引,所以重要的东西会被遗忘。这就是为什么
00:06:55管理上下文如此重要。接下来要搞定的是反馈质量。反馈是告诉
00:07:00代理它做得如何的东西,这是整个系统中最重要的信号之一。它可以采取很多
00:07:05形式,比如测试运行的输出或它刚构建的 UI 的截图,无论它采取什么形式,
00:07:11那都是代理读取并找出下一步行动的东西。验证门(verification gates)是将反馈
00:07:16转化为明确结论的东西。它们是告诉代理任务是否真的完成了的检查点。
00:07:21你还需要一个终止条件,基本上是一个告诉循环何时停止的规则,而这个规则
00:07:26必须明确设置,否则代理要么过早退出,要么在没有取得实际进展的情况下继续运行。
00:07:31人们最常忽略的一件事是错误处理。你必须明确说明当工具调用失败时模型应该做什么,
00:07:36这样系统就能干净利落地处理它,而不是让事情处于会导致更多问题的破碎状态。
00:07:41最后,你需要管理跨轮次的状态,
00:07:46基本上随着对话的增长跟踪任务所在的位置。上下文窗口不能永远
00:07:51保存一切,所以你要依靠跟踪代理信息并让它在不丢失线索的情况下继续工作的外部文件。
00:07:57有一件事要记住,因为你把弄清楚路径的工作交给了模型,而不是自己做,
00:08:01循环在 Token 上会变得昂贵,所以你需要深思熟虑地决定何时真正使用它们。
00:08:06循环可以使用更多的 token,处理任务的效果往往就越好。但在我们继续之前,让我们听听
00:08:11我们的赞助商 Scrimba 的消息。大多数 Python 课程只是有人在幻灯片上说话。Scrimba 不同,
00:08:15他们的视频播放器就是代码编辑器,所以你可以随时暂停,直接编辑讲师的代码,
00:08:21并查看会发生什么。无需切换选项卡,无需复制粘贴,从一开始就是动手编程。
00:08:26他们新的 Python 学习课程引起了我的注意,因为与其说是随机练习,不如说你是真的
00:08:31在构建真正的东西。从第一天起,你就在构建 PayUp,一个功能齐全的费用分摊应用程序,
00:08:37并且每个概念都会立即得到应用。你从绝对零开始,无需先前的 Python 知识,
00:08:42并通过构建应用程序的功能,逐步掌握变量、字符串、捕获用户输入、算术运算符、类型转换、
00:08:47数据清理和数字格式化。到最后,
00:08:53你已经从头构建了一个可用的项目,这证明你确实掌握了 Python。这只是未来几周内将提供的
00:08:57多部分内容中的一部分,目前完全免费。
00:09:02访问。立即开始他们的免费课程,我们的用户还能获得 20% 的 Pro 计划折扣。
00:09:07所以点击固定评论中的链接,或扫描二维码,立即开始构建吧。
00:09:12正如我们所提到的,有两种类型的循环。第一种被称为确定性循环。你将其用于
00:09:18那些对“完成”有清晰定义(即什么样子才算完成)的任务,那可以是测试通过、
00:09:23代码编译成功,或类似的事情。这些循环相当直接,因为
00:09:28最终目标很明确,所以模型在调用任务完成之前确切知道需要做什么。
00:09:33由于 Hermes 始终运行,它是一个实现此循环的非常好的代理。我们之前已经在它上面创建过
00:09:38多个工作流程,并在我们之前的视频中展示了它是如何自行处理我们大量工作的。
00:09:43确定性循环的核心是对最终目标的清晰定义,而对于你托管的应用程序,
00:09:49该定义就是你的测试用例。所以你可以将 Hermes 代理指向你部署的任何带有测试用例的应用程序,
00:09:54并让它为你监视它。现在,如果更改或提交最终破坏了
00:09:59生产环境,你可以在 Hermes 上设置自动化来捕获它。它之所以在这里效果最好,是因为它
00:10:04附带了自我演进技能功能,所以它会根据工作流程自动创建和演进技能,
00:10:09这能保持应用程序的健康。一旦你设置了那个监控自动化,你
00:10:14就可以要求它在非交互模式下启动 Claude Code,基本上是在无需你
00:10:18驱动的情况下运行它,并让它在一个循环中修复问题,直到所有测试用例通过。
00:10:23它从那里所做的是设置自动化工作流程并加载技能,例如子代理驱动开发技能
00:10:28和 GitHub PR 工作流技能,这些技能告诉它如何管理 GitHub 上的应用程序。
00:10:34它首先识别破坏生产环境的问题,然后启动以非交互模式运行的 Claude Code,它获取
00:10:39测试并在全部通过后提交更改。在运行完所有测试并修复了任何
00:10:44导致生产故障的原因后,它会使用 GitHub CLI 提交更改。应用程序最终
00:10:50在没有任何故障的情况下运行,因为它已经确认所有成功部署的检查都已到位。
00:10:55如果你喜欢这些细分内容,请订阅频道,点击通知铃铛,并按下点赞按钮。
00:11:00在频道上,我们发布的内容能帮助你学习利用 AI 优化不同企业中不同流程的新方法。
00:11:05你的支持,无论是订阅、通知
00:11:10铃铛还是点赞,都能帮助我们创造更多像这样的内容并触达更多人。这对我们意义重大。
00:11:15现在第二种类型是非确定性循环,这些是那些无法像确定性循环那样设置简单规则来检查工作是否完成的任务。
00:11:21正因为如此,没有清晰的方法来验证结果。这些是我们人类可以看着并自己判断的事情,
00:11:26因为无法像确定性循环那样,通过设定明确的规则来检查任务是否完成。
00:11:31正因如此,并没有一种清晰的方法来验证结果。这些任务需要人类亲自查看
00:11:36如果你将 AI 应用于 UI,你已经知道它往往总是退回到相同的模式。
00:11:41这就是为什么我们创建了一个名为 AI Slop Detector(AI 垃圾检测器)的技能,其中包含了关于如何避免 AI 垃圾内容的所有说明,
00:11:46并列出了实际暴露它的模式。我们再次使用 Hermes 的原因是其自我演进
00:11:51技能。如果我们运行技能后仍然在 UI 中发现 AI 垃圾内容,该技能可以更新自身以
00:11:57直接纳入反馈,而这正是我们为什么要在 Hermes 上设置此工作流程的原因。因此,我们要求
00:12:02Hermes 使用该技能并检查 UI 是否具有这些模式。如果有,它会修复它们
00:12:07并以非交互模式启动 Claude Code 来运行该技能,并不断修复它发现的内容,直到
00:12:13没什么可修复的为止。我们从 Hermes 获得的另一个好处是,审查工作的模型
00:12:18与构建它的模型不同。我们使用了已知是最佳代码审查模型之一的 GPT 模型,所以
00:12:23Claude 模型成为构建者,另一个代理成为验证者。这就是完成对抗性循环的地方,
00:12:28两者互相检查工作。一旦该循环运行,它生成的 UI 比现在 Opus 模型输出的通用 UI 要好得多。
00:12:33如果你在代理循环结束后仍然在 UI 中发现任何 AI 垃圾的迹象,
00:12:38你只需提及它,它就会为你更新技能,强化你已经拥有的验证者。
00:12:43我们已经增强了此技能,以匹配我们和 Hermes 共同识别的多种 AI 垃圾模式。
00:12:49如果你想使用此技能,可以从我们的
00:12:54社区 AI Labs Pro 获取。链接将在描述中。这段视频到此结束。
00:12:59如果你想支持频道并帮助我们继续制作像这样的视频,可以通过使用
00:13:04下方的“超级感谢”按钮来实现。一如既往,谢谢观看,我们下期见。
00:13:09如果您想支持本频道,帮助我们继续制作这类视频,
00:13:14可以通过下方的“超级感谢”按钮进行支持。一如既往,感谢您的观看,我们下期再见。

Key Takeaway

通过将编码代理从被动响应转向基于确定性或非确定性目标的循环工程系统,可实现无需人工干预的自动化任务处理并大幅提升运行效率。

Highlights

  • 循环工程将编码代理从手动提示词编写转向设计自动化自我纠正系统,大幅提升开发效率。

  • 代理通过定义明确的最终目标(而非单步提示)自行寻找达成路径,并实现任务过程中的自主纠正。

  • 确定性循环适用于拥有明确“完成”定义(如测试通过)的任务,可用于生产环境监控与自动化修复。

  • 非确定性循环针对难以设定明确校验规则的任务,利用不同的模型进行构建与对抗性审查。

  • 构建高效循环系统的关键在于上下文管理、高质量的反馈循环、明确的终止条件及错误处理机制。

Timeline

循环工程的核心转变

  • 循环工程将重点从编写提示词转移到设计能够自我驱动的系统。
  • 代理被设定为定义最终目标后,自行纠正并绕过问题以实现目标。
  • 此方法使开发流程摆脱了每一步都需要人工错误检查和指令干预的限制。

传统的提示词工程依赖于精心构建的指令序列,而循环工程的核心理念是让代理本身承担驱动任务的角色。这种转变意味着开发者不再是编写任务指令的人,而是设计一个能够处理决策、运行工具并自我评估的闭环系统。

构建与优化循环系统的五个维度

  • 系统构建需重点管理上下文,防止系统指令被冗长的对话内容掩盖。
  • 反馈质量是系统成功的关键,测试输出或截图等明确信号决定了代理的下一步决策。
  • 验证门与明确的终止条件可防止代理过早退出或陷入死循环。
  • 必须明确定义错误处理规则,以便工具调用失败时系统能保持稳定状态。

构建运行良好的循环系统需要五个核心要素:精细的上下文管理、高质量的实时反馈、用于确认任务完成的验证门、明确的终止规则以及健全的错误处理机制。这些要素共同保证代理在长周期任务中不会偏离轨道或陷入破碎状态。

确定性与非确定性循环应用

  • 确定性循环适用于有明确完成定义(如编译成功或测试通过)的任务。
  • Hermes代理利用自我演进技能在非交互模式下自动修复生产环境问题。
  • 非确定性循环依靠对抗性机制,由构建模型与验证模型(如GPT)互相检查工作以提升输出质量。

确定性循环主要通过测试用例作为最终目标,实现自动化部署监控与修复。非确定性循环则用于主观判断任务,通过构建者模型与审查者模型的对抗,避免产生AI垃圾内容并持续优化最终产出。

Community Posts

No posts yet. Be the first to write about this video!

Write about this video