导读:,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 架构图!

更多推荐