1. 引言随着大语言模型LLM能力的飞速提升AI Agent智能体已成为人工智能领域最热门的方向之一。AI Agent 能够自主感知环境、制定计划、调用工具并执行任务从简单的问答助手进化为真正的数字员工。本文将从零开始带你一步步构建一个可运行的 AI Agent涵盖核心概念、技术选型、代码实现和最佳实践。2. 理解 AI Agent 的核心架构在动手编码之前我们需要先理解 AI Agent 的基本组成。一个典型的 AI Agent 包含以下核心模块感知模块接收用户输入或环境信息理解当前状态。推理与规划模块基于 LLM 分析任务拆解为可执行的子步骤。记忆模块短期记忆对话上下文和长期记忆向量数据库存储的知识。工具调用模块执行具体操作如搜索网页、调用 API、读写文件等。反馈与迭代模块根据执行结果调整策略直到完成任务。这些模块协同工作使 Agent 能够像人类一样思考-行动-观察-调整。3. 技术选型与环境准备我们将使用以下技术栈来构建 AI Agent编程语言Python 3.10LLM 接口OpenAI API兼容接口如 GPT-4oAgent 框架LangChain社区成熟生态丰富向量数据库ChromaDB轻量级适合本地开发工具库Requests、BeautifulSoup网页抓取、Tavily Search API搜索首先安装必要的依赖pip install langchain langchain-openai chromadb tavily-python python-dotenv创建.env文件配置 API 密钥OPENAI_API_KEYyour_openai_api_key TAVILY_API_KEYyour_tavily_api_key4. 构建基础 Agent从简单对话开始我们先实现一个最简版本的 Agent它能够理解用户意图并调用一个工具。以下代码展示了 Agent 的核心循环import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain.agents import create_react_agent, AgentExecutor from langchain.tools import tool from langchain.prompts import PromptTemplate load_dotenv() 1. 初始化 LLM llm ChatOpenAI(modelgpt-4o, temperature0) 2. 定义工具 tool def get_current_time() - str: 获取当前系统时间 from datetime import datetime return datetime.now().strftime(%Y-%m-%d %H:%M:%S) 3. 创建 Agent tools [get_current_time] prompt PromptTemplate.from_template( 你是一个智能助手。请使用以下工具来回答用户的问题。\n 工具列表{tools}\n 工具名称{tool_names}\n 用户输入{input}\n 思考过程{agent_scratchpad} ) agent create_react_agent(llm, tools, prompt) agent_executor AgentExecutor(agentagent, toolstools, verboseTrue) 4. 运行 Agent response agent_executor.invoke({input: 现在几点了}) print(response[output])这段代码演示了 Agent 的四个关键步骤初始化 LLM、定义工具、创建 Agent 执行器、运行推理。运行后Agent 会自动判断需要调用get_current_time工具并将结果返回给用户。5. 增强 Agent添加搜索与记忆能力基础 Agent 只能调用本地工具接下来我们为其添加网络搜索和对话记忆能力使其更像一个真正的智能助手。from langchain.memory import ConversationBufferMemory from langchain.agents import Tool from langchain_community.tools.tavily_search import TavilySearchResults 搜索工具 search_tool TavilySearchResults(max_results3) 包装为 LangChain Tool tools [ Tool( nameweb_search, funcsearch_tool.run, description搜索互联网获取最新信息输入为搜索关键词 ), Tool( nameget_time, funcget_current_time, description获取当前系统时间 ) ] 添加对话记忆 memory ConversationBufferMemory(memory_keychat_history, return_messagesTrue) 创建带记忆的 Agent agent create_react_agent(llm, tools, prompt) agent_executor AgentExecutor( agentagent, toolstools, memorymemory, verboseTrue, max_iterations5 # 防止无限循环 ) 多轮对话测试 agent_executor.invoke({input: 帮我搜索一下2025年诺贝尔物理学奖得主}) agent_executor.invoke({input: 刚才提到的获奖者主要贡献是什么})通过ConversationBufferMemoryAgent 能够记住前一轮对话的上下文实现连贯的多轮交互。max_iterations参数则防止 Agent 陷入死循环。6. 进阶实现自主规划与任务分解真正的 AI Agent 需要具备复杂任务分解能力。下面我们实现一个研究助手Agent它能将用户的问题拆解为多个子任务并依次执行from langchain.chains import LLMChain from langchain.prompts import ChatPromptTemplate 任务分解提示词 planner_prompt ChatPromptTemplate.from_messages([ (system, 你是一个任务规划专家。将用户的问题拆解为最多3个可执行的子任务每个子任务应包含明确的搜索关键词。), (human, 用户问题{input}\n请输出JSON格式的任务列表格式[{{task: 描述, query: 搜索关键词}}]) ]) planner_chain LLMChain(llmllm, promptplanner_prompt) 执行规划 plan planner_chain.run(input分析2025年AI行业的主要趋势) print(任务规划, plan) 依次执行子任务 import json tasks json.loads(plan) results [] for task in tasks: search_result search_tool.run(task[query]) results.append({task: task[task], result: search_result}) 汇总结果 summary_prompt ChatPromptTemplate.from_messages([ (system, 你是一个分析报告撰写专家。基于以下子任务结果生成一份完整的分析报告。), (human, 子任务结果{results}) ]) summary_chain LLMChain(llmllm, promptsummary_prompt) final_report summary_chain.run(resultsjson.dumps(results, ensure_asciiFalse)) print(final_report)这种规划-执行-汇总模式是高级 Agent 的典型架构。Agent 先利用 LLM 的推理能力制定计划然后按计划调用工具最后整合结果输出。7. 部署与生产化建议将 Agent 部署到生产环境时需要考虑以下关键点错误处理添加重试机制和降级策略当 API 调用失败时自动切换备用方案。速率限制使用令牌桶算法控制 API 调用频率避免触发限流。安全审计对工具调用进行白名单控制防止 Agent 执行危险操作。监控与日志记录每次 Agent 的思考过程和工具调用结果便于调试和优化。成本控制设置每次对话的 Token 上限使用缓存减少重复调用。推荐使用 FastAPI 将 Agent 包装为 RESTful 服务from fastapi import FastAPI from pydantic import BaseModel app FastAPI() class Query(BaseModel): text: str session_id: str default app.post(/agent/chat) async def chat(query: Query): # 根据 session_id 管理不同会话的记忆 response agent_executor.invoke({input: query.text}) return {response: response[output]}8. 总结与下一步学习方向本文从零开始带你构建了一个具备搜索、记忆和任务分解能力的 AI Agent。核心要点总结如下AI Agent 的核心是感知-规划-行动-观察循环。LangChain 提供了便捷的 Agent 构建框架降低了开发门槛。工具调用和记忆管理是 Agent 智能程度的关键。生产化部署需要关注安全、成本和可观测性。下一步可以探索的方向包括多 Agent 协作如 AutoGen、CrewAI、基于 ReAct 模式的复杂推理、以及将 Agent 与 RAG检索增强生成系统结合构建更强大的知识型助手。