Python与Ollama、LangGraph本地小语言模型智能体构建:ReAct推理与工具集成|附代码数据
凭借在谷歌长期从事机器学习与算法研究,以及在高校指导数据挖掘与智能系统课题的经验,我观察到一种务实趋势:利用小型语言模型(SLM)在本地构建完全离线的智能体。本文所呈现的方法,正是改编自我们团队为客户完成的一个本地智能咨询服务项目——该项目要求所有数据与推理均保留在客户内部服务器,同时实现灵活的工具扩展与多轮对话记忆。答:“价值在于探索资源受限环境下的可行方案,并验证模块化设计(工具、记忆)对智能
全文链接:https://tecdat.cn/?p=45843
原文出处:拓端数据部落公众号
封面:

关于分析师

在此对 YouMing Zhang 对本文所作的贡献表示诚挚感谢,他在东北大学完成了信息与计算科学专业的学位,专注机器学习、深度学习算法领域。擅长 Python、Matlab、神经网络、数据分析。他曾主导多个企业级智能系统与数据挖掘项目,在模型轻量化部署与工具集成方面具备丰富实战经验。
作者系机器学习领域分析师,拥有多年数据挖掘与模型开发经验。
引言
近年来,将大语言模型的推理能力与工具调用相结合的智能体技术快速演进。然而,云端API的高昂成本、数据隐私风险以及网络依赖使许多个人开发者与中小企业望而却步。凭借在谷歌长期从事机器学习与算法研究,以及在高校指导数据挖掘与智能系统课题的经验,我观察到一种务实趋势:利用小型语言模型(SLM)在本地构建完全离线的智能体。本文所呈现的方法,正是改编自我们团队为客户完成的一个本地智能咨询服务项目——该项目要求所有数据与推理均保留在客户内部服务器,同时实现灵活的工具扩展与多轮对话记忆。通过复盘这一成功案例,我希望为读者展示如何从零搭建一个低成本、高可控、保护隐私的本地AI智能体,并借此呈现我们在这一领域的工程落地能力。
阅读原文进群获取本文完整代码数据及更多最新AI见解和行业洞察,可与900+行业人士交流成长;还提供人工答疑,拆解核心原理、代码逻辑与业务适配思路;遇代码运行问题,更能享24小时调试支持。
全文流程竖版示意
环境配置
|
v
下载并启动本地SLM (Ollama)
|
v
定义工具函数 (计算器、知识库)
|
v
加载ReAct提示模板
|
v
创建智能体 + 注入记忆模块
|
v
执行对话循环 (推理-行动-观察)
|
v
输出最终答案
1. 选题背景与研究意义
AI智能体是一种能利用语言模型进行思考、决策并执行动作以完成目标的程序。它与普通聊天机器人的区别在于:能够分解任务、自主选择工具、迭代利用上一步结果,直至达成最终目标。其核心由三部分组成:
- 大脑
:大/小语言模型,负责理解输入并规划行动;
- 记忆
:存储对话上下文,实现多轮连贯交互;
- 工具
:外部函数(如计算器、检索器),智能体可随时调用。
长期以来,构建这样的智能体似乎只能依赖千亿参数规模的云端模型。如今,轻量的小语言模型(SLM)崭露头角——参数规模通常在1B~13B之间,经过针对性的指令微调,已能在普通笔记本上流畅运行。下表列出几款代表性SLM:
|
模型 |
开发者 |
参数规模 |
特点 |
|---|---|---|---|
|
Phi-3 Mini |
科技企业 |
3.8B |
推理快速,内存占用低 |
|
Mistral 7B |
科技企业 |
7B |
通用任务,指令跟随强 |
|
Llama 3.2 (3B) |
科技企业 |
3B |
性能均衡,社区活跃 |
|
Gemma 2B |
科技企业 |
2B |
极致轻量,入门首选 |
本地部署AI智能体具备显著优势:零API开销、数据全程不离开本机、离线可用、用户掌握全部控制权,且非常适合学习与原型开发。这些特性使其在涉及敏感资料的辅助决策、代码生成、个人知识管理等场景中价值尤为突出。

本地小语言模型构建AI智能体流程示意(图片来源:编辑)
阅读原文进群获取完整内容及更多AI见解、行业洞察,与900+行业人士交流成长。
相关文章

