什么是代理循环?执行、状态和停止规则

什么是代理循环?

Scrapeless Agent Browser 为网页自动化和 AI 智能体提供云端浏览器。

代理循环是指 AI 代理反复执行的一种过程:它观察当前状态,选择一个动作,接收结果,并决定下一步要做什么。该循环将模型的决策与外部工具连接起来,并持续进行,直到任务完成或满足某个停止条件为止。

仅有模型的响应并不能完成现实世界中的任务。浏览器可能会导航到错误的页面,抽取可能返回空字段,而写入操作可能在模型已经描述成功之后才失败。一个有用的智能体循环会将这些观测反馈到下一步决策中。

摘要

  • 代理循环使用工具结果来选择后续操作。 下一步取决于实际发生了什么。
  • 状态必须区分计划与已完成的行动。 提议的浏览器点击与观察到的页面变化是不同的。
  • Completion needs evidence. 停止规则应检查请求的结果和受限资源的使用情况。
  • 外部页面是不受信任的输入。 网站文本不得凌驾于用户指令之上。

观察–行动循环的工作原理

一个智能体循环在决定要做什么与在动作之后检查环境之间交替进行。一次典型的迭代从用户的目标、累积的任务状态以及智能体可使用工具的描述开始。模型可以选择一个工具,或者返回最终答案。应用程序会执行任意被选中的工具,并将其结果添加到可供下一次迭代使用的状态中。

模型选择与应用执行之间的区别非常重要。模型可以请求浏览器导航,但实际执行的是浏览器。控制器决定请求的 URL 和操作是否被允许,验证参数,并记录结果。工具的可用性和授权是外围应用的属性,而不是模型自身可以授予的承诺。

The 工作流与代理架构的区分 在这里这个区分很有用:固定工作流遵循预先设定的路径,而智能体则动态地选择其路径。两者都可以包含循环。相关的问题是由谁来选择下一个动作,以及有哪些证据来约束这种选择。

Agent 必须在状态中保留的内容

代理状态应保留足够的信息,以确保下一步操作正确且最终结果可审计。对于研究类任务,这包括问题、相关来源、提取出的论点、尚未解决的空白以及完成条件。对于表单填写类任务,还包括哪些字段已被填写以及是否已经实际确认提交。

将观察与解释区分开来。“页面包含一个确认号码”是一个观察。“预订已完成”则是一种解释,可能需要核查日期、旅客信息和付款状态。将观察与其来源一起保存,这样解释就可以被审查。没有来源依据的总结,会逐渐把不确定的猜测变成看似确凿的事实。

状态同样需要保持新鲜。早前页面的浏览器结果不应在导航之后默默地用来描述当前页面。会话标识符有助于连接相关的浏览器操作,但应用程序仍然需要将每个结果与产生它的操作关联起来。内存摘要是有用的上下文;但它并不能证明外部系统仍保持相同的状态。

一个完整示例的研究情境

有界的产品调研循环可以收集公开信息,并在所需证据完整时停止。考虑一个示例任务:比较一小组产品已发布的支持政策,然后返回带有来源链接的摘要。这是一个设计示例,而不是对实际执行过的数据收集的报告。

  1. 控制器在浏览之前记录产品列表和必填字段。
  2. 该代理找到第一个产品的官方支持页面并将其打开。
  3. 浏览器返回页面内容及其 URL;代理会检查该页面是否确实描述了所请求的策略。
  4. 该代理会记录有依据的断言,并将缺失的信息标记为未知。
  5. 该循环访问其余的官方页面,并在撰写摘要前检查完成列表。

如果某个页面只是搜索结果摘要,那么对于该产品而言任务仍未完成。如果某个页面需要本任务不具备的授权,则结果中应记录该限制。循环不应用一个已记住的政策来替代真实信息,也不应声称仅靠导航就已经验证了信息。

在代理式网络爬取中的来源验证 符合这种设计,因为检索和证据接受是分开的操作。浏览器观察为答案提供材料;智能体仍然需要检查其相关性、适用范围,以及这些材料是否支持该主张。

代理循环与相关模式的区别

代理循环描述的是执行控制,而提示链、检索流水线和推理模式则描述的是系统的不同部分。它们可以组合使用,但并不会因此变成可以互换的术语。

