什么是智能体循环?一个机器人、一份三明治,以及再试一次的艺术
看一看,选一选,做一做,查一查。一份轻松有趣的图解智能体循环指南——简单到五岁小朋友都能懂,也有足够多的内容留给大人们。
想象一个名叫 Pip 的小机器人。
你对它说:“请给我做一份果酱三明治。”
Pip 看了看桌子。有面包,有果酱,还有一把勺子,上面沾着多得可疑的花生酱。
Pip 会马上宣布“三明治做好啦!”吗?
不会。那只是一段演讲,不是一份三明治。
Pip 需要看一看,选一个小步骤,去做,再检查发生了什么。然后,Pip 才能决定接下来做什么。
这个不断重复的模式,就叫智能体循环(agent loop)。
整个思路,只要四个小词
看一看。选一选。做一做。查一查。
- 看一看:现在正在发生什么?
- 选一选:下一步做哪件有用的事?
- 做一做:去做那件事。
- 查一查:实际发生了什么?我们完成了吗?
如果任务还没完成,就带着新信息再绕一圈。
循环的意思就是某件事会重复发生。智能体是一个能够朝着目标采取行动的系统,它使用的是被赋予的工具和权限。
合在一起:智能体循环让一个帮手能够行动、看到结果,再决定下一步做什么。
回到那项非常严肃的三明治任务
Pip 的第一个小步骤是打开果酱罐。
做一做:拧盖子。
查一查:盖子纹丝不动。
有意思的地方来了。Pip 不应该仅仅因为“打开罐子”是计划的一部分,就假装罐子已经开了。
Pip 也不应该一直拧下去,拧到太阳都变成葡萄干。
Pip 可以尝试一个被允许的替代办法,或者说:“你能帮我拧一下这个盖子吗?”寻求帮助是一个有用的结果——而不是机器人级别的大失败。
罐子打开之后,Pip 就可以抹果酱、把面包合上,再对照你的要求检查成果。
两片面包?中间有果酱?放在盘子里?太好了。
一个罐子立在一整条面包上?很有创意。但不是三明治。
AI 在哪里发挥作用?
我们的厨房故事是虚构的。软件智能体的工具不是用来拿面包的,而是可能用来读取文件、搜索网页、编辑文档或运行测试。
在 AI 智能体中,语言模型可以帮忙选择下一步。外围的软件负责执行被允许的工具调用,并把结果返回。然后模型带着这些信息再进行一轮。
可以把它想成三种不同的分工:
| 部分 | Pip 的假想厨房 | 软件版本 |
|---|---|---|
| 目标 | 做一份果酱三明治 | 修复一个失效的链接 |
| 决策者 | 选择下一个小步骤 | 模型提出一个操作 |
| 工具 | 双手和勺子 | 文件读取器、编辑器或浏览器 |
| 观察 | 盖子还是没打开 | 工具返回错误或结果 |
| 工作笔记 | 罐子已开;面包已备好 | 相关的任务历史和结果 |
| 完成检查 | 你要的三明治做好了 | 确认目标链接能正常使用 |
模型建议一个操作,并不等于这个操作真的发生了。而一个操作真的发生了,也不自动等于目标已经达成。
“文件已保存”和“用正确的内容保存了正确的文件”是两种不同的说法。检查这一步,正是这种差别发挥作用的地方。
一次小小的冒险:消失的图片
假设你让一个软件帮手修复网页上一张不显示的图片。
一个有用的循环可能是这样的:
- 看一看:读取页面,找出图片路径。
- 选一选:检查被引用的图片是否存在。
- 做一做:查看相关文件。
- 查一查:页面请求的是
cat.png,但文件名其实是cat.jpg。 - 再来一圈:更新引用,然后确认页面加载的是预期的那张图片。
- 停下:报告所做的修改,以及实际执行过的检查。
如果图片还是没有出现,那么“我改了页面”是不够的。结果应该指引下一步。
注意是什么让它成为一个循环:下一个操作取决于上一个操作揭示了什么。它并不只是一遍又一遍地做同一件事。
每绕一圈都会更好吗?
不会。动作更多,并不自动意味着进展更多。
下面是一张为 Pip 的三明治任务编造的图表。每完成一个里程碑,我们就给 Pip 记一分:打开罐子、抹好果酱、组装三明治,以及最终核对要求。
那段平线很重要。如果什么都没有改变,帮手需要察觉到这一点——而不是庆祝自己已经试了多少次。
对大人们来说,这引出了几个有用的问题:我们学到什么了吗?状态改变了吗?我们是在重复同一个失败的操作吗?再试一次值得付出这个代价吗?
对其他所有人来说:如果门上写着“拉”,更用力地推可不是什么策略。
给帮手一道围栏,而不是整个星球
一个合理的智能体设计,需要的不只是一个“重复”按钮。
- 清晰的终点线。“找三张企鹅的图片”比“让一切都变得超棒”更容易检查。
- 恰当的权限。能起草一封邮件,不应该自动意味着能把它发出去。
- 停止的预算。给尝试次数、时间或花费设定上限。卡住的任务绝不能变成无休止的任务。
- 提问的途径。缺少信息、缺少权限,或者面临重大选择时,可能需要一个人来介入。
- 诚实的检查。使用与目标相匹配的证据。不要把“工具返回了”变成“一切都正确”。
这些是设计原则,并不是承诺每个产品都实现了它们。循环并不会神奇地让一个系统变得安全或可靠。
在 Pip 的厨房里就是:把三明治做好,不要订一整卡车的果酱,使用大人的电器之前要先问一声。
智能体循环和脚本是一回事吗?
不一定——但两者的界线并不是“脚本很傻,智能体很聪明”。脚本同样可以有循环、条件判断和出色的检查。
真正值得关注的区别在于下一个操作是如何被选出来的。在固定的工作流中,开发者事先铺好了所有路线。在由模型驱动的智能体循环中,模型可以根据任务和最新的观察,在可用的操作之间做出选择。真实的系统可以把两种方式混合使用。
对于可预测的工作,一个小脚本可能恰到好处。中午敲一下钟,用不着一个会思考哲学的机器人。
对于充满未知障碍的任务,根据新鲜证据来选择下一步可能会很有用。也正是这种灵活性,让限制和验证变得重要。
冰箱贴版本
智能体循环就是:
尝试一个有用的步骤。看看发生了什么。运用你学到的东西。只在合理的时候才重复。
它不是魔法。它不是保证。它也不是“永远做下去”。
它是一种把目标、行动和真实结果连接起来的方式——一遍又一遍,直到帮手完成任务,或者需要停下来。
Pip 会说得更简单:
“看一看。试一试。查一查。还没有三明治的时候,别说三明治做好了。”