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

相关推荐
染指11103 小时前
134.Agent-多Agent框架-LangChain多智能体
人工智能·中间件·langchain·agents
打工仔折腾 AI5 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
dora7 小时前
LangChain4j 新手入门实战教程(Java版)
后端·langchain·agent
浮生望13 小时前
LangGraph 实战入门:用状态图写出分支、重试与人工确认
langchain·agent
10年前端老司机13 小时前
原来LangChain社区隐藏着这么多有趣的工具
人工智能·langchain·agent
桃西西呀13 小时前
LangChain 之五:智能体与工具
人工智能·langchain·llm
不好听61315 小时前
当 Agent 框架开始「交钥匙」——DeepAgents 系列之一
langchain
光影少年15 小时前
langchain与langgraph区别以及学习路线
elasticsearch·langchain·llm
不好听61315 小时前
六种 Hook 与两种范式——DeepAgents 系列之二
langchain