← 返回教程
编程教程

AI Agent 开发实战:从零构建智能代理

作者: 管理员发布: 2026/4/29👁 3982❤️ 58
使用LangGraph和CrewAI开发能够自主完成复杂任务的AI Agent。
# AI Agent 开发实战:从零构建智能代理 AI Agent是大模型应用的最热门方向。本教程从概念到代码,带你构建一个能自主完成任务的AI Agent。 ## 一、什么是 AI Agent? 传统AI对话:你问一句,AI答一句。 AI Agent:你给一个目标,AI自己拆解任务、调用工具、逐步完成。 ``` 传统模式: 用户 → "帮我查天气" → AI → "北京今天25度" Agent模式: 用户 → "帮我规划周末北京出行" Agent → 思考:需要查天气、查景点、查路线 Agent → 调用天气API → 北京周六25度晴天 Agent → 调用搜索 → 故宫、颐和园推荐 Agent → 调用地图API → 规划路线 Agent → 返回完整出行方案 ``` ## 二、Agent 核心架构 ``` ┌─────────────────────────────────┐ │ 用户输入 │ └────────────┬────────────────────┘ ↓ ┌─────────────────────────────────┐ │ LLM(大脑/决策器) │ │ - 理解任务 │ │ - 制定计划 │ │ - 决定下一步行动 │ └────────────┬────────────────────┘ ↓ ┌─────────────────────────────────┐ │ 工具层(能力) │ │ - 搜索 - 代码执行 - API调用 │ │ - 文件读写 - 数据库操作 │ └────────────┬────────────────────┘ ↓ ┌─────────────────────────────────┐ │ 记忆层(上下文) │ │ - 短期记忆:当前对话 │ │ - 长期记忆:历史知识 │ └─────────────────────────────────┘ ``` ## 三、用 LangChain 快速搭建 ### 3.1 安装 ```bash pip install langchain langchain-openai python-dotenv ``` ### 3.2 定义工具 ```python from langchain.tools import tool @tool def search_web(query: str) -> str: """搜索互联网获取最新信息""" # 这里接入真实搜索API(如SerpAPI、Tavily等) import requests response = requests.get(f"https://api.tavily.com/search?q={query}") return response.json()["results"][0]["content"] @tool def calculate(expression: str) -> str: """计算数学表达式""" return str(eval(expression)) @tool def get_weather(city: str) -> str: """获取指定城市的天气""" import requests response = requests.get(f"https://wttr.in/{city}?format=3") return response.text.strip() tools = [search_web, calculate, get_weather] ``` ### 3.3 创建Agent ```python from langchain_openai import ChatOpenAI from langchain.agents import create_tool_calling_agent, AgentExecutor from langchain_core.prompts import ChatPromptTemplate llm = ChatOpenAI(model="gpt-4o", temperature=0) prompt = ChatPromptTemplate.from_messages([ ("system", "你是一个智能助手,可以使用工具来帮助用户完成任务。请用中文回复。"), ("user", "{input}"), ("placeholder", "{agent_scratchpad}"), ]) agent = create_tool_calling_agent(llm, tools, prompt) agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) ``` ### 3.4 运行 ```python result = agent_executor.invoke({ "input": "北京今天天气怎么样?如果天气好,推荐3个适合出行的景点。" }) print(result["output"]) ``` Agent会自动:调用天气工具 → 分析结果 → 搜索景点 → 返回完整建议。 ## 四、进阶:添加记忆 ```python from langchain.memory import ConversationBufferMemory memory = ConversationBufferMemory(memory_key="chat_history") # 在AgentExecutor中加入memory agent_executor = AgentExecutor( agent=agent, tools=tools, memory=memory, verbose=True ) # 现在Agent能记住之前的对话了 agent_executor.invoke({"input": "帮我记住我喜欢吃火锅"}) agent_executor.invoke({"input": "推荐我今晚吃什么"}) # 会记得你喜欢火锅 ``` ## 五、框架对比 | 框架 | 特点 | 适合场景 | |------|------|---------| | LangChain | 最成熟,组件丰富 | 通用Agent开发 | | CrewAI | 多Agent协作 | 团队模拟场景 | | AutoGen | 微软出品,对话式 | 多人协作 | | Dify | 可视化编排 | 快速搭建,低代码 | | Coze | 字节出品 | 快速发布到各平台 | ## 六、实战项目:智能客服Agent ```python from langchain.tools import tool @tool def query_order(order_id: str) -> str: """查询订单状态""" # 接入真实订单系统 return f"订单{order_id}已发货,预计明天送达" @tool def create_refund(order_id: str, reason: str) -> str: """创建退款申请""" return f"已为订单{order_id}创建退款申请,原因:{reason}" @tool def transfer_to_human(reason: str) -> str: """转接人工客服""" return f"已转接人工客服,原因:{reason}" customer_service_tools = [query_order, create_refund, transfer_to_human] prompt = ChatPromptTemplate.from_messages([ ("system", """你是电商客服Agent。处理用户问题: 1. 先了解问题 2. 使用工具查询/操作 3. 如果无法解决,转接人工 规则: - 态度友好专业 - 退款需要先确认订单状态 - 涉及金额>1000的问题转人工"""), ("user", "{input}"), ("placeholder", "{agent_scratchpad}"), ]) agent = create_tool_calling_agent(llm, customer_service_tools, prompt) service = AgentExecutor(agent=agent, tools=customer_service_tools, verbose=True) # 测试 service.invoke({"input": "我昨天买的手机还没到,订单号ORD12345"}) ``` ## 总结 **Agent开发三要素:LLM(大脑)+ Tools(能力)+ Memory(记忆)** 新手路线: 1. LangChain入门 → 单Agent工具调用 2. 加Memory → 有上下文的Agent 3. 多Agent协作 → CrewAI/CrewAI 4. 生产部署 → Dify/Coze > 📌 关注AI导航,获取更多AI开发教程! *最后更新:2026年4月*

相关教程