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

相关推荐
云和数据.ChenGuang35 分钟前
LangChain 实战指南:从入门到构建智能应用
开发语言·人工智能·python·langchain
怕浪猫40 分钟前
LLMOps 架构设计:从零搭建一个 AI 平台,我画了完整的系统图
架构·llm·aigc
羞儿44 分钟前
Cordis 内核:五概念、生命周期与事件
llm·agent·harness·cordis 内核
一缕82年的清风1 小时前
生产级多智能体协作避坑:死锁防范与确定性状态机实战
agent
lucas_AI1 小时前
Librarian Agents:别等提问了再翻原文——先训练一个「图书管理员」把长文档收拾好
agent
lucas_AI1 小时前
DocPilot:长文档问答别硬灌上下文——让小模型学会「编排」一场跨页取证
agent
lucas_AI1 小时前
同一个问题问了 14 遍,12 个部署改了答案:LLM 做医疗器械合规判定,确定性先不过关
llm
.Bryce.2 小时前
你了解 Blackboard(黑板系统)吗?听说过基于黑板系统实现的智能体吗?
java·网络·gpt·php·agent·codex·黑板系统
流烟默2 小时前
A2A 与 MCP 双协议网关设计指南
安全·agent·mcp·a2a