模式是什么控制了进步实用贴合度
提示链预先设定的阶段将输出传递到下一步。具有已知步骤的稳定转换。
代理循环观察到的结果为模型选择的动作提供信息。下一步取决于外部状态的任务。
检索流水线一个搜索和筛选过程提供上下文。为答案查找证据。
人工审查由人来接受或修改一个决策。需要判断或明确授权的操作。

《 关于推理与行动的 ReAct 研究 》描述了一种在推理与动作和观察之间交错的模式。应用可以在代理循环中使用这一思想,但仍然需要独立的工具执行、任务状态和终止控制。推理标签本身并不会自动提供这些控制。

描述真实结果的停止条件

停止条件应解释为什么允许代理结束。完成是一种原因;资源限制、未解决的访问需求或对人工判断的请求则是另一种原因。这些结束方式应产生不同的结果状态,这样下游系统就不会把每一次终止都视作成功。

在执行前定义完成契约。对于研究任务,要求每个请求的项目要么有证据,要么有明确的缺口说明。对于文件转换,要求输出文件存在并通过相关验证。对于向外部系统写入,要求由持有记录的系统给出确认。模型的结束语句应当总结这些检查,而不是替代它们。

针对任务设定合适的耗时、工具动作次数和花费上限。同时检测缺乏进展的情况:反复打开同一页面却没有获得新信息,不应耗尽整个运行配额。正确的停止响应可能是一个部分结果,清楚标明缺失的证据以及下一个依赖项。

工具边界与不可信内容

工具边界应当防止检索到的文本改变代理被授权执行的操作。网页中可能包含针对代理的指令,包括要求泄露机密或执行无关操作的请求。这些文本是关于页面的证据,而不是新的用户命令。

《 关于 LLM 应用风险的 OWASP 指南 》为审查提示注入和过度代理提供了一个起点。实用的控制措施包括限制工具权限、验证目标地址,以及要求控制器强制执行行动策略。仅靠提示中的警告不应成为敏感操作的唯一屏障。

仅返回任务所需的工具数据。例如,当研究代理只是在检查某一公共政策页面时,很少需要整个账户历史。较小的结果可以减少无关上下文,使证据更易检查。将凭证保存在执行环境中,而不是把它们插入到模型可见的日志中。

Agent Browser 在代理中的角色

Scrapeless Agent Browser 提供代理循环可用作工具的浏览器执行能力。 Agent Browser 文档 描述了浏览器界面,而应用本身仍然负责目标、动作选择、状态以及最终接受规则。

当任务需要渲染页面或交互时选择浏览器。对已在内存中的数据进行可预测的转换则可能根本不需要浏览器。结合工作负载与 Agent Browser 以及 Scrapeless pricing一起评估;浏览器基础设施应根据循环实际需要的操作来选择。

结论

一个可靠的代理循环会把每个决策与观察到的结果对应起来,并依据明确的完成契约终止。从窄范围任务开始,在状态中保留证据,在控制器中强制执行工具权限,并区分完成与受限停止。这些选择能让最终答案更容易被信任,也让失败的运行更容易诊断。

构建一个基于证据的浏览器循环

在已获授权的研究工作流中,使用 Agent Browser 执行浏览器相关操作,然后在循环继续之前验证每个结果。

立即注册即可获得 $5 in free credit — 无需信用卡.

领取你的 $5 额度 →

常见问题解答

问:代理循环和无限循环是一样的吗?

代理循环是一种具有明确停止条件的受控执行周期。无限循环则是未能终止。完成检查、资源限制和进度检查可以帮助代理以准确的结果停止。

问:每个代理都需要持久化记忆吗?

代理在执行过程中需要任务状态,但并不总是需要跨任务的长期记忆。只保留能改善当前决策的信息,并在外部环境可能变化时,把较早的观察视为可能已过时。

问:工具结果能证明任务成功吗?

当工具结果来自对结果负责的系统时,它可以提供成功的证据。控制器仍必须检查该结果是否符合请求的操作、目标以及完成标准。

问:代理循环应该取代固定工作流吗?

当后续动作依赖于执行过程中发现的信息时,代理循环很有用。而当所有必需阶段和分支在事前都是已知的,固定工作流往往更容易验证。应根据任务的不确定性来选择控制复杂度。

参考资料