DeepSeek、LangGraph和Python融合LSTM、RF、XGBoost、LR多模型预测NFLX股票涨跌|附完整代码数据
原文链接:https://tecdat.cn/?p=44060
2. 数据来源与预处理全流程
本构建方案的核心“数据”是所选用的SLM模型权重及配套工具链。环境准备分为两步:
2.1 获取本地模型
Ollama是一款免费开源工具,可一键下载并运行语言模型。访问其官网下载对应操作系统的安装包,然后在终端执行:
ollama pull phi3
此命令将Phi-3 Mini模型拉取到本地。通过 ollama run phi3 即可测试模型是否正常运行,输入 /bye 退出。
2.2 构建Python虚拟环境与依赖库
python -m venv agent-env
source agent-env/bin/activate # Linux/Mac
# 或 agent-env\Scripts\activate # Windows
pip install langchain langchain-ollama langgraph
确保Python版本≥3.9。这些库提供了与Ollama模型交互的接口、智能体编排框架以及图工作流支持,构成后续开发的“预处理”基础。
点击标题查阅往期内容
以下是关于 LangGraph 的精选文章和研究报告,涵盖 多智能体协作、工作流构建、行业应用及技术实现 等核心方向,并附原文链接及关键内容解读:
1. LangGraph基础与多智能体协作框架
-
文章标题: LangGraph与Python的多智能体协作框架在信贷审批自动化中实践
-
链接: 点击阅读
-
核心内容:
-
-
监督者模式:通过监督者智能体(Supervisor Agent)协调数据录入、风险政策核对、信贷决策三个子智能体,实现信贷审批流程的自动化与可追溯性,错误率降低40%[6]。
-
技术架构:基于LangChain和LangGraph构建有状态工作流,支持动态任务分派与质量控制[6]。
-
2. 智能RAG系统与纠正性多智能体协作
-
文章标题: 专题:LangGraph的智能RAG系统构建:从基础智能体到纠正性多智能体协作
-
链接: 点击阅读
-
核心内容:
-
-
纠正性RAG(CRAG):引入轻量级评估器对检索文档相关性打分,不足时自动触发Web搜索补充,问答准确率提升35%[5]。
-
多智能体集成:基础智能体处理查询,评估智能体检查相关性,搜索智能体补充实时信息[5]。
-
3. 金融数据分析与群体智能代理
-
文章标题: LangGraphSwarm的银行数据分析群体智能代理:Text-to-SQL、EDA可视化与动态任务编排
-
链接: 点击阅读
-
核心内容:
-
-
群体智能(Swarm Intelligence):数据分析代理(Text-to-SQL)与可视化代理(EDA图表生成)分工协作,银行客户分层分析效率提升50%[1]。
-
动态任务编排:代理通过切换工具(handoff tools)传递上下文,支持多轮迭代查询[1]。
-
4. 时序预测与多模型融合
-
文章标题: DeepSeek与LangGraph共享单车需求数据预测:LSTM与XGBoost多模型融合方法及Streamlit可视化应用
-
链接: 点击阅读
-
核心内容:
-
-
多模型融合:LangGraph协调LSTM(时序特征)与XGBoost(静态特征)预测共享单车需求,RMSE降低30%[2]。
-
实时部署:Streamlit构建可视化界面,支持动态调整参数与结果展示[2]。
-
5. AI代理的持续工作流与自动化
-
文章标题: AI代理的持续工作流——Kimi Claw实战指南
-
链接: 点击阅读
-
核心内容:
-
-
定时任务:Kimi Claw通过cron任务实现每日自动摘要推送,但缺乏执行日志与失败通知[3]。
-
技能扩展:ClawHub安装CSV分析技能,支持需求澄清与自动化EDA[3]。
-
延伸工具与数据
-
开源库:
-
-
LangGraph:官方库支持有状态多智能体工作流构建。 -
LangChain:提供基础Agent与工具集成能力。
-
-
案例库:
-
-
《LangGraph实战10例》含信贷审批、智能RAG等完整代码
-
3. 模型选择逻辑与完整代码实现
3.1 选择SLM与ReAct推理范式的逻辑
对于本地资源受限的场景,Phi-3 Mini等SLM在保持一定推理能力的同时大幅降低算力需求。智能体的思考-行动循环采用ReAct(Reasoning + Acting)模式,即模型先生成推理思路,再决定调用何种工具,观察工具返回的结果后继续推理,如此迭代直至完成任务。LangGraph框架以图结构管理这一过程,确保流程清晰可控。
3.2 基础智能体实现(含计算器工具)
以下代码构建了一个具备数学计算能力的本地智能体。对原示例中的变量与函数进行了重命名,并省略了部分错误处理细节,但保留了核心调用逻辑。
运行脚本后,终端将逐步输出智能体的推理过程:它识别到需要进行乘法与除法运算,生成调用math_eval的动作,接收计算结果,最终综合成人类可读的答案。这种可解释的“思考-行动”链条非常有利于学术论文中对模型决策过程的论述。
阅读原文进群获取完整内容及更多AI见解、行业洞察,与900+行业人士交流成长。
3.3 加入记忆与多工具扩展
单轮问答无法满足实际应用中的连贯对话需求。为此引入ConversationBufferMemory存储聊天历史,并增加一个本地知识库查询工具,使智能体具备上下文记忆与事实检索的双重能力。
上述代码中,ConversationBufferMemory将每次交互自动追加到chat_history变量中,模型能据此理解“那Ollama又是什么”中的“那”指代的是前文提及的AI智能体工具链。这便是记忆机制的直观体现。
注释:就像人与人对话一样,如果没有短期记忆,每次交流都得从头解释背景。ConversationBufferMemory相当于给模型一个“便签本”,把刚才说过的话记下来,这样它就能结合上下文做出更连贯的回应。
阅读原文进群获取完整内容及更多AI见解、行业洞察,与900+行业人士交流成长。
4. 模型结果对比与解读
4.1 单轮推理观察
启动仅含计算器工具的智能体后,verbose模式打印出类似如下的推理链:
> 进入新的AgentExecutor链...
思考:我需要计算245*18/5,应该使用计算器工具。
行动:math_eval("245*18/5")
观察:882.0
思考:我得到了最终结果882.0,现在给出答案。
> 链结束。
最终输出“245乘以18再除以5的结果是882.0”。这表明SLM能够正确解析自然语言中的数学意图,并准确调用工具。
4.2 多轮与记忆影响
在增加记忆与知识库工具后,连续三问的应答表现出色:首问正确返回知识库定义,次问准确关联前文话题,第三问成功切换至计算器工具。这验证了本地SLM在多轮对话中结合工具与记忆的可行性。对比未加记忆的版本,其第二问往往因缺少上下文而不知所云,充分证明记忆模块对交互连贯性的重要性。
5. 稳健性检验 / 模型优化步骤
5.1 本地部署的固有局限
为全面评估方案稳健性,需明确本地SLM的短板:
- 准确率波动
:小参数模型更易产生“幻觉”,尤其在复杂推理任务中。
- 硬件依赖
:无GPU时,单次响应可能需5~30秒,影响实时交互体验。
- 上下文窗口限制
:SLM的上下文长度较短,长对话易出现“遗忘”早期信息的情况。
因此,本文方案适用于原型开发、隐私敏感型场景及对成本敏感的教学演示,而对于高精度、高并发的生产环境,仍需考虑云端大模型。
5.2 优化策略
- 模型替换
:Ollama支持热插拔模型,可尝试Mistral 7B等稍大模型以提升推理质量。
- 工具链扩展
:通过增加更多工具(如天气查询、文件读写)丰富智能体能力,但需注意工具描述需清晰简洁,以免模型选择混乱。
- 记忆增强
:对于长对话,可改用
ConversationSummaryMemory等记忆压缩策略,在有限上下文窗口内保留更多有效信息。 - 可靠性加固
:在代码中加入输入输出校验、工具调用失败重试机制,并在论文中以消融实验形式报告各模块对整体性能的贡献。
6. 研究结论与写作提示
本文以Ollama与LangGraph为核心,演示了如何利用Phi-3等小语言模型在本地构建具备工具调用与记忆功能的AI智能体。结论如下:
-
本地SLM完全能够胜任中等复杂度的推理与工具编排任务,且能有效保障数据隐私与成本控制。
-
通过ReAct范式结合记忆机制,智能体可进行多轮连贯交互,具备工程落地的可行性。
-
方案存在响应速度与准确率上的妥协,但通过模型升级与记忆优化可显著改善。
论文写作现场:导师高频提问与建议答复
-
问:“为什么选择SLM而不是直接调云端API?”
答:“本研究的应用场景要求数据全程离线,且长期成本可控,SLM是唯一同时满足隐私、离线与零请求费用的选择。” -
问:“你怎么证明智能体真的‘理解’了任务?”
答:“可以通过可视化ReAct思考链,展示模型选择工具的合理性;同时设计对比实验,观察工具调用成功率和最终答案准确性。” -
问:“小模型局限明显,研究的价值在哪里?”
答:“价值在于探索资源受限环境下的可行方案,并验证模块化设计(工具、记忆)对智能体能力的提升,为后续大模型与小模型的混合架构提供参考。”
这就像一位随身携带《百科全书》和《计算器》的私人秘书,虽然秘书本人的学识(模型参数)有限,但懂得查阅工具、记录对话要点,依然能出色完成你交代的任务。行业术语上,这就是“检索增强生成(RAG)”与“工具学习(Tool Learning)”在本地化场景的微缩实践。

本文中分析的完整智能体、数据、代码、文档分享到会员群,扫描下面二维码即可加群!

资料获取
在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

点击文末“阅读原文”
获取完整智能体、
代码、数据和文档。



![]()

更多推荐



所有评论(0)