【连载】零基础跟我学做AI Agent(第3课:用LangChain开发一个做题Agent)

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在这里

今天讲第3课,用一个做Agent的经典框架------LangChain,开发一个做数学题的Agent。

LangChain是非常强大的大语言模型应用开发库,做Agent很方便,可能大家也很熟悉,但LangChain最大的问题是版本和版本之间变化太快,尤其现在终于到了1.0.0,与旧版比较,类库结构已面目全非,可能还要重新熟悉。本课是针对LangChian最新版V1.0.0的。

一、学习目标

大模型不太擅长数字计算,DeepSeek训练时用强化学习,对这个方面做了很多改进,但总归做数学题,文本生成的方法不如数学工具来的准确,所以要用Agent外挂工具。本讲的内容是一个做数字题的Agent,只有20多行程序,但会涉及大模型、工具调用、Function-Calling、ReAct Agent等知识,是一个完整的Agent案例。

二、源代码

先上代码,再解释。如在手机上不易查看,请到 的chapter-x-0base下载代码和操作步骤。

xml 复制代码
# agent_langchain.py
import os
from langchain.agents import create_agent
os.environ['OPENAI_API_BASE'] = 'http://localhost:11434/v1'
os.environ["OPENAI_API_KEY"] = "EMPTY"
def calculator(expression: str) -> str:
"""用于执行数学计算。输入是一个数学表达式,例如:'15 ** 2 + 28 / 4'"""
try:
print("\n======调用到工具=======\n")
print(expression)
print("\n======================\n")
return str(eval(expression))
except Exception as e:
return f"计算错误: {e}"
agent = create_agent(
model="openai:qwen3", tools=[calculator],
system_prompt="你是一个用于执行数学计算的Agent",
)
response = agent.invoke(
{"messages": [{"role": "user", "content": "计算15的平方加上32除以4的结果是多少?"}]}
)
print(response)

1、calculator是个工具方法,传入表达式,给出结果。那么问题来了,这个方法什么时候调,表达式参数是谁给的?这就与Agent有关,在建Agent的时候,这个方法作为Tools之一被设置进去,那用户通过Agent向大模型提问时,这些工具信息也作为提示词的一部分传给大模型,这样大模型就会根据情况生成一个调用calculator的命令文本,顺便把参数也生成。

2、问题是大模型不能直接调工具方法,不然大家都让他调,他也受不了,他用的方法是远程指挥,生成的文本回传给Agent,Agent调他自己的方法。这个过程就叫Function-Calling。

三、运行

1、环境安装

ini 复制代码
# 创建虚拟环境
conda create -n part03 python=3.13 -y
# 激活虚拟环境
conda activate part03
# 安装依赖库
pip install langchain==1.0.0 langchain-community==1.0.0a1 langchain-openai==1.0.0 -i https://pypi.mirrors.ustc.edu.cn/simple

2、测试

复制代码
python agent_langchain.py

问题是:计算15的平方加上32除以4的结果是多少?大模型没有直接算,而是生成一个调用工具的文本,把参数也给生成,然后交给Agent调calculator算,算完再给大模型总结一下。

3、结果

从结果上看,模型生成的文本命中了工具,工具计算后再由模型总结。

未完待续!

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在这里

相关推荐
恋上钢琴的虫2 小时前
【大模型实战篇】利用TensorRT LLM部署及推理大模型实战(bloom560m、chatglm-6b等大模型)
llm
沛沛老爹3 小时前
LightRAG系列3:LightRAG 环境准备与快速启动
大模型·llm·安装·helloworld·rag·lightrag·ai入门
安思派Anspire4 小时前
构建自我提升的AI智能体:完整训练架构指南
aigc·openai·agent
北极的树4 小时前
Google ADK上下文工程:当AI Agent学会像编译器一样管理上下文
google·agent
SelectDB4 小时前
面向 Agent 的高并发分析:Doris vs. Snowflake vs. ClickHouse
数据库·apache·agent
_大学牲5 小时前
全网爆火的豆包手机,到底是如何实现自动化的?一篇文章带你了解
android·人工智能·agent
亚里随笔6 小时前
推理语言模型训练策略的协同作用:预训练、中间训练与强化学习的交互机制
人工智能·语言模型·自然语言处理·llm·rl·agentic
micro_cloud_fly6 小时前
langchain langgraph历史会话的 json序列化
python·langchain·json
Mintopia6 小时前
🚀 技术并购视角:AIGC领域的 Web 生态整合与资源重组
人工智能·llm·aigc