简单实现一个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:**继续推理,或给出最终答案

相关推荐
GISer_Jing8 小时前
Agent核心内容
后端·ai·langchain
Flynn Liang10 小时前
可观测性与成本治理:一次对话的 17 个观测点
java·langchain·可观测性·micrometer·langchain4j·token 成本·llm 监控
郝学胜-神的一滴20 小时前
LangChain Skill 实现(渐进披露 On-Demand Skill,LangChain 官方 Deep Agent Skill 模式)
开发语言·python·langchain·numpy
Flynn Liang2 天前
Rerank 与上下文工程:重排、压缩与引用溯源的收益边界
langchain·rag·langchain4j·rerank·上下文工程·引用溯源
Flynn Liang2 天前
RAG 评估体系:黄金集、检索指标与 LLM-as-Judge 落地
java·langchain·rag·评估·langchain4j·检索指标
啊吧怪不啊吧3 天前
LangChain之绑定工具
langchain
努力的小郑3 天前
数据查到了,回答去哪儿了?一次百炼 + LangChain 排查实录
后端·langchain·agent
承渊政道5 天前
LangChainAI应用开发框架【LangChain与LangGraph介绍】
langchain·大模型·langgraph·ai应用开发
Flynn Liang5 天前
AiServices 源码级拆解:一个接口如何变成 RAG Agent
java·langchain·源码分析·rag·langchain4j·aiservices
Flynn Liang5 天前
LangChain4j 1.23 架构全景:Java 大模型应用的 6 层抽象
java·langchain·大模型·rag·ai agent·langchain4j