大模型智能体架构与ReAct框架实现详解
文章介绍了大模型智能体的核心架构(模型、工具、编排),重点讲解了ReAct框架的实现原理。ReAct通过"思考→行动→观察"的循环,使智能体能逐步解决问题。文章提供了详细的代码示例,展示了如何使用LangChain实现ReAct Agent,包括提示词设计、工具定义和模型交互。此外,还对比了ReAct、CoT和ToT三种编排技术在不同场景下的应用,帮助开发者选择合适的框架。
文章介绍了大模型智能体的核心架构(模型、工具、编排),重点讲解了ReAct框架的实现原理。ReAct通过"思考→行动→观察"的循环,使智能体能逐步解决问题。文章提供了详细的代码示例,展示了如何使用LangChain实现ReAct Agent,包括提示词设计、工具定义和模型交互。此外,还对比了ReAct、CoT和ToT三种编排技术在不同场景下的应用,帮助开发者选择合适的框架。
上一篇文章介绍了Agent的前身Function Calling,让大模型具备了调用外部工具的能力,可这显然还不能构成一个能帮助我们干活的智能体。作为一个智能系统,应该要具备自主感知、决策与行动能力,通过观察环境并利用可用工具采取行动,以实现特定目标。一个智能体的核心架构包括三部分:
- 模型:作为“大脑”,承担推理、规划和决策功能。
- 工具:作为“手脚”,扩展智能体的行动能力。
- 编排:作为“神经系统”,管理任务流程与状态切换。通过循环执行“感知→思考→行动→观察”实现动态决策。

编排是什么
模型和工具自然不必多说,接下来重点介绍下编排,它借助快速发展的prompt engineering及相关框架引导推理与规划,使智能体能更高效地与环境交互并完成任务,目前也有很多相关技术:
- ReAct:为语言模型提供“推理并行动”的思维策略,支持在有/无上下文示例的情况下处理用户问题。
- CoT:通过中间步骤实现推理能力的提示工程框架。其子技术包括self-consistency、active-prompt和multimodal CoT,各自针对特定应用场景有不同优劣。
- ToT:适用于探索性或战略前瞻任务的提示工程框架。它扩展了思维链提示技术,允许模型探索多种思维链作为中间步骤,从而通过语言模型实现通用问题求解。
环境动态变化且需实时交互的场景(如智能家居控制、机器人导航)中,可选择ReAct;当任务高度结构化、逻辑明确(如数学题、法律条文分析),且无需外部数据时,可选择CoT;需全局优化或创意发散的任务(如产品设计、战略规划),可容忍较高计算成本时,可选择ToT。

ReAct
ReAct 包含了 Reason 思考与 Act行动 两个部分,它会让大模型把大问题拆分成小问题,一步步地解决,每一步都会尝试调用外部工具来解决问题,并且还会根据工具的反馈结果,思考工具调用是否出了问题。如果判断出问题了,大模型会尝试重新调用工具。这样经过一系列的工具调用后,最终完成目标。
实际上要想赋予大模型ReAct能力,就需要向其提供ReAct Prompt,来引导它一步步地思考如何解决问题。我们可以在LangChain官方提供的ReAct Prompt基础上做一些修改:
{instructions}
TOOLS:
------
You have access to the following tools:
{tools}
To use a tool, please use the following format:
\```
Thought: Do I need to use a tool? Yes
Action: the action to take, should be one of [{tool_names}]
Action Input: the input to the action
Observation: the result of the action
\```
When you have a response to say to the Human, or if you do not need to use a tool, you MUST use the format:
\```
Thought: Do I need to use a tool? No
Final Answer: [your response here]
\```
Begin!
New input: {input}
这段Prompt首先告诉大模型,你可以使用某个工具,然后在回答用户的问题之前,执行N次思考-行动-输入提取-观察工具结果一系列步骤,直到得到最终的答案,再将其返回给用户。
下面我们就来一步一步实现一个简单的Agent吧,首先将前面的Prompt赋值给变量REACT_PROMPT,然后我们还是借用之前定义过的查询天气的工具:
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather of an location, the user shoud supply a location first",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
}
},
"required": ["location"]
},
}
},
]
def get_weather(location):
# 内置city代码
cities = {
"北京": "101010100",
"上海": "101020100",
"成都": "101270101"
}
# api地址
url = 'http://t.weather.sojson.com/api/weather/city/'
# 通过城市的中文获取城市代码
city_code = cities.get(location)
# 网络请求,传入请求api+城市代码
response = requests.get(url + city_code)
# 将数据以json形式返回,这个d就是返回的json数据
d = response.json()
res = str(d)
return res
最后我们可以将Agent的思考过程和工具调用结合到一起,值得注意的是工具的调用仍然需要人为介入,而且要通过正则表达式从大模型的回复中提取函数名及输入参数。
client = OpenAI(
api_key=API_KEY,
base_url="https://api.deepseek.com",
)
def send_messages(messages):
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
tools=tools
)
return response.choices[0].message
instructions = "你是一个天气查询助手,可以查询天气"
query = "成都今日的温度是多少?"
prompt = REACT_PROMPT.format(instructions=instructions, tools=tools, tool_names="get_weather", input=query)
messages = [{"role": "user", "content": prompt}]
while True:
response = send_messages(messages)
response_text = response.choices[0].message.content
print("大模型的回复:")
print(response_text)
final_answer_match = re.search(r'Final Answer:\s*(.*)', response_text)
if final_answer_match:
final_answer = final_answer_match.group(1)
print("最终答案:", final_answer)
break
messages.append(response.choices[0].message)
action_match = re.search(r'Action:\s*(\w+)', response_text)
action_input_match = re.search(r'Action Input:\s*({.*?}|".*?")', response_text, re.DOTALL)
if action_match and action_input_match:
tool_name = action_match.group(1)
params = json.loads(action_input_match.group(1))
if tool_name == "get_weather":
observation = get_weather(params['location'])
print("人类的回复:Observation:", observation)
messages.append({"role": "user", "content": f"Observation: {observation}"})
从下面的输出中, 我们可以看到模型经历了两轮思考,第一轮面对用户的问题,使用了天气查询工具,获取了天气信息,在第二轮由于已经有了答案,因此就直接返回结果了。

总结
通过上面的例子,我们实现了一个基于ReAct的简易Agent,不过现在的市面上已经有很多可视化的Agent平台了,我们完全可以借助它们来快速搭建自己的应用,之后会逐步介绍目前比较流行的平台。
最后
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。
我整理出这套 AI 大模型突围资料包:
- ✅AI大模型学习路线图
- ✅Agent行业报告
- ✅100集大模型视频教程
- ✅大模型书籍PDF
- ✅DeepSeek教程
- ✅AI产品经理入门资料
完整的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

为什么说现在普通人就业/升职加薪的首选是AI大模型?
人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。

智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200% ,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。
AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。


资料包有什么?
①从入门到精通的全套视频教程⑤⑥
包含提示词工程、RAG、Agent等技术点
② AI大模型学习路线图(还有视频解说)
全过程AI大模型学习路线

③学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的

④各大厂大模型面试题目详解

⑤ 这些资料真的有用吗?
这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。
所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势,构建起"前沿课程+智能实训+精准就业"的高效培养体系。
课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!


如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能 突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓**

更多推荐

所有评论(0)