@_avichawla: Karpathy说过你会后悔忽略的话:“把自己从瓶颈中移除。最大化你的杠杆。投入极少的…
摘要
对AI代理循环工程的解释,强调制造者代理与检查者代理的分离、磁盘上的状态持久化以及避免成本失控的退出条件。
Karpathy说过你会后悔忽略的话:“把自己从瓶颈中移除。最大化你的杠杆。投入极少的令牌,就会有一大堆事情替你去完成。”循环工程恰恰能做到这一点。在手动运行的过程中,操作员负责两件事: - 决定代理下一步运行什么 - 以及在下一步之前检查它的输出。这两项都是手动的,并且它们决定了代理在没有操作员的情况下能够自主走多远。循环工程将这两个步骤都移入系统中。一个核心运行结构包围着循环,下图描绘了它。 - 调度决定运行什么 - 循环是制造者,产生工作 - 一个独立的检查者代理对输出进行评分 - 磁盘上的一个文件保存着它们都读取的状态。循环运行直到完成、达到最大迭代次数或预算耗尽。以下是一些实际的工程考虑:
1) 模型对自己的输出进行评分会为其已经完成的工作辩护,而不是发现它失败的地方。这就是为什么独立的检查者的发现会作为下一步指令返回给制造者。循环重复直到检查者认为没有什么需要修复为止。
2) 没有停止条件的循环会消耗大量令牌,一旦子代理和长时间运行累积起来,成本就会快速攀升。这就是为什么必须在循环运行之前设置退出条件,而不是在运行期间设置。一个简单的退出条件可以是:↳ 只修复主要问题,运行一次最终检查,并在两轮循环后停止,以“所有测试通过且lint干净”作为结束规则。
3) 状态必须存在于磁盘上,而不是上下文中。模型在运行之间会忘记一切,因此一个MD文件或知识图谱保存了已完成和未完成的工作。每次运行时都会读取并写回,这使得循环可以在数天后再次接续。
4) 验证标准越低,循环越安全。无聊的重复性检查,如过期的版本字符串或缺失的测试,验证起来非常简单,因此循环可以在操作员不在时以较低风险运行它们。需要大量判断的工作也是可循环的,但仅限于检查者能够确认结果的程度。
让我们看看无人值守循环如何以两种方式失败。
1) 它在实际上什么都没有验证时报告完成。独立的检查者存在就是为了防止这种情况,但它合并代码的速度比任何人阅读它的速度都快,因此几周后,团队就不再理解自己的代码库,而所有检查仍然是绿色通过。绿色测试只说明代码通过了测试,并不表示有人知道发布了什么。仍然需要有人阅读循环合并的内容。
2) 检查者确保运行的循环诚实,但它只能捕获运行内部的失败。围绕循环的脚手架(如提示、工具和围绕模型的检查)仍然会随着模型的变化而在生产中发生偏移和故障。这个修复循环通常基于可观测性追踪手动运行。
我的联合创始人写了一篇详细的教程(附代码),关于如何让这个脚手架自我修复:诊断失败的追踪,针对确切的失败输入验证修复,并将该故障锁定为回归测试,使其不再发生。请阅读下文。
相似文章
为什么人工智能尚未取代软件工程师,也不会取代
Arvind Narayanan 和 Sayash Kapoor 认为,人工智能不会取代软件工程师,他们指出决定构建什么、验证和深入的人类理解等瓶颈是该职业抵御自动化的关键。
对于使用工具的智能体,安全边界应划在哪里?
讨论AI智能体使用工具的安全风险,重点关注提示注入这一实际威胁——不受信任的文本可能改变智能体行为,以及在授予权限前需要进行可重复测试。
如何高效构建 Microsoft AI agent framework
关于在 Microsoft Agent Framework 中通过使用网关进行缓存、上下文压缩和模型路由来优化成本的实用指南,确保每个步骤仅使用必要的智能。
我正在构建DystopAI,一个面向OpenClaw智能体的中枢系统,让它们能够工作、调度、通信并适应实际工作流
DystopAI是一个本地桌面指挥中心,通过直观的用户界面管理OpenClaw AI智能体。它支持智能体创建、角色分配、调度和多渠道通信,以简化实际工作流。
为客户端构建这些AI代理一年后,我基本上确定:一个代理就是一个markdown文件文件夹
作者认为,AI代理最好理解为一个包含业务知识和指令的markdown文件文件夹,与模型和工具框架分离,从而能够在快速改进的框架之间实现可移植性。