简单实现一个LangChain Agent

什么是 LangChain Agent?

简单说: Agent = 大语言模型 + 工具 + 自主决策能力。

普通的大模型只能"说",而 Agent 能"做" ------ 它可以根据问题判断是否需要调用外部工具(比如计算器、文件读取、数据库查询),执行后再整合结果,给出最终答案。这就像给 AI 装上了"手脚"。而 LangChain 是一个流行的开源框架,帮我们轻松构建这样的智能体。

启动本地大模型服务

这里也可以使用联网的大模型, 我本地使用LmStudio, 不知道怎么使用的可以看之前以前的文章

https://blog.csdn.net/winerpro/article/details/147027367?spm=1001.2014.3001.5501

安装 Python 依赖

python 复制代码
pip install langchain langchain-openai

代码

python 复制代码
from langchain_openai import ChatOpenAI
from langchain_classic.agents.initialize import initialize_agent
from langchain_classic.agents import Tool, AgentType

# 配置本地大模型(替换为你自己的本地地址和模型名)
llm = ChatOpenAI(model='qwen2.5-7b-instruct-1m',base_url='http://127.0.0.1:1234/v1',temperature=0.5,api_key='123')

#定义一个超简单的工具:只支持加法
def add_two_numbers(query: str) -> str:
    """输入格式应为 'a + b',例如 '123 + 456'"""
    print('\n')
    print("正在处理:", query)
    print('\n')
    try:
        parts = query.split('+')
        a = float(parts[0].strip())
        b = float(parts[1].strip())
        return str(a + b)
    except:
        return "格式错误,请输入类似 '10 + 20' 的表达式"

#把函数包装成 LangChain 工具
tools = [
    Tool(
        name="Adder",
        func=add_two_numbers,
        description="用于计算两个数字相加,输入必须是 '数字 + 数字' 的形式"
    )
]

#创建 Agent(使用 ReAct 思维链)
agent = initialize_agent(
    tools,
    llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True  # 打印思考过程,方便学习
)

# 测试
if __name__ == "__main__":
    question = "123 加 456 等于多少?"
    print(f"用户问:{question}\n")
    result = agent.run(question)
    print(f"\n最终答案:{result}")

输出结果

这就是著名的 ReAct(Reason + Act)机制:

**Reason(推理):**模型先思考"我能不能直接答?不能,得用工具。"

**Act(行动):**决定调用哪个工具,并生成输入

**Observe(观察):**拿到工具返回的结果

**Repeat or Answer:**继续推理,或给出最终答案

相关推荐
吃饱了得干活31 分钟前
别只会传 temperature!一文挖透 LangChain 模型配置:Profile、全参数与运行时动态覆盖
python·langchain
龙腾亚太1 小时前
基础差/零基础人员具身智能学习路线
langchain·qlora·大模型培训·智能体培训·具身智能培训·llm 实战教程
xywww1688 小时前
大模型 API 选型实战:GPT、Gemini、Claude 接入时该看哪些指标?
运维·服务器·人工智能·python·gpt·langchain
糖果店的幽灵20 小时前
从 GPT Researcher 学习 LangChain
gpt·学习·langchain
吃饱了得干活20 小时前
LangChain 模型调用方案:invoke、stream、batch 的同步与异步
langchain·llm
吃饱了得干活1 天前
LangChain 多对话模型统一接入工程实践
langchain
一只小bit1 天前
LangChain 核型组件与消息管理及提示词模版
windows·microsoft·langchain
齐 飞1 天前
LangGraph快速入门-03节点与边
python·langchain
知行合一。。。1 天前
LangChain--06--结构化输出(Structured Output)
android·java·langchain
飞猪~2 天前
LangChain python 版本 第一集
开发语言·python·langchain