不依赖LangChain,手写精简ReAct Agent框架全流程解析
本文介绍如何从零构建不依赖第三方框架的精简ReAct模式Agent,通过感知、思考、行动、执行的循环实现智能行为。文章提供完整Python代码实现(含模拟模式),深入解析意图理解、规划能力和工具调用三大核心原理,并展示实际运行效果。最后提供了扩展思路,包括增加内存、搜索工具和错误处理机制,帮助读者彻底理解大模型智能行为的底层实现。
本文介绍如何从零构建不依赖第三方框架的精简ReAct模式Agent,通过感知、思考、行动、执行的循环实现智能行为。文章提供完整Python代码实现(含模拟模式),深入解析意图理解、规划能力和工具调用三大核心原理,并展示实际运行效果。最后提供了扩展思路,包括增加内存、搜索工具和错误处理机制,帮助读者彻底理解大模型智能行为的底层实现。
前排提示,文末有大模型AGI-CSDN独家资料包哦!
本文不依赖庞大的第三方框架(如LangChain),而是从零手写一个精简的ReAct模式的Agent框架。这样你可以清楚地看到代码底层是如何通过Prompt Engineering(提示词工程)和Python逻辑来实现这些“智能”行为的。
- 核心设计思路:ReAct模式
我们将构建一个Agent,它基于以下循环运行:
-
感知 (Observation)
:接收用户指令。
-
思考与规划 (Thought/Intent)
:分析当前状态,决定下一步做什么。
-
行动 (Action/Tool Call)
:如果需要,生成工具调用的指令。
-
执行 (Execution)
:运行Python函数获取结果。
-
循环
:将结果反馈给大脑,直到任务完成。
你可以直接复制以下代码并在本地运行。为了方便演示,我提供了一个模拟模式 (Mock Mode),这样你即使没有OpenAI API Key也能看到完整的运行流程。








这个程序通过以下三个关键点回应了你的需求:
1. 意图理解 (Intent Understanding)
-
体现位置:
mock_llm_inference中的逻辑判断(或真实LLM的Prompt处理)。 -
原理:Agent接收到自然语言“我想明天下午去北京野餐…”,在内部将其转化为结构化的思考。
-
示例:代码中的
Thought:``用户想要在北京野餐,我需要先检查北京的天气...就是意图理解的产物。它识别出了“地点:北京”和“目的:野餐/查天气”。
2. 规划能力 (Planning)
-
体现位置:System Prompt中的ReAct格式(
Thought->Action->Observation)。 -
原理:用户的一句话包含了两个步骤(查天气 + 订日历)。Agent并没有一次性做完,而是先执行Step 1 (查天气),获得结果后再根据结果(如果天气好)规划Step 2 (订日历)。
-
示例:你可以看到Agent是分步执行的,这就是典型的**链式思维 (Chain of Thought)**规划。
3. 工具调用 (Tool Calling)
-
体现位置:
tools_map和execute_tool逻辑。 -
原理:LLM输出的是文本(JSON字符串),Agent的主循环(
run方法)负责解析这个JSON,找到对应的Python函数 (get_current_weather) 并真正执行它。 -
关键点:LLM不直接运行代码,它只是生成“意图调用哪个函数”的指令,由Agent 框架来“动手”。
- 运行结果:
— Agent 启动 —
用户指令: 我想明天下午去北京野餐,帮我看看天气怎么样。如果天气好,帮我把行程加到日历里。
— 第 1 步思考 —
Thought: 用户想去北京野餐并需要查天气。通过意图分析,我需要先调用天气工具。
Action: {
“tool_name”: “get_current_weather”,
“parameters”: {“location”: “北京”}
}
[系统底层] 正在调用天气API查询: 北京…
Observation: {“location”: “北京”, “temperature”: “25”, “unit”: “celsius”, “forecast”: “晴朗”}
— 第 2 步思考 —
Thought: 我查到了天气是晴朗的,适合野餐。根据用户要求,我现在需要把行程加入日历。
Action: {
“tool_name”: “add_calendar_event”,
“parameters”: {“event_name”: “北京野餐”, “time”: “明天下午”}
}
[系统底层] 正在调用日历API: 在 明天下午 添加 ‘北京野餐’…
Observation: {“status”: “success”, “message”: “已成功添加日程:北京野餐 于 明天下午”}
— 第 3 步思考 —
Thought: 日程已经添加成功,任务全部完成。
Final Answer: 北京明天天气晴朗(25度),非常适合野餐!我已经帮您把“北京野餐”添加到了明天下午的日程中。
最终结果: 北京明天天气晴朗(25度),非常适合野餐!我已经帮您把“北京野餐”添加到了明天下午的日程中。
如果你有 OpenAI API Key,只需修改 call_llm函数:

一旦替换了这个函数,Agent 就能够处理任何未见过的指令,自动分析意图并调用你定义的工具,而不需要像mock_llm_inference那样写死逻辑。
- 最后:
你可以尝试在这个框架上做以下扩展:
- 增加内存:目前
history变量就是短期记忆。你可以添加数据库来存储长期记忆。
2.增加搜索工具:添加一个 Google Search 工具(如 SerpAPI),让它能回答即时新闻。
3.错误处理:当 LLM 输出的 JSON 格式错误时,自动提示 LLM 进行“自我修正 (Self-Correction)”。
读者福利:倘若大家对大模型感兴趣,那么这套大模型学习资料一定对你有用。
针对0基础小白:
如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓


👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉大模型视频和PDF合集👈
这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难。

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐


所有评论(0)