【连载】零基础跟我学做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大模型应用开发学习视频及资料,在这里

相关推荐
circuitsosk6 小时前
跨境电商智能化实战:AI如何赋能客服自动回复、广告智能投放与供应链预测
大数据·人工智能·python·langchain·智能客服
mCell7 小时前
用 Cordis 从零构建一个 Mini DeepSeek Harness
typescript·agent·deepseek
过期的秋刀鱼!7 小时前
LangChain-D1-模型的工作流程
人工智能·python·langchain
青山是哪个青山7 小时前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
nix.gnehc8 小时前
Agent 的解剖 -- Harness 到底在解什么
agent
神奇霸王龙8 小时前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
lzjava20248 小时前
LangChain4j集成MCP
langchain
一拳不是超人8 小时前
DeepSeek Harness 为什么敢说"一切皆插件"?拆透 Cordis 引擎的五大核心机制
前端·人工智能·agent
Tisfy8 小时前
Codex:通过编辑配置文件添加带Bearer的自定义MCP
数据库·大模型·agent·codex·mcp
XLYcmy9 小时前
京东 算法实习一面 上
rnn·神经网络·llm·微调·transformer·训练·对齐