news 2026/7/2 2:33:05

AI Agent工作流编排:ReAct模式深度解析与实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI Agent工作流编排:ReAct模式深度解析与实现

AI Agent工作流编排:ReAct模式深度解析与实现

引言

å¤§è¯­è¨€æ¨¡åž‹è™½ç„¶å ·å¤‡å¼ºå¤§çš„æŽ¨ç†èƒ½åŠ›ï¼Œä½†é¢å¯¹å¤æ‚ä»»åŠ¡æ—¶ï¼Œå¦‚æžœä» ä¾èµ–ä¸€æ¬¡æ€§çš„è¾“å ¥è¾“å‡ºï¼Œå¾€å¾€éš¾ä»¥ä¿è¯ç­”æ¡ˆçš„å‡†ç¡®æ€§å’Œå¯é æ€§ã€‚å¦‚ä½•è®©æ¨¡åž‹åƒäººç±»ä¸€æ ·"å ˆæ€è€ƒã€å†è¡ŒåŠ¨ã€å†è§‚å¯Ÿã€å†è°ƒæ•´"?ReAct(Reasoning + Actingï¼‰æ¨¡å¼ç»™å‡ºäº†ä¸€ç§ä¼˜é› çš„è§£å†³æ–¹æ¡ˆã€‚æœ¬æ–‡å°†æ·±å ¥è§£æž ReAct çš„æ ¸å¿ƒæœºåˆ¶ï¼Œå¹¶å¸¦ä½ ä»Žé›¶å®žçŽ°ä¸€ä¸ªåŸºäºŽ ReAct 的 AI Agent。

一、ReAct 模式概述

ReAct 是由普林斯顿大学和 Google çš„ç ”ç©¶è€ åœ¨ 2022 å¹´æå‡ºçš„ä¸€ä¸ªæ¡†æž¶ï¼Œå ¶æ ¸å¿ƒæ€æƒ³æ˜¯å°†**推理(Reasoning)与行动(Acting)**交替进行,形成一个循环迭代的工作流。

ä¸Žä¼ ç»Ÿçš„ Chain-of-Thought(CoTï¼Œæ€ç»´é“¾ï¼‰ä» è®©æ¨¡åž‹å±•ç¤ºæŽ¨ç†è¿‡ç¨‹ä¸åŒï¼ŒReAct 让模型在推理过程中主动决定是否需要采取行动,获取外部信息后再继续推理。这种设计让 Agent 能够:

  • 分解复杂任务,逐步解决
  • åœ¨çŸ¥è¯†ä¸è¶³æ—¶ä¸»åŠ¨æŸ¥è¯¢å¤–éƒ¨å·¥å ·
  • æ ¹æ®è¡ŒåŠ¨ç»“æžœåŠ¨æ€è°ƒæ•´åŽç»­ç­–ç•¥
  • é¿å "幻觉",提升答案可信度

二、ReAct çš„æ ¸å¿ƒå¾ªçŽ¯ï¼šæ€è€ƒ-观察-行动

ReAct 的工作流可以抽象为一个不断循环的三阶段模式:

┌─────────┐ ┌─────────┐ ┌─────────┐ │ Thought │ → │ Action │ → │ Observation │ → (循环) │ (思考) │ │ (行动) │ │ (观察) │ └─────────┘ └─────────┘ └─────────┘

2.1 思考(Thought)

æ¨¡åž‹åˆ†æžå½“å‰çŠ¶æ€ï¼Œåˆ¤æ–­æ˜¯å¦éœ€è¦å¤–éƒ¨ä¿¡æ¯ã€‚å ¸åž‹çš„æ€è€ƒå† å®¹å¯èƒ½æ˜¯ï¼š

  • "用户问的是 2024 年诺贝尔物理学奖得主,我的知识截止日期是 2024 å¹´ 4 月,我需要搜索最新信息"
  • "上一步计算结果是 42,接下来我需要验证这个结果是否正确"

2.2 行动(Action)

å¦‚æžœæ€è€ƒåŽå†³å®šéœ€è¦å¤–éƒ¨ä¿¡æ¯ï¼Œæ¨¡åž‹è¾“å‡ºä¸€ä¸ªç»“æž„åŒ–çš„è¡ŒåŠ¨æŒ‡ä»¤ï¼Œé€šå¸¸åŒ å«ä¸¤éƒ¨åˆ†ï¼š

  • Action:要执行的操作名称(如search、calculate、lookup)
  • Action Input:操作所需的参数

2.3 观察(Observation)

执行行动后,将结果以Observationçš„å½¢å¼å›žä¼ ç»™æ¨¡åž‹ã€‚æ¨¡åž‹åŸºäºŽè¿™ä¸ªè§‚å¯Ÿç»“æžœè¿›å ¥ä¸‹ä¸€è½®æ€è€ƒï¼Œå†³å®šç»§ç»­è¡ŒåŠ¨è¿˜æ˜¯ç»™å‡ºæœ€ç»ˆç­”æ¡ˆã€‚

这个循环会持续进行,直到模型认为已经获取了足够信息,输出Final Answer结束任务。

三、实战:从零实现 ReAct Agent

下面我们用 Python 从零实现一个支持 ReAct 模式的 Agentã€‚ä¸ºäº†ç®€åŒ–ï¼Œæˆ‘ä»¬æä¾›ä¸¤ä¸ªå·¥å ·ï¼šsearch(搜索)和calculate(计算)。

3.1 å®šä¹‰å·¥å ·

import re def search(query: str) -> str: """æ¨¡æ‹Ÿæœç´¢å·¥å ·ï¼ˆå®žé™ é¡¹ç›®ä¸­å¯æŽ¥å ¥ Bing/Google Search API)""" knowledge_base = { "2024年诺贝尔物理学奖": "2024年诺贝尔物理学奖授予了约翰·霍普菲尔德(John Hopfield)和杰弗里·辛顿(Geoffrey Hintonï¼‰ï¼Œä»¥è¡¨å½°ä»–ä»¬åœ¨äººå·¥ç¥žç»ç½‘ç»œå’Œæœºå™¨å­¦ä¹ é¢†åŸŸçš„å¼€åˆ›æ€§è´¡çŒ®ã€‚", "çˆ±å› æ–¯å¦å‡ºç”Ÿåœ°": "çˆ±å› æ–¯å¦å‡ºç”ŸäºŽå¾·å›½ä¹Œå°”å§†å¸‚ã€‚", "Pythonå‘æ˜Žè€ ": "Python 由 Guido van Rossum 于 1991 年发明。" } return knowledge_base.get(query, f"æœªæ‰¾åˆ°å ³äºŽ'{query}'的信息。") def calculate(expression: str) -> str: """å®‰å ¨è®¡ç®—å·¥å ·ï¼Œä» æ”¯æŒåŸºæœ¬æ•°å­¦è¿ç®—""" try: # åªå è®¸æ•°å­—å’ŒåŸºæœ¬è¿ç®—ç¬¦ï¼Œé˜²æ­¢ä»£ç æ³¨å ¥ allowed = set("0123456789+-*/.() ") if not all(c in allowed for c in expression): return "é”™è¯¯ï¼šè¡¨è¾¾å¼åŒ å«éžæ³•å­—ç¬¦" result = eval(expression) return str(result) except Exception as e: return f"计算错误:{str(e)}" # å·¥å ·æ³¨å†Œè¡¨ TOOLS = { "search": search, "calculate": calculate }

3.2 构建 ReAct Prompt 模板

REACT_PROMPT = """ä½ æ˜¯ä¸€ä¸ªæ™ºèƒ½åŠ©æ‰‹ï¼Œå¯ä»¥è®¿é—®ä»¥ä¸‹å·¥å ·ï¼š {tools_description} è¯·ä½¿ç”¨ä»¥ä¸‹æ ¼å¼å›žç­”é—®é¢˜ï¼š Question: 用户的问题 Thought: ä½ éœ€è¦åˆ†æžå½“å‰æƒ å†µï¼Œåˆ¤æ–­æ˜¯å¦éœ€è¦ä½¿ç”¨å·¥å · Action: å·¥å ·åç§°ï¼ˆå¯é€‰ï¼š{tool_names}) Action Input: å·¥å ·è¾“å ¥å‚æ•°
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 2:30:08

汽车电子散热管理:DRV8213驱动器与MF25060V2风扇实战

1. 为什么电子系统需要主动散热管理现代电子系统面临的核心挑战之一就是热管理问题。以汽车电子为例,发动机舱内的ECU(电子控制单元)工作环境温度可能高达85C以上,而半导体器件的工作温度每升高10C,其可靠性就会下降约…

作者头像 李华
网站建设 2026/7/2 2:28:27

新都中端民办幼儿园性价比评测 —— 基于玉西幼儿园多维办学指标分析

新都中端民办幼儿园性价比评测 —— 基于玉西幼儿园多维办学指标分析摘要为量化评估新都区中端价位民办幼儿园综合办学性价比,本文构建区位、收费、膳食、教学、便民服务五大评测维度,以成都市新都区玉西幼儿园为评测对象,通过园区公示文件、…

作者头像 李华
网站建设 2026/7/2 2:24:30

显卡驱动清理终极指南:如何使用DDU解决驱动冲突问题

显卡驱动清理终极指南:如何使用DDU解决驱动冲突问题 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller …

作者头像 李华