ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从零搭建AI Agent:基于LangChain的智能体开发实战指南

从零搭建AI Agent:基于LangChain的智能体开发实战指南 最近在尝试将AI能力集成到自己的项目中时你是否也遇到过这样的困惑网上关于AI Agent的资料要么是晦涩难懂的学术论文要么是零散的代码片段想从零开始搭建一个能实际运行的智能体却不知从何下手面对LangChain、Dify、Coze等众多框架和平台更是眼花缭乱。本文将为你彻底解决这个问题。我将结合最新的技术动态截至2026年初为你提供一份从核心概念到项目落地的完整AI Agent搭建指南。无论你是想快速入门的新手还是希望系统掌握智能体开发的中级开发者都能在这里找到清晰的路径、可运行的代码和避坑指南。学完本文你将能够独立设计并实现一个具备规划、记忆和工具调用能力的专属AI智能体。1. AI Agent 核心概念超越简单问答的“智能体”在开始敲代码之前我们必须先厘清概念。很多人误以为接入了大模型API就是构建了AI Agent这其实是一个常见的误区。1.1 什么是AI AgentAI Agent人工智能智能体是一个能够感知环境、自主决策并执行行动以实现特定目标的系统。它不仅仅是“问答机”而是“执行者”。核心区别在于简单Chatbot用户问它答。对话是孤立的没有记忆和长远目标。AI Agent用户给定一个目标如“帮我分析上周的销售数据并写一份报告”Agent会自主拆解任务获取数据、分析趋势、生成文本调用工具数据库、计算API并持续执行直到目标完成或无法继续。1.2 AI Agent 的核心组成框架一个典型的AI Agent系统包含以下几个关键组件这也是我们搭建时的核心工作规划模块负责分解任务、反思结果、调整策略。这是智能的体现。记忆模块分为短期记忆当前会话上下文和长期记忆向量数据库存储的历史信息让Agent拥有“经验”。工具使用模块赋予Agent“手脚”。它可以调用搜索引擎、数据库、代码解释器、第三方API等。行动执行模块基于规划和工具具体执行子任务并观察结果。1.3 典型应用场景理解场景能帮你更好地设计自己的Agent个人效率助手自动整理会议纪要、安排日程、汇总新闻。数据分析智能体连接数据库用自然语言提问自动执行查询、分析和可视化。客服与销售机器人不仅回答问题还能根据用户意图查询库存、创建工单、预约演示。自动化流程Agent在RPA机器人流程自动化中处理非结构化决策如审核单据内容。2. 环境准备与开发工具选型工欲善其事必先利其器。2026年的AI开发生态已经非常丰富我们根据“追求灵活控制”和“追求快速落地”两种路径来选择合适的工具。2.1 基础运行环境操作系统Windows 10/11, macOS, Linux (Ubuntu 20.04) 均可。本文示例以 macOS/Linux 命令行环境为主Windows 用户建议使用 WSL2 以获得最佳体验。Python 环境Python 3.10是当前大多数AI框架的推荐版本。请务必使用虚拟环境。# 创建并激活虚拟环境 python -m venv ai_agent_env source ai_agent_env/bin/activate # Linux/macOS # ai_agent_env\Scripts\activate # Windows2.2 核心开发框架与平台选型你可以根据项目需求和个人偏好选择以下一种或多种路径路径代表工具优点缺点适用场景代码优先灵活可控LangChain / LlamaIndex灵活性极高可深度定制架构适合复杂逻辑和集成。社区活跃生态丰富。学习曲线较陡需要较强的工程能力。需要自行处理部署和运维。企业级复杂应用、研究原型、需要与现有系统深度集成的项目。低代码/无代码快速原型Dify, Coze, Flowise可视化编排开箱即用的记忆、工具等组件部署简单快速验证想法。定制能力受平台限制高级功能可能收费私有化部署有成本。快速构建MVP、内部工具、对编程要求不高的业务人员。大模型厂商原生AgentOpenAI Assistants API, DeepSeek-Agent, 文心智能体与特定模型深度优化体验流畅工具生态有保障。厂商锁定可迁移性差能力受限于该厂商的模型和工具。重度依赖某一家大模型能力且需求在其能力范围内的项目。对于本教程我们将选择“代码优先”的路径使用 LangChain 框架因为它最能体现AI Agent的底层原理学会后可以轻松迁移到其他平台。同时我们会简要介绍如何使用 Dify 快速搭建作为对比。2.3 大模型API准备你需要一个或多个大模型的API密钥。2026年除了传统的GPT-4国内外的优质模型选择更多了国际OpenAI GPT-4o/4 Anthropic Claude 3 Google Gemini 2.0。国内DeepSeek高性价比 智谱GLM-4 月之暗面Kimi 通义千问。本地部署Qwen2.5 Llama 3.3 对于性能要求不高或数据敏感的场景可以考虑。注册并获取一个API Key我们以 OpenAI 和 DeepSeek 为例后续代码会展示如何切换。3. 基于LangChain搭建你的第一个AI Agent让我们从一个最简单的任务开始创建一个能查询天气的Agent。这个Agent需要理解用户关于天气的询问并调用一个模拟的天气查询工具。3.1 项目初始化与依赖安装创建项目文件夹并安装核心库。mkdir my_first_agent cd my_first_agent # 激活你的虚拟环境后安装依赖 pip install langchain langchain-openai langchain-community python-dotenv创建.env文件来安全地存储你的API密钥# .env OPENAI_API_KEYsk-your-openai-key-here DEEPSEEK_API_KEYyour-deepseek-key-here DEEPSEEK_API_BASEhttps://api.deepseek.com # DeepSeek的API地址3.2 构建核心组件工具、模型、Agent我们创建一个weather_agent.py文件。# weather_agent.py import os from datetime import datetime from typing import Optional from dotenv import load_dotenv from langchain.agents import AgentExecutor, create_openai_tools_agent from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain_core.tools import tool # 1. 加载环境变量 load_dotenv() # 2. 定义一个“天气查询”工具 # 使用 tool 装饰器LangChain会自动将其转化为Agent可识别的工具 tool def get_weather(city: str, date: Optional[str] None) - str: 根据城市名称和可选日期查询天气信息。 Args: city: 城市名称例如“北京”、“上海”。 date: 查询日期格式为‘YYYY-MM-DD’。如果为None则默认为今天。 Returns: 该城市的天气情况描述字符串。 # 这是一个模拟函数。真实场景中这里应该调用如OpenWeatherMap的API。 if date is None: date datetime.now().strftime(%Y-%m-%d) # 模拟一些简单的逻辑 weather_conditions [晴, 多云, 小雨, 阴天] import random condition random.choice(weather_conditions) temperature random.randint(15, 30) return f{date} {city}的天气是{condition}气温大约{temperature}摄氏度。这是一个模拟结果。 # 3. 初始化大语言模型 (LLM) # 使用OpenAI模型 llm ChatOpenAI( modelgpt-4o-mini, # 2026年可能有更新型号请根据实际情况选择 temperature0, # 降低随机性让Agent更稳定 api_keyos.getenv(OPENAI_API_KEY) ) # 如果你想使用DeepSeek可以这样初始化需安装 langchain-deepseek # from langchain_deepseek import ChatDeepSeek # llm ChatDeepSeek(modeldeepseek-chat, api_keyos.getenv(DEEPSEEK_API_KEY), base_urlos.getenv(DEEPSEEK_API_BASE)) # 4. 定义Agent的提示词模板 # 这个模板告诉Agent它的角色、可用工具和思考格式 prompt ChatPromptTemplate.from_messages([ (system, 你是一个乐于助人的天气助手。你的任务是回答用户关于天气的问题。 你可以使用工具来获取真实的天气信息。 请遵循以下规则 1. 如果用户只提供了城市名请查询今天的天气。 2. 如果用户提供了城市和日期请查询指定日期的天气。 3. 如果用户的问题与天气无关请礼貌地告知你的能力范围。 请一步一步思考并最终给出清晰、友好的回答。), MessagesPlaceholder(variable_namechat_history), # 预留位置给对话历史记忆 (human, {input}), MessagesPlaceholder(variable_nameagent_scratchpad), # 预留位置给Agent的思考过程 ]) # 5. 创建工具列表并将工具绑定给LLM tools [get_weather] llm_with_tools llm.bind_tools(tools) # 6. 创建Agent和Agent执行器 agent create_openai_tools_agent(llmllm_with_tools, promptprompt, toolstools) agent_executor AgentExecutor(agentagent, toolstools, verboseTrue, handle_parsing_errorsTrue) # verboseTrue 会打印思考过程 # 7. 运行Agent进行测试 if __name__ __main__: print(天气助手Agent已启动输入‘退出’或‘quit’结束对话。) while True: user_input input(\n你: ) if user_input.lower() in [退出, quit]: print(再见) break try: # 调用执行器 response agent_executor.invoke({input: user_input, chat_history: []}) print(f助手: {response[output]}) except Exception as e: print(f出错了: {e})3.3 运行与解析在终端运行你的第一个Agentpython weather_agent.py你会看到类似以下的交互过程verboseTrue会展示Agent的思考链天气助手Agent已启动输入‘退出’或‘quit’结束对话。 你: 上海今天天气怎么样 进入新的Agent执行链... 我收到一个关于上海今天天气的问题。我需要使用天气查询工具。 Action: get_weather Action Input: {city: 上海} Observation: 2024-05-27 上海的天气是晴气温大约22摄氏度。这是一个模拟结果。 Thought: 我已经获取了上海的天气信息现在可以回答用户了。 助手: 今天2024-05-27上海的天气是晴天气温大约在22摄氏度左右。这个简单的例子展示了Agent的核心工作流解析用户输入 - 规划需要调用工具 - 执行工具调用 - 根据结果生成回答。4. 进阶实战构建具备记忆与多工具的数据分析Agent现在我们来构建一个更实用的Agent一个能连接数据库、进行数据分析并生成图表的智能体。这将涉及记忆和多个工具的协同。4.1 项目结构升级my_data_agent/ ├── .env ├── requirements.txt ├── database.py # 模拟数据库连接与查询 ├── tools.py # 所有工具定义 ├── agent_builder.py # Agent组装逻辑 └── main.py # 主运行入口4.2 模拟数据库与工具定义首先创建database.py模拟一个销售数据表。# database.py import sqlite3 import pandas as pd from datetime import datetime, timedelta import random def init_sample_database(): 初始化一个模拟的销售数据库 conn sqlite3.connect(:memory:) # 使用内存数据库方便演示 cursor conn.cursor() cursor.execute( CREATE TABLE IF NOT EXISTS sales ( id INTEGER PRIMARY KEY, date DATE, product TEXT, category TEXT, amount REAL, region TEXT ) ) # 插入模拟数据 products [笔记本电脑, 智能手机, 平板电脑, 耳机] categories [电子产品, 电子产品, 电子产品, 配件] regions [华东, 华北, 华南, 华中, 西部] data [] start_date datetime.now() - timedelta(days90) for i in range(200): date start_date timedelta(daysrandom.randint(0, 89)) product random.choice(products) category categories[products.index(product)] amount round(random.uniform(1000, 20000), 2) region random.choice(regions) data.append((i1, date.strftime(%Y-%m-%d), product, category, amount, region)) cursor.executemany(INSERT INTO sales VALUES (?, ?, ?, ?, ?, ?), data) conn.commit() return conn def query_sales_data(conn, sql_query: str) - str: 执行SQL查询并返回结果字符串 try: df pd.read_sql_query(sql_query, conn) if df.empty: return 查询结果为空。 # 将DataFrame转换为易读的字符串格式 return df.to_string(indexFalse) except Exception as e: return f查询执行出错: {e}接着在tools.py中定义多个工具。# tools.py import matplotlib.pyplot as plt import io import base64 from typing import Optional from langchain_core.tools import tool from database import init_sample_database, query_sales_data # 初始化一个全局数据库连接生产环境请使用连接池 _conn init_sample_database() tool def query_database(query: str) - str: 对销售数据库执行SQL查询。可以查询销售额、产品、地区、时间等数据。 表名是 ‘sales’包含字段id, date, product, category, amount, region。 示例查询 - ‘SELECT * FROM sales LIMIT 5;’ - ‘SELECT product, SUM(amount) as total_sales FROM sales GROUP BY product;’ - ‘SELECT region, AVG(amount) as avg_amount FROM sales GROUP BY region;’ Args: query: 一个合法的SQL查询语句。 Returns: 查询结果的表格字符串。 return query_sales_data(_conn, query) tool def plot_sales_trend(time_period: str, chart_type: str line) - str: 根据时间周期生成销售趋势图表。图表将以Base64图片字符串返回。 Args: time_period: 时间周期例如 ‘last_7_days‘, ‘last_30_days‘, ‘by_month‘。 chart_type: 图表类型可选 ‘line‘ (折线图) 或 ‘bar‘ (柱状图)。默认为 ‘line‘。 Returns: 一个包含Base64编码图片的HTML字符串可以直接在支持HTML的环境下显示。 # 根据周期构建查询 if time_period last_7_days: sql SELECT date, SUM(amount) as daily_sales FROM sales WHERE date date(now, -7 days) GROUP BY date ORDER BY date; title 近7日销售趋势 elif time_period last_30_days: sql SELECT date, SUM(amount) as daily_sales FROM sales WHERE date date(now, -30 days) GROUP BY date ORDER BY date; title 近30日销售趋势 elif time_period by_month: sql SELECT strftime(%Y-%m, date) as month, SUM(amount) as monthly_sales FROM sales GROUP BY month ORDER BY month; title 月度销售趋势 else: return 不支持的时间周期请使用 ‘last_7_days‘, ‘last_30_days‘, 或 ‘by_month‘。 df pd.read_sql_query(sql, _conn) if df.empty: return 所选时间段内无销售数据。 plt.figure(figsize(10, 5)) x_label df.columns[0] y_label df.columns[1] if chart_type line: plt.plot(df[x_label], df[y_label], markero) elif chart_type bar: plt.bar(df[x_label], df[y_label]) else: return 不支持的图表类型请使用 ‘line‘ 或 ‘bar‘。 plt.title(title) plt.xlabel(x_label) plt.ylabel(销售额) plt.xticks(rotation45) plt.tight_layout() # 将图表保存为Base64字符串 buf io.BytesIO() plt.savefig(buf, formatpng) plt.close() buf.seek(0) img_base64 base64.b64encode(buf.read()).decode(utf-8) html_img fimg srcdata:image/png;base64,{img_base64} alt{title}/ return f这是生成的图表{html_img}。图表已以Base64格式嵌入。 tool def calculate_kpi(kpi_name: str) - str: 计算关键绩效指标。 Args: kpi_name: KPI名称目前支持 ‘total_sales‘ (总销售额), ‘avg_order_value‘ (平均订单金额), ‘top_product‘ (最畅销产品)。 Returns: KPI的计算结果和描述。 if kpi_name total_sales: sql SELECT SUM(amount) as total FROM sales; result query_sales_data(_conn, sql) return f总销售额为{result} elif kpi_name avg_order_value: sql SELECT AVG(amount) as avg_amount FROM sales; result query_sales_data(_conn, sql) return f平均订单金额为{result} elif kpi_name top_product: sql SELECT product, SUM(amount) as total FROM sales GROUP BY product ORDER BY total DESC LIMIT 1; result query_sales_data(_conn, sql) return f最畅销产品是{result} else: return f暂不支持计算KPI: {kpi_name}。目前支持 ‘total_sales‘, ‘avg_order_value‘, ‘top_product‘。4.3 构建具备记忆的Agent记忆是Agent连续对话的关键。我们使用ConversationBufferWindowMemory来保留最近几轮对话。# agent_builder.py import os from dotenv import load_dotenv from langchain.agents import AgentExecutor, create_openai_tools_agent from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain.memory import ConversationBufferWindowMemory from tools import query_database, plot_sales_trend, calculate_kpi load_dotenv() def build_data_agent(): # 1. 初始化LLM llm ChatOpenAI( modelgpt-4o-mini, temperature0, api_keyos.getenv(OPENAI_API_KEY) ) # 2. 定义所有工具 tools [query_database, plot_sales_trend, calculate_kpi] # 3. 创建记忆体保留最近3轮对话 memory ConversationBufferWindowMemory( memory_keychat_history, k3, return_messagesTrue ) # 4. 构建提示词模板包含系统指令、记忆、用户输入和Agent思考区 prompt ChatPromptTemplate.from_messages([ (system, 你是一个专业的数据分析助手可以访问公司的销售数据库。 你可以根据用户的问题执行数据查询、生成图表或计算KPI。 请遵循以下规则 1. 仔细分析用户问题判断需要使用哪个工具。 2. 如果用户的问题模糊例如“销售情况怎么样”主动询问具体维度如时间、地区、产品。 3. 对于复杂问题可以分步骤调用多个工具。 4. 你的回答应该清晰、专业并直接包含数据结果或图表。 请逐步思考。), MessagesPlaceholder(variable_namechat_history), (human, {input}), MessagesPlaceholder(variable_nameagent_scratchpad), ]) # 5. 绑定工具并创建Agent llm_with_tools llm.bind_tools(tools) agent create_openai_tools_agent(llmllm_with_tools, promptprompt, toolstools) # 6. 创建执行器并注入记忆 agent_executor AgentExecutor( agentagent, toolstools, memorymemory, verboseTrue, handle_parsing_errorsTrue, max_iterations5 # 防止Agent陷入死循环 ) return agent_executor if __name__ __main__: agent build_data_agent() print(数据分析Agent已启动输入‘退出’或‘quit’结束对话。) while True: user_input input(\n你: ) if user_input.lower() in [退出, quit]: print(再见) break try: response agent.invoke({input: user_input}) print(f\n助手: {response[output]}) except Exception as e: print(f执行出错: {e})4.4 运行与效果演示运行python agent_builder.py体验一个更强大的Agent你: 我们上个月的总销售额是多少 Agent开始思考调用calculate_kpi工具... 助手: 总销售额为 total 0 1527896.34 你: 哪种产品卖得最好 Agent拥有记忆知道我们在讨论销售数据直接调用calculate_kpi(‘top_product‘)... 助手: 最畅销产品是 product total 0 智能手机 523456.78 你: 用折线图展示近30天的趋势。 Agent结合上下文销售数据调用plot_sales_trend工具... 助手: 这是生成的图表img src“data:image/png;base64,...”/。图表已以Base64格式嵌入。这个Agent已经具备了记忆上下文、使用多种工具和处理复杂多步任务的能力。5. 使用Dify平台快速搭建智能体无代码方案如果你需要快速验证一个想法或者希望非技术人员也能参与构建低代码平台是绝佳选择。这里以Dify为例展示如何在10分钟内创建一个具备相同功能的天气助手。5.1 Dify核心概念与流程模型配置连接你的大模型API如GPT-4、DeepSeek。提示词编排在可视化界面中设计系统提示词和对话流程。工具集成通过“插件”或“API连接”添加外部工具如天气API、数据库。知识库上传文档让Agent具备RAG检索增强生成能力。发布与集成生成API或嵌入网页。5.2 在Dify中构建天气助手的步骤创建应用登录Dify点击“创建新应用”选择“对话型”应用。配置模型在“模型服务商”设置中填入你的OpenAI或DeepSeek API密钥和Base URL。编排提示词在“提示词”页面输入系统指令与我们在LangChain中定义的类似。添加工具点击“工具”选项卡。如果天气API提供商如和风天气有现成插件直接添加。如果没有可以使用“API工具”功能手动填写API的Endpoint、参数和认证信息将返回结果映射给Agent。测试与调试在右侧的对话窗口直接测试观察Agent是否正确调用了工具。发布点击“发布”你可以获得一个Web访问链接或API端点。5.3 代码方案 vs. 平台方案对比LangChain代码优势在于灵活性和控制力。你可以定制每一个环节集成到任何Python项目中适合复杂、定制化程度高的生产系统。缺点是学习成本和开发周期长。Dify低代码优势在于速度和易用性。图形化界面降低了门槛内置的运维、监控、版本管理功能完善。缺点是定制能力有天花板复杂逻辑实现困难且可能产生平台依赖和成本。对于企业级关键应用建议使用LangChain 进行核心开发保证架构自主可控。对于内部工具、MVP验证或简单场景Dify 等平台能极大提升效率。6. 常见问题与深度排错指南在开发AI Agent过程中你一定会遇到各种“坑”。以下是一些高频问题及其解决方案。6.1 Agent陷入循环或行为异常现象Agent反复调用同一个工具或输出无关内容。原因与解决提示词不清晰系统指令必须明确界定Agent的职责、工具使用规则和输出格式。加入“一步一步思考”和“如果无法解决请明确告知用户”等指令。工具描述不准确tool装饰器下的函数文档字符串必须清晰描述功能、参数和返回值。这是LLM决定是否及如何调用工具的主要依据。缺少约束在AgentExecutor中设置max_iterations最大迭代次数如5-10次和early_stopping_method如“force”防止无限循环。模型温度过高将temperature参数设为0或接近0的值降低随机性。6.2 工具调用失败或解析错误现象JSONDecodeError或ValidationError提示工具参数解析失败。原因与解决LLM生成格式错误某些模型在生成严格的JSON格式时可能出错。可以尝试使用handle_parsing_errorsTrue参数让执行器自动重试或报错。使用更强大的模型对于复杂工具调用GPT-4系列通常比GPT-3.5更可靠。简化工具接口尽量让工具参数简单字符串、数字避免嵌套结构。在提示词中提供调用示例。6.3 处理大模型的“幻觉”问题幻觉是指模型生成看似合理但实际错误或虚构的信息。在Agent中尤其危险因为它可能虚构工具调用结果。缓解策略工具结果验证在关键业务流程中对工具返回的重要结果如金额、日期设计二次验证逻辑或让Agent进行总结性复述。提供精确上下文通过RAG检索增强生成从知识库或数据库中提供准确信息减少模型“捏造”的空间。设置确定性指令在提示词中强调“仅基于工具返回的事实进行回答”“如果信息不足请明确说明”。6.4 性能与成本优化上下文长度长时间的对话历史会消耗大量Token。使用ConversationSummaryMemory或ConversationBufferWindowMemory来限制上下文长度。选择性记忆并非所有对话都需要记忆。可以设计逻辑只将关键信息如用户偏好、决策结果存入长期记忆向量数据库。模型选型对于工具调用等推理任务使用能力强的模型如GPT-4。对于简单的意图分类或文本润色可以路由到更便宜、更快的模型如GPT-3.5-Turbo实现混合模型架构。7. 生产环境最佳实践与进阶方向当你准备将AI Agent部署到生产环境时以下实践至关重要。7.1 工程化与部署配置管理将所有API密钥、模型参数、提示词模板通过环境变量或配置中心如Apollo管理严禁硬编码。日志与监控对Agent的每一次调用、工具使用、Token消耗、耗时进行详细日志记录。使用Prometheus、Grafana等工具监控Agent的健康状态和性能指标。错误处理与降级对网络超时、API限流、工具失败等情况设计完整的重试、熔断和降级策略。例如当天气API失败时Agent可以回复“暂时无法获取实时天气以下是昨日数据供参考...”。容器化部署使用Docker将你的Agent应用及其依赖打包确保环境一致性。结合Kubernetes实现弹性伸缩。7.2 安全与权限工具权限管控不是所有工具都对所有用户开放。实现一个权限层根据用户身份或会话上下文动态过滤Agent可用的工具列表。例如普通员工不能调用“删除数据库”工具。输入输出过滤对用户输入和工具返回结果进行安全检查防止Prompt注入攻击和恶意内容输出。数据脱敏确保Agent在日志、记忆或对外输出中不会泄露敏感数据如个人身份证号、手机号。7.3 进阶架构多Agent协作与自主智能单个Agent能力有限未来趋势是多个Agent分工协作。主管Agent负责接收用户任务并将其拆解分配给不同的子Agent如数据分析Agent、文档撰写Agent、代码生成Agent。评审Agent检查其他Agent的输出质量提出改进意见。实现框架可以基于LangGraphLangChain的子库来构建这种有状态的、多Agent的工作流。它允许你定义Agent之间的控制流形成复杂的决策循环。7.4 持续学习与迭代评估体系建立Agent的评估标准包括任务完成率、工具调用准确率、用户满意度等。数据反馈循环收集Agent出错的案例用于优化提示词、工具描述或模型微调。A/B测试对不同的提示词策略或模型进行A/B测试用数据驱动Agent的优化。从零搭建一个AI Agent核心在于理解其“感知-规划-行动”的循环本质。本文带你走完了从概念理解、环境搭建、简单单工具Agent到具备记忆和多工具的复杂Agent的完整路径并对比了代码开发与低代码平台的优劣。真正的掌握来自于实践建议你以本文的代码为起点尝试接入一个真实的API如SerpAPI进行网页搜索或为你的Agent增加一个长期记忆向量数据库亲手解决几个实际业务问题。AI Agent的世界正在快速演进保持动手实践是应对变化最好的方式。
返回列表