用LangChain搭AI Agent:让AI自己决策用工具
这篇教大家用 LangChain 搭一个能自主决策的 AI Agent。一、Agent 和普通对话 AI 的区别
普通 ChatGPT 对话:你问它答,它只能生成文字。Agent 能用工具:搜索、计算、执行代码、调 API。它收到你的请求后会自己决定用什么工具、按什么顺序用。
二、最小 Agent 代码
from langchain.agents import create_react_agent, AgentExecutor
from langchain_openai import ChatOpenAI
from langchain.tools import Tool
from langchain import hub
# 定义工具
def search_func(query):
# 这里放搜索逻辑
return f"搜索结果: {query}"
def calc_func(expr):
try:
return str(eval(expr))
except:
return "计算失败"
tools = [
Tool(name="搜索", func=search_func, description="搜索互联网信息"),
Tool(name="计算器", func=calc_func, description="数学计算")
]
# 创建 Agent
llm = ChatOpenAI(model="deepseek-chat", api_key="你的key",
base_url="https://api.deepseek.com/v1")
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# 运行
result = executor.invoke({"input": "3的5次方是多少?再搜索一下2026年中国GDP"})
print(result["output"])
三、ReAct 模式
LangChain Agent 默认用 ReAct 模式:Thought → Action → Observation 循环。AI 先思考"我需要做什么",然后调工具,看到结果后再思考下一步。直到任务完成。
四、实用工具推荐
[*]DuckDuckGo Search:免费搜索,不需要 API key
[*]Python REPL:让 AI 能执行 Python 代码
[*]Requests:让 AI 能调任意 URL 的 API
[*]Wikipedia:查百科知识
五、注意事项
[*]Agent 会反复调 LLM,token 消耗大,注意费用
[*]verbose=True 打印思考过程,调试时很有用,上线关掉
[*]max_iterations 设个上限(比如 5),防止 Agent 死循环
https://www.metk.cn/img/posts/ai_agent_langchain.jpg 这个结论我保留意见,至少在我们行业不太成立,可能跟样本有关。 同意楼主,但落地的时候一定要考虑老系统的兼容,改造成本容易被低估。 这个成本账算得很实在,我这边也是类似情况,量小的时候真没必要自己折腾。 帖子里那个数字挺关键的,不过不同规模的团队差异会很大,不能直接套。 有个细节想确认,你说的这个数据是实验室环境还是生产环境跑出来的? 这篇讲得比我之前看到的都实在,没那么多虚的,赞一个。 这个判断我认同,短期看价格,长期还是看能不能嵌进业务流程里。 我之前也研究过这个方向,最后放弃了,主要是我这边数据量根本不够。 同感。这东西不是不能用,是很多人把它当万能药了,场景不对就是白花钱。