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

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
1点东西4 天前
做了近两年的Agent开发,其实真正要学的就是这五件事
llm·agent·ai编程
晨米酱4 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
invicinble4 天前
记录一个学习技术栈的想法和思路
agent
染指11104 天前
122.Agent-LangChain核心组件-中间件-动态提示词(dynamic_promapt)
人工智能·langchain·agent·agents
是Dream呀4 天前
中秋国庆回家不背电脑,用ToDesk远程反连学校设备,查资料、改作业
人工智能·agent·todesk
漂着的圆木4 天前
Agent 功能参与度:Copilot 怎么算
sql·数据分析·agent·githubcopilot·度量
程序猿编码4 天前
告别改源码适配模型:纯 C++ 可配置 LLM 推理引擎,全格式全结构兼容
c++·大模型·llm·推理引擎
全栈弄潮儿²⁰²⁴4 天前
AI Agent 开发实战(30):限流、缓存与成本控制
人工智能·gpt·缓存·agent·限流·agi·成本控制
瑶山4 天前
开源编程Agent-OpenCode完整使用教程
开源·agent·ai编程·opencode