AI大模型系列教程--动手实现一个AI Agent

发布时间:2026/7/13 4:52:40

AI大模型系列教程--动手实现一个AI Agent 引言成为AI时代的入口如果你用过DeepSeek你一定感叹于它强大的对话能力。但当它说“我很乐意帮你订餐但我做不到”时你是否感到一丝遗憾AI Agent智能体就是要解决这个问题——让AI从“能说会道”的聊天机器人变成“能办实事”的数字助手。想象一个具备思考和行动能力的AI助手它不仅能理解你的需求还能调用各种工具查询天气、发送邮件、控制智能家居来实际完成任务。这就是AI Agent数字世界里的智能机器人。为什么这如此重要当大语言模型学会了使用工具就从“大脑”进化成了“完整智能体”这是AI应用的下一个范式转移。本教程将带你理解AI Agent的核心概念并亲手构建你的第一个AI Agent以及多Agent架构实现文章后半部分会涉及Python代码演示如果没没有相关经验建议提前学习。第一部分基础概念篇 —— 理解AI Agent的“灵魂”1.1 什么是AI Agent一个精确的定义核心定义AI Agent是一个能感知环境、自主规划、执行动作并达成目标的智能体。与传统AI模型如ChatGPT/DeepSeek的关键区别ChatGPT问答模式被动响应AI Agent代理模式主动完成AI Agent的核心循环思考分析目标- 行动调用工具- 观察获取结果- 循环直到任务完成1.2 AI Agent的核心构成要素规划Planning - Agent的“大脑”任务分解把“规划一次旅行”拆解为订机票、订酒店、安排行程思维链CoT逐步推理“如果要订餐厅需要先知道位置、预算和口味偏好”自我反思当行动失败时能分析原因并调整策略记忆Memory - Agent的“经验库”短期记忆记住当前对话的上下文长期记忆用向量数据库存储历史经验供未来参考工具使用Tool Use - Agent的“双手”调用外部API、函数、软件的能力示例get_weather(北京)、send_email(同事, 会议纪要, 内容)1.3 AI Agent的常见类型按智能程度分反射型Agent简单响应如自动回复邮件目标驱动型本文重点能规划复杂任务学习型能从经验中不断改进按应用场景分单一任务Agent专注一件事如摘要生成多模态Agent处理文本、图像、语音模拟社会Agent多个Agent协作解决问题第二部分核心技术篇 —— 揭秘AI Agent的“骨架”2.1 构建AI Agent的通用架构ReAct范式推理Reason 行动Act的经典组合LangGraph思想将任务视为有向图通过状态流转控制执行基本工作流用户指令 → 任务规划 → 选择工具 → 执行动作 → 观察结果 → 判断是否完成 → 输出最终结果2.2 关键技术栈与工具框架层LangChain/LangGraph功能全面开发者生态丰富CrewAI专注多Agent协作AutoGen微软出品支持复杂多Agent对话模型层GPT-4/Claude-3强大的推理引擎开源模型Llama、Qwen追求可控性和隐私记忆层向量数据库Chroma、Pinecone、Weaviate第三部分动手实践篇 —— 构建你的第一个AI Agent项目创建“天气预报与穿衣建议”Agent目标用户输入城市名Agent返回当地天气和穿衣建议能力调用天气API 基于温度的智能推理3.1 环境准备pip install langchain-openai langchain-core3.2 分步实现教程步骤一初始化大模型from langchain_openai import ChatOpenAI # 初始化模型使用gpt-3.5-turbo兼顾效果与成本 llm ChatOpenAI(modelgpt-3.5-turbo, temperature0)步骤二定义天气工具函数import json def get_weather(city: str) - str: 获取城市天气信息这里使用模拟数据 weather_data { 北京: {weather: 晴天, temp: 25, humidity: 40}, 上海: {weather: 多云, temp: 28, humidity: 70}, 广州: {weather: 雷阵雨, temp: 32, humidity: 85} } if city in weather_data: return json.dumps(weather_data[city], ensure_asciiFalse) else: return json.dumps({weather: 未知, temp: 0, humidity: 0})步骤三绑定工具并创建Agentfrom langchain.agents import AgentExecutor, create_tool_calling_agent from langchain_core.prompts import ChatPromptTemplate # 定义工具列表 tools [get_weather] # 创建提示词模板 prompt ChatPromptTemplate.from_messages([ (system, 你是一个专业的天气助手。根据用户的查询调用合适的工具获取天气信息然后给出专业的穿衣建议。 穿衣指南 - 25度以上建议短袖、短裤 - 15-25度建议长袖T恤、薄外套 - 15度以下建议毛衣、厚外套 - 下雨天记得带伞或穿防水外套 - 高湿度建议穿透气衣物), (placeholder, {chat_history}), (human, {input}), (placeholder, {agent_scratchpad}) ]) # 创建Agent agent create_tool_calling_agent(llm, tools, prompt) agent_executor AgentExecutor(agentagent, toolstools, verboseTrue)步骤四运行测试# 测试Agent result agent_executor.invoke({ input: 北京天气怎么样应该穿什么衣服 }) print(result[output])3.4 完整代码展示from langchain_openai import ChatOpenAI from langchain.agents import AgentExecutor, create_tool_calling_agent from langchain_core.prompts import ChatPromptTemplate import json # 1. 初始化模型 llm ChatOpenAI(modelgpt-3.5-turbo, temperature0) # 2. 定义天气工具 def get_weather(city: str) - str: 获取城市天气信息 weather_data { 北京: {weather: 晴天, temp: 25, humidity: 40}, 上海: {weather: 多云, temp: 28, humidity: 70}, 广州: {weather: 雷阵雨, temp: 32, humidity: 85} } if city in weather_data: return json.dumps(weather_data[city], ensure_asciiFalse) else: return json.dumps({weather: 未知, temp: 0, humidity: 0}) # 3. 创建Agent tools [get_weather] prompt ChatPromptTemplate.from_messages([ (system, 你是一个专业的天气助手。根据用户的查询调用合适的工具获取天气信息然后给出专业的穿衣建议。), (placeholder, {chat_history}), (human, {input}), (placeholder, {agent_scratchpad}) ]) agent create_tool_calling_agent(llm, tools, prompt) agent_executor AgentExecutor(agentagent, toolstools, verboseTrue) # 4. 运行Agent if __name__ __main__: response agent_executor.invoke({ input: 北京天气怎么样应该穿什么衣服 }) print(\n AI Agent回复 ) print(response[output])运行结果示例 AI Agent回复 北京今天晴天温度25度湿度40%。天气比较舒适建议穿短袖和薄外套白天可能会有点热可以把外套拿在手里。第四部分进阶与最佳实践掌握了基础 AI Agent 的构建后要让 Agent 真正落地并发挥价值还需解决 “如何设计更强大的 Agent”“如何实现多 Agent 协作”“如何应对实际开发中的挑战” 这三大核心问题。本节将从实战角度提供可落地的优化方案与解决方案。4.1 如何设计一个强大的 Agent一个 “强大” 的 AI Agent不仅能完成基础任务还需具备 “高可靠性、低风险、强适配性” 的特点。核心优化方向集中在提示词工程、错误处理、安全伦理三个维度。4.1.1 清晰的提示词工程给 Agent “明确的行动指南”提示词是 Agent 的 “指令说明书”模糊的提示会导致 Agent 决策混乱而精准的提示能让 Agent 高效完成任务。设计提示词时需包含角色定义、目标拆解、约束条件三大核心要素角色定义明确 Agent 的 “身份” 与 “专业领域”让模型快速进入对应场景。例如为 “市场调研 Agent” 设计提示词时可明确“你是一名资深市场调研专家擅长分析消费电子领域的用户需求与竞品动态具备数据整理与趋势总结能力”目标拆解将复杂目标转化为 “可量化、可执行” 的子任务避免 Agent 遗漏关键步骤。例如将 “完成某款手机的市场调研” 拆解为“1. 收集近 3 个月该手机的线上销量数据2. 分析 Top5 竞品的核心功能差异3. 提取用户评价中的高频好评与差评点4. 生成包含数据图表的调研报告”约束条件明确 Agent 的 “行动边界”避免无效操作。例如添加约束“仅使用权威数据源如京东、天猫官方数据、IDC 行业报告调研报告需包含数据来源标注若某类数据无法获取需说明原因而非编造数据”。示例优化后的提示词对比普通提示词“帮我做一份手机市场调研”优化提示词“你是消费电子领域的市场调研专家需完成某品牌 X 手机的市场调研任务具体要求1. 收集 2024 年 Q3 该手机在京东、天猫的销量数据需标注具体数值与同比变化2. 对比该手机与苹果 iPhone 16、华为 Mate 70 的核心参数芯片、屏幕、电池3. 从天猫评论中提取前 100 条评价统计高频好评如续航、拍照与差评如发热、系统卡顿关键词4. 最终输出 3000 字以内的报告附数据来源链接。约束不使用非官方数据源若销量数据无法获取需注明‘Q3 官方销量数据暂未公开’”。4.1.2 有效的错误处理让 Agent 具备 “抗挫折能力”在实际使用中Agent 调用工具时难免遇到错误如 API 超时、数据返回为空、参数错误若缺乏错误处理机制Agent 会直接 “卡住” 或返回无效结果。有效的错误处理需覆盖错误识别、重试策略、替代方案三个环节错误识别提前定义常见错误类型并让 Agent 能判断错误原因。例如调用天气 API 时可能出现 “城市名称错误返回 404”“API 密钥过期返回 401”“网络超时无返回” 三种常见错误重试策略针对不同错误类型设计差异化重试逻辑。例如网络超时设置 “3 次重试每次间隔 2 秒” 的策略避免因临时网络波动导致任务失败城市名称错误让 Agent 主动询问用户 “您输入的城市名称可能有误请确认是否为‘北京市’而非‘北京省’”获取正确信息后重新调用工具替代方案当工具调用持续失败时提供 “Plan B”。例如若高德天气 API 因密钥过期无法使用Agent 可自动切换为 “和风天气 API”或告知用户 “当前天气 API 暂时不可用可为您提供该城市的历史天气平均数据作为参考”。代码示例错误处理逻辑实现def get_weather(city): # 定义错误重试与替代方案 max_retries 3# 最大重试次数 retry_interval 2# 重试间隔秒 retry_count 0 while retry_count max_retries: try: # 尝试调用高德天气API response requests.get( https://restapi.amap.com/v3/weather/weatherInfo, params{key: os.getenv(AMAP_API_KEY), city: city, extensions: base} ) response.raise_for_status() # 触发HTTP错误如404、401 data response.json() if data[status] ! 1: # API返回业务错误如城市不存在 raise ValueError(f城市{city}不存在请确认名称) return data[lives][0] # 返回天气数据 except requests.exceptions.Timeout: # 网络超时重试 retry_count 1 print(f网络超时第{retry_count}次重试...) time.sleep(retry_interval) except requests.exceptions.HTTPError as e: # API密钥过期或权限错误切换备用API print(f高德API错误{e}切换至和风天气API) return get_weather_alternative(city) # 调用备用API函数 except ValueError as e: # 城市名称错误询问用户 user_confirm input(f{e}是否需要修正为其他城市请输入新城市名或按回车取消) if user_confirm: city user_confirm retry_count 0# 重置重试次数用新城市名重新尝试 else: returnNone# 用户取消返回空 # 多次重试失败返回替代方案 print(f多次调用天气API失败返回{city}历史平均天气数据) return get_historical_weather(city) # 返回历史天气数据4.1.3 安全与伦理考量为 Agent “装上安全阀”AI Agent 具备调用外部工具的能力若缺乏安全管控可能执行危险操作如删除系统文件、发送垃圾邮件或泄露敏感信息。核心管控措施包括权限限制、敏感信息过滤、操作审计权限限制严格控制 Agent 的工具调用权限。例如“文档处理 Agent” 仅允许 “读取指定文件夹的文档”“写入指定格式的报告”禁止 “删除文件”“修改系统配置”使用 API 时采用 “最小权限原则”为 Agent 分配仅能完成当前任务的 API 权限如天气 API 仅授予 “查询天气” 权限无 “修改用户数据” 权限敏感信息过滤防止 Agent 泄露或处理敏感数据。例如在 “邮件发送 Agent” 中添加敏感信息检测逻辑若邮件内容包含 “身份证号、银行卡号”自动提示用户 “内容包含敏感信息是否确认发送”若收件人邮箱非公司内部域名需二次验证用户身份操作审计记录 Agent 的所有行动日志便于追溯问题。日志需包含 “操作时间、调用工具、输入参数、输出结果、错误信息”例如“2024-10-23 14:30:00调用 send_email 工具输入参数to: xxxxxx.comsubject: 会议通知输出结果邮件发送成功错误信息无”。4.2 从单 Agent 到多 Agent 系统让 Agent “协同工作”在复杂场景中如 “撰写一篇深度行业报告”“组织一场大型活动”单一 Agent 的能力有限而多 Agent 系统通过 “分工协作”能高效完成复杂任务。本节将介绍多 Agent 协作的核心逻辑及基于 CrewAI 框架的实践思路。4.2.1 多 Agent 协作的核心概念“角色分工 任务流转”多 Agent 系统的本质是 “模拟人类团队协作”每个 Agent 扮演特定角色负责专属任务通过预设规则完成任务流转。以 “撰写行业报告” 为例典型的多 Agent 分工如下调研 Agent负责收集数据角色定位为 “数据收集专家”任务包括 “查找行业最新政策、统计市场规模数据、整理竞品动态”写作 Agent负责内容创作角色定位为 “行业分析师”任务包括 “将调研数据转化为结构化内容、撰写报告正文、制作数据图表说明”编辑 Agent负责质量审核角色定位为 “内容编辑”任务包括 “检查报告逻辑是否通顺、修正错别字与格式错误、验证数据准确性”。任务流转规则需明确 “谁先做、做完交给谁、遇到问题找谁”调研 Agent 完成数据收集后将 “调研数据集” 传递给写作 Agent写作 Agent 基于调研数据完成初稿后将 “报告初稿” 传递给编辑 Agent若编辑 Agent 发现数据错误如某市场规模数据矛盾则将 “错误反馈” 传回调研 Agent调研 Agent 修正后重新流转编辑 Agent 审核通过后将 “最终报告” 返回给用户。4.2.2 用 CrewAI 构建多 Agent 系统实践思路CrewAI 是专注于多 Agent 协作的框架支持快速定义 Agent 角色、分配任务、设置协作规则。以下以 “撰写 2024 年消费电子行业报告” 为例展示多 Agent 系统的构建步骤步骤 1安装 CrewAI 框架pip install crewai # 安装CrewAI核心库 pip install crewai-tools # 安装配套工具库如搜索工具、文档工具步骤 2定义 Agent 角色与能力from crewai import Agent, Task, Crew from crewai_tools import SerperDevTool # 搜索工具需申请Serper API Key # 1. 定义调研Agent research_agent Agent( role消费电子行业调研专家, goal收集2024年消费电子行业的核心数据包括市场规模、政策动态、竞品趋势, backstory你拥有5年消费电子行业调研经验擅长从权威渠道如IDC、工信部报告、京东/天猫数据获取精准数据能快速筛选关键信息, tools[SerperDevTool(api_keyos.getenv(SERPER_API_KEY))] # 赋予搜索能力 ) # 2. 定义写作Agent writing_agent Agent( role行业报告撰写分析师, goal将调研数据转化为逻辑清晰、内容详实的行业报告包含数据图表说明与趋势分析, backstory你是资深行业分析师曾撰写过数十份消费电子行业报告擅长用通俗语言解读复杂数据报告结构符合行业标准含摘要、市场现状、趋势预测、结论 ) # 3. 定义编辑Agent editing_agent Agent( role报告编辑专家, goal审核报告的逻辑连贯性、数据准确性、格式规范性修正错误并提出优化建议, backstory你拥有10年内容编辑经验专注于行业报告审核对数据矛盾、逻辑漏洞、格式错误敏感能确保报告符合专业标准 )步骤 3分配任务与设置流转规则# 1. 调研任务收集行业数据 research_task Task( description1. 查找2024年全球消费电子行业市场规模数据单位亿美元及同比增长率2. 整理2024年中国消费电子行业相关政策如补贴、技术标准3. 统计Top3消费电子品牌苹果、三星、华为2024年Q3的销量占比4. 将数据整理为表格格式标注来源, agentresearch_agent, output_fileresearch_data.csv# 调研结果保存为CSV文件 ) # 2. 写作任务基于调研数据撰写报告依赖调研任务完成 writing_task Task( description基于research_data.csv中的数据撰写《2024年消费电子行业报告》要求1. 报告字数2000字以内2. 包含摘要100字、市场现状含数据图表、政策影响分析、未来趋势预测2025年、结论3. 数据引用需标注来源如“据IDC数据显示...”, agentwriting_agent, dependencies[research_task], # 依赖调研任务完成 output_fileindustry_report.md# 报告保存为Markdown文件 ) # 3. 编辑任务审核报告依赖写作任务完成 editing_task Task( description审核industry_report.md1. 检查数据是否与research_data.csv一致如市场规模数值、销量占比2. 修正错别字、语法错误与格式问题如标题层级、表格对齐3. 优化报告逻辑如趋势预测是否有数据支撑4. 生成审核后的最终报告, agentediting_agent, dependencies[writing_task], # 依赖写作任务完成 output_filefinal_industry_report.md# 最终报告保存路径 )步骤 4启动多 Agent 协作# 创建Crew协作团队并启动任务 crew Crew( agents[research_agent, writing_agent, editing_agent], tasks[research_task, writing_task, editing_task], verboseTrue# 打印协作过程日志 ) # 启动协作执行任务 result crew.kickoff() print(多Agent协作完成最终报告路径final_industry_report.md)4.2.3 多 Agent 协作的关键注意事项避免角色重叠每个 Agent 的任务需明确边界例如 “调研 Agent” 仅负责收集数据不参与报告撰写防止任务混乱明确依赖关系通过 “dependencies” 参数设置任务先后顺序避免 “写作 Agent” 在调研数据未完成时提前启动控制沟通成本多 Agent 间的消息传递需简洁仅传递 “任务结果”如调研数据、初稿文档避免冗余信息干扰决策。4.3 常见挑战与解决方案攻克开发中的 “拦路虎”在 AI Agent 开发与落地过程中常会遇到 “无限循环、工具选择错误、高延迟与成本” 等问题。以下针对每个挑战提供具体的诊断方法与解决方案。4.3.1 挑战 1无限循环 ——Agent 陷入 “重复行动”现象Agent 在 “思考→行动→观察” 的循环中反复执行同一操作无法推进任务。例如调用天气 API 时因城市名称错误Agent 反复重试却不询问用户导致无限循环。原因未设置 “循环终止条件”Agent 不知道何时停止重试错误处理逻辑缺失无法识别 “需要用户干预” 的错误如城市名称错误。解决方案设置最大迭代次数为 Agent 的循环过程添加 “最大步数限制”例如设置 “最多执行 5 次行动若仍未完成任务则停止并提示用户”定义 “终止触发条件”明确哪些情况属于 “任务无法继续”需终止循环。例如当 Agent 连续 2 次调用工具返回相同错误如 “城市名称错误”则触发终止询问用户确认城市名称代码示例添加循环终止机制def agent_execution_loop(user_query, max_iterations5): iteration 0 current_state {query: user_query, result: None, error: None} while iteration max_iterations: iteration 1 print(f执行第{iteration}轮循环...) # 1. 思考判断是否需要调用工具 thought model.generate(f用户需求{current_state[query]}当前结果{current_state[result]}是否需要调用工具若需要说明工具类型与参数若不需要直接生成回答) if不需要调用工具in thought: # 无需工具生成最终回答 final_answer model.generate(f基于用户需求{current_state[query]}生成自然语言回答) return final_answer # 2. 行动调用工具 try: tool_result call_tool(thought) # 根据思考结果调用对应工具 current_state[result] tool_result current_state[error] None except Exception as e: current_state[error] str(e) print(f工具调用错误{e}) # 3. 判断是否需要终止连续2次相同错误 if iteration 2and current_state[error] previous_error: returnf任务执行遇到持续错误{current_state[error]}请确认输入信息如城市名称、API密钥后重试 previous_error current_state[error] # 达到最大迭代次数 return f任务执行超时已尝试{/doubaocanvas总结通过本篇文章相信你已经掌握了AI Agent的核心概念规划、记忆和工具使用。你了解了构建Agent的ReAct范式和主流技术栈如LangChain并且亲手构建了一个能够解决实际问题的Agent以及对多Agent架构的理解。如果对Agent想要学的更多可以参考以下能力尝试自己实现一个能帮你自动总结网页内容的Agent。一个能连接飞书文档/印象笔记帮你自动整理笔记的Agent。一个能监控商品价格在降价时自动提醒你的Agent。AI Agent技术将解决问题的主动权交到了我们手中。现在我们不仅是使用者更是创造者。大模型入门到实战全套学习大礼包文末获取1、大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通2、大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。3、AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。4、大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。5、大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。适用人群第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构 代码示例向 GPT-3.5灌入新知识 提示工程的意义和核心思想Prompt 典型构成 指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI部署 StableDiffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。领取方式我会放在下面希望领取了的朋友不要忘了下方名片放心添加击

相关新闻