从零到一:用 LangChain 搭建你的第一个 AI Agent,让 LLM 自己干活!
导读:,2024年最火的不是大模型本身,而是基于大模型的AI Agent。它能自主思考、调用工具、执行任务——不再是"你说一句我回一句"的聊天机器人,而是真正能帮你干活的数字员工。本文从零带你搭建一个完整的 AI Agent,包含搜索工具、计算工具、文件操作三大能力代码可复现,建议收藏!
一、什么是 AI Agent?
简单来说,AI Agent = LLM(大语言模型)+ 工具(Tools)+ 记忆(Memory)+ 规划(Planning)。
传统的 LLM 只能根据训练数据回答问题。而 Agent 可以:
- 🧠自主决策:遇到不会的问题,自己去搜索
- 🔧调用工具:可以执行代码、查询数据库、发送邮件
- 🔄多步推理:一个问题拆成多步,逐步解决
- 💾记忆上下文:记住之前的对话和操作结果
二、Agent 核心架构解析
主流的 Agent 框架(LangChain、AutoGPT、MetaGPT)都遵循ReAct模式:
Thought(思考) → Action(行动) → Observation(观察) → Thought(再思考)...
| 阶段 | 说明 | 示例 |
|---|---|---|
| 感知 | 理解用户意图 | "帮我查今天天气并推荐穿搭" |
| 规划 | 拆解为子任务 | ①查天气 ②根据天气推荐 |
| 执行 | 调用具体工具 | search_weather() → recommend_outfit() |
| 反思 | 评估结果是否满足 | 信息不完整 → 再次搜索 |
| 输出 | 整合结果返回 | "今天 25°C 晴天,建议穿..." |
三、环境准备
pip install langchain==0.1.0 langchain-openai python-dotenv duckduckgo-search四、动手实现:三大工具集成
4.1 搜索工具
from langchain.tools import tool from duckduckgo_search import DDGS @tool def web_search(query: str) -> str: """当需要查询实时信息时,使用此工具进行网络搜索。""" with DDGS() as ddgs: results = list(ddgs.text(query, max_results=3)) formatted = [] for r in results: formatted.append(f"📌 {r['title']}\n {r['body'][:200]}...") return "\n\n".join(formatted)4.2 计算工具
import math @tool def calculator(expression: str) -> str: """执行数学计算。支持 +、-、*、/、**、sqrt() 等运算。""" allowed_names = {"sqrt": math.sqrt, "sin": math.sin, "pi": math.pi, "log": math.log} result = eval(expression, {"__builtins__": {}}, allowed_names) return f"计算结果:{result}"4.3 文件工具
from datetime import datetime @tool def file_writer(content: str, filename: str = "agent_output.txt") -> str: """将内容写入文件。""" with open(filename, "w", encoding="utf-8") as f: f.write(f"# Agent 生成于 {datetime.now()}\n\n{content}") return f"✅ 内容已成功写入 {filename}"五、完整代码与运行效果
from langchain_openai import ChatOpenAI from langchain.agents import AgentExecutor, create_tool_calling_agent from langchain_core.prompts import ChatPromptTemplate llm = ChatOpenAI(model="gpt-4o", temperature=0.1) tools = [web_search, calculator, file_writer] prompt = ChatPromptTemplate.from_messages([...]) agent = create_tool_calling_agent(llm, tools, prompt) agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True, max_iterations=5) response = agent_executor.invoke({"input": "帮我查一下 2025 年 Gartner AI 技术成熟度曲线"}) print(response['output'])🤖 Agent:已为您整理好 Gartner 2025 AI 技术成熟度曲线报告,核心发现:生成式 AI 进入"幻灭期",Agentic AI 位于"期望膨胀期"顶峰。
六、踩坑记录与优化建议
- 坑1:Agent 无限循环→ 设置
max_iterations=5 - 坑2:工具描述不清晰→ 详细描述参数和用途
- 坑3:温度参数过高→ 使用
temperature=0.1
七、总结与展望
| 要点 | 说明 |
|---|---|
| Agent 本质 | LLM + 工具 + 记忆 + 规划 |
| 核心模式 | ReAct:思考→行动→观察→反思 |
| 关键参数 | temperature=0.1, max_iterations=5 |
💡福利时间:关注本博主,后台回复「Agent实战」获取完整源码 + 企业级 Agent 架构图!
