ReAct 智能体

作者:Ai Flowi · 发布于

ReAct 智能体采用一种将任务推理与工具动作及其观察结果相结合的模式。动作返回结果后,智能体可以决定回答、执行另一个获准动作,或停止。这里的“React Agent”指这一通常写作 ReAct 的 AI 模式,而非前端用户界面组件。

有用的证据是可观察的工具请求及其返回结果。评估智能体是否选择了合适工具、遵守了工具边界,或是否用观察结果支撑答案,并不需要查看隐藏的思维链。

动作与观察循环意味着什么

普通的固定序列预先决定下一步。采用 ReAct 模式的设计可以根据工具返回的信息,选择下一个允许的动作。任务可能在获得一次有用观察后结束,也可能因现有工具无法解决问题而停止。

这种灵活性带来了控制问题。需要决定哪些工具可用、哪些证据算充分,以及何时再调用一次只是在重复。循环是一种任务模式,并不授权探索任意服务,也不能证明智能体会识别不可靠的观察结果。

相关内容:CrewAI 教程:AI Flowi Workflow 集成。

一个可观察的只读示例

假设问题是:某份已批准的文档是否包含取消条件?只读查询工具可以检索获准访问的摘录。下面的轨迹描述可能发生的事件,仅用于说明,不包含任何记录下来的工具输出。

无需索取私密推理即可检查事件
事件可观察的记录验收检查
收到任务问题与获准使用的来源标识符。问题处于允许的只读范围内。
请求工具查询名称与文档标识符。操作和资源均已获授权。
返回观察结果摘录、未找到的结果,或技术故障。结果与模型猜测保持区分。
下一决定根据证据回答、请求允许的澄清,或停止。智能体不声称拥有观察结果中不存在的证据。

如果摘录回答了问题,最终回复应注明支持答案的来源。如果摘录缺少取消条件,回复应说明提供的证据不足。空结果不能证明其他地方也没有这项条件。

请求失败与获授权的搜索未找到内容,含义不同。审核时应让这两种结果都清晰可见,否则最终答案可能悄然将服务中断变成事实结论。

改变下一动作的观察结果

将这个虚构问题扩展为两个获准来源:主文档和它的取消条款附录。第一次查询返回的段落说明,条件定义在附录中,但该段落本身没有条件。此时,下一个获准动作是检索该附录。重复查询主文档不会增加相关证据。附录查询之所以被允许,仅因为它的标识符已包含在最初获准使用的集合中。

与之对比,如果第一次结果说明所请求的段落已被遮盖,这项观察既没有提供条件,也没有授予获取未受限副本的权限。下一决定应是停止,并报告可访问的来源无法回答问题。笼统的“继续搜索”指令不适用于这一分支。

用相同的起始问题和可用工具测试这两个分支。保存初始请求、第一次观察结果,以及随后请求的操作。如果两个分支无论证据如何都发起相同的第二次查询,轨迹展示的就是固定延续,而非由观察结果引导的选择。如果附录返回了相关段落,任务完成取决于该段落;第一份文档的指引本身并不足够。这些是评估案例,并非实际观察到的模型结果。

继续、停止,或询问人员

拟定的停止策略
观察结果下一决定原因
相关且能支撑答案的摘录回答并注明来源。满足任务的证据条件。
来源标识符有歧义请求澄清。猜测可能导致访问错误来源。
重复且无帮助的查询停止,并保留证据尚未解决的状态。相同观察没有增加新的依据。
权限被拒绝停止尝试访问。换一个提示词也无法授予权限。
技术故障按已定义的重试策略报告失败。任务尚未获得可用的观察结果。

运行循环前应设定工作预算。上限可以限制尝试次数,却不能保证得到有用答案。对于外部写入,结果不确定时,应在重试前检查目标端;这个只读示例完全不涉及此类动作。

这一模式与 AI Flowi Workflow 的关系

Agent 组件参考文档介绍配置示意中的任务、模型和工具接口。

目录并未将 Agent 标识为原生 ReAct 执行器;评估这一模式,需要观察返回的证据是否改变了它的下一个获准动作。

Flow as Tool 的约定请参阅函数调用约定,并在评估循环前检查选定的查询。

限定范围的配置示意

示例配置,并非记录下来的测试

Agent
tools: connect the Tool output
system_prompt: Answer only from returned excerpts.
               Stop on denied access or insufficient evidence.
max_iterations: 3
input_value: the synthetic question and approved source reference

这段示意表达了预期的动作和停止规则,并非经过验证的循环实现。示例中的迭代次数没有经过可靠性测量。应为模型配置您自己的提供商账户和 API 密钥,并向提供商单独付费。所述组件已在目录中说明,但未经 Ai Flowi 生产环境测试。

导出内容没有说明 handle_parsing_errors 的确切行为、verbose 会显示什么,或达到迭代上限时会返回怎样的终止回复。这些缺口应在实际试用时成为检查项,不能把字段名当作执行证据来填补。

ReAct、函数调用与编排有何区别?

函数调用描述对某项操作的结构化请求,以及应用的执行响应。ReAct 描述更广泛的动作与观察模式,其中结果会影响下一决定。仅有工具接口,不能证明某个智能体实现了这一模式。

多智能体编排协调不同的任务负责者及其交接。一个智能体使用多个工具,并不自动构成多智能体系统。AI 智能体状态记录已观察到什么、哪些问题尚未解决,以及是否允许完成任务。

审核循环时的常见错误

不要索取隐藏推理来代替执行记录。应审核操作名称、参数、结果和支持结论的来源。有说服力的说明也可能伴随着不合适的工具调用。

不要把检索到的指令视为高于任务访问边界的权限。不要通过重复调用,把同样缺失的证据变成确定结论。如果任务是固定转换,且没有依赖决策的检索,就使用更简单的路径。现有已有文档说明的工作流可以帮助确定这一起点。

工作流用量

套餐:Go 年付方案每月 USD8 起(月付 USD10),Plus 年付方案每月 USD16 起(月付 USD20),Pro 100 年付方案每月 USD80 起(月付 USD100),Pro 200 年付方案每月 USD160 起(月付 USD200),Pro 500 年付方案每月 USD400 起(月付 USD500),每月包含 5,000 至 250,000 个 Flowi Tokens,并支持充值;每次节点运行消耗 1 个 token;不包含第三方 API 和模型使用费用。