什么是 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:**继续推理,或给出最终答案