本文将带你深入了解多Agent系统的核心价值通过使用Claude API教你从零搭建一个完整的多Agent系统框架。无需复杂的基础设施只需Python和API Key。文章涵盖Agent的概念、单Agent与多Agent的区别、ReAct工作循环、编排器-子Agent架构设计、上下文隔离的重要性并通过一个竞品调研系统的实例演示如何实现。此外还提供了Token消耗控制、上下文污染规避、工具描述优化、调试技巧等避坑指南适合有Python基础、了解ChatGPT或Claude的开发者学习。这篇文章讲什么你手上有个任务调研 5 个竞品的功能、价格和用户评价写成一份对比报告。手动搜索、逐个整理大概要花半天。但如果你有一组 AI Agent各自负责搜索、分析、汇总——接入真实搜索 API 后整个过程可以压缩到几分钟。这就是多 Agent 系统的价值让 AI 分工协作自动完成复杂的多步任务。本文会带你从零开始用 Claude API 搭建一个多 Agent 系统的完整框架。不需要框架不需要复杂的基础设施只要 Python 和一个 API Key。你会学到Agent 是什么跟普通的 LLM 调用有什么区别如何写一个能自主调用工具的单 Agent如何把多个 Agent 组织成团队让它们分工协作动手搭一个竞品调研系统的骨架含模拟搜索换成真实 API 即可投产避坑指南Token 消耗、上下文污染、调试技巧适合谁读有 Python 基础、用过 ChatGPT 或 Claude、但没接触过 Agent 开发的开发者。1. Agent 是什么为什么要多先把概念理清。Agent智能体—— 能自主规划、调用工具、执行任务的 AI。跟普通的 LLM 调用不一样Agent 不只是你问我答它能自己决定下一步做什么。打个比方普通的 LLM 调用像客服热线你问一句它答一句Agent 更像你雇的助理——你说帮我调研竞品它会自己拆解任务、上网搜索、整理结果。两者的区别可以用一张表说清楚普通 LLM 调用Agent交互方式一问一答每次独立多轮自主决策外部工具需要人写代码串联自己决定调用哪个工具任务复杂度单步任务多步任务决策权人决定每一步AI 自己决定下一步那为什么要多 Agent原因有两个。一是专业化分工。把所有工具塞给一个 Agent就像让一个人同时当搜索工程师、数据分析师和报告撰写人。它哪个都能凑合但哪个都不精。拆成多个专门的 Agent每个只关注自己的领域Prompt 更短、工具更少、输出更稳定。二是并行效率。多个 Agent 可以同时干活。比如竞品调研搜索 5 个竞品的信息——一个 Agent 串行搜要五次五个 Agent 并行搜只要一次的时间。Anthropic 在他们的多 Agent 研究系统中做过对比由 Claude Opus 4 当编排器、多个 Claude Sonnet 4 当子 Agent 的系统在内部研究评估internal research eval上的得分比单独使用 Opus 4 高出约 90%来源Anthropic 官方博客。他们分析发现Token 用量本身就能解释 80% 的性能差异——本质上是用更多的计算资源换取更好的结果。不过代价也很明显。Anthropic 的生产数据显示单 Agent 的 Token 消耗约是普通聊天的 4 倍多 Agent 系统约是 15 倍。所以它更适合高价值的复杂任务不是什么都往上面套。什么时候该用多 Agent一个简单的判断标准任务能拆成 2 个以上独立的子任务 → 考虑多 Agent子任务之间不需要频繁交换中间状态 → 适合多 Agent任务简单、步骤少、一个 Prompt 就能搞定 → 单 Agent 足够所有子任务必须共享同一份上下文 → 不适合多 Agent还有一个概念提一下MCPModel Context Protocol—— AI 与外部工具连接的开放标准。你可以理解为REST 是 Web API 的通用语言MCP 就是 AI 工具集成的通用语言。目前 OpenAI、Google DeepMind、百度等都已采用。本文的代码用的是 Claude 的原生 Tool Use不依赖 MCP但了解 MCP 有助于理解工具生态的方向。你只需要知道Agent 能自己调工具的 AI。当任务需要多种专业能力协作或者能拆成独立子任务并行处理时多 Agent 就有价值。代价是 Token 消耗会大幅增加。2. 从单 Agent 开始别一上来就搞多 Agent。先搞定单 Agent理解它的运行机制。ReActAgent 的工作循环ReAct 模式Reasoning Acting—— Agent 的核心工作方式一个推理→执行→观察的循环。用做饭来类比看菜谱推理→ 切菜执行→ 尝味道观察→ 觉得淡了再加盐推理→ 加盐执行→ 再尝观察。Agent 的工作方式一模一样。ReAct 循环推理→执行→观察→判断是否完成写你的第一个 Agent下面用 Claude API 写一个能搜索网页的 Agent。代码基于anthropicPython SDK模型claude-sonnet-4-20250514。先装依赖、设 API Keypip install anthropicexport ANTHROPIC_API_KEY你的API密钥完整代码import anthropicimport jsonclient anthropic.Anthropic()# 定义工具让 Agent 能搜索网页tools [ { name: web_search, description: 搜索互联网获取实时信息。输入搜索关键词返回搜索结果摘要。, input_schema: { type: object, properties: { query: { type: string, description: 搜索关键词 } }, required: [query] } }]def execute_tool(name: str, params: dict) - str: 工具执行入口——目前是模拟数据替换为 Tavily/SerpAPI 即可接入真实搜索 if name web_search: returnf搜索{params[query]}的结果这里是模拟的搜索结果... return未知工具def run_agent(task: str) - str: 运行单 Agent 的 ReAct 循环 messages [{role: user, content: task}] whileTrue: response client.messages.create( modelclaude-sonnet-4-20250514, max_tokens4096, toolstools, messagesmessages, ) # Agent 决定任务完成返回结果 if response.stop_reason end_turn: for block in response.content: if hasattr(block, text): return block.text # 安全兜底max_tokens 截止时也返回已有内容 if response.stop_reason max_tokens: for block in response.content: if hasattr(block, text): return block.text returnAgent 输出被截断请增大 max_tokens # Agent 要求调用工具 tool_results [] for block in response.content: if block.type tool_use: result execute_tool(block.name, block.input) tool_results.append({ type: tool_result, tool_use_id: block.id, content: result, }) # 把 Agent 的回复和工具结果都加到对话历史 messages.append({role: assistant, content: response.content}) messages.append({role: user, content: tool_results})# 试一下result run_agent(搜索一下 2026 年最流行的 Python Web 框架有哪些)print(result)这段代码的核心是三件事。定义工具。告诉 Claude你有一个搜索工具可以用。工具定义用 JSON Schema 格式包括名称、描述和参数。ReAct 循环。每次回复后检查stop_reason如果是end_turn说明 Agent 觉得任务完了如果它调用了工具tool_use就执行工具、把结果喂回去继续循环。注意代码里也处理了max_tokens截止的情况——不处理这个Agent 输出太长时会陷入死循环。对话历史。每轮循环把 Agent 的回复和工具结果追加到messages。这样 Agent 能记住之前做了什么。Prompt提示词—— 给 Agent 的指令和约束。上面代码里的task参数就是最简单的 Prompt。好的 Prompt 应该说清楚三件事你是谁、你要做什么、用什么格式输出。Agent 自动规划搜索顺序——你不需要告诉它先搜 FastAPI 再搜 Django。你只需要知道Agent 的核心是 ReAct 循环——推理、执行、观察、再推理。用 Claude API 实现只需要一个while循环 工具定义。3. 升级到多 Agent上一节搞定了单 Agent。但当任务涉及多个领域——比如既要搜索信息、又要分析数据、还要生成报告——一个 Agent 的 Prompt 就得又长又复杂。每加一个工具它对每个工具的理解都会被稀释一点。这时候多 Agent 就有意义了。编排器-子 Agent 架构多 Agent 系统的核心架构叫Orchestrator-Subagent编排器-子 Agent。编排器Orchestrator—— 负责任务分配和协调的主 Agent。像项目经理不亲自干活负责拆解任务、分配给合适的人、汇总结果。子 AgentSubagent—— 执行具体任务的专门 Agent。每个只管自己的领域。编排器-子 Agent 架构编排器分配任务给搜索、分析、汇总三个子 Agent上下文隔离为什么要分开这里有个关键设计上下文隔离Context Isolation—— 每个 Agent 有独立的对话历史互不干扰。上下文隔离就像分会议室开会——每个人先在自己的小会议室研究自己的部分最后只向项目经理汇报结论。不需要知道其他人搜了什么、看了哪些资料。在技术层面上下文隔离带来两个好处每个 Agent 的上下文窗口只包含自己需要的信息不会被其他任务的内容稀释子 Agent 只返回压缩后的结论给编排器不是把搜索中的所有中间结果都传回去代码实现基于上一节的execute_tool函数搭一个多 Agent 系统import anthropicimport jsonimport refrom concurrent.futures import ThreadPoolExecutorclient anthropic.Anthropic()def create_subagent(system_prompt: str, task: str, tools: list None) - str: 创建并运行一个独立的子 Agent # 关键每个子 Agent 都有全新的 messages这就是上下文隔离 messages [{role: user, content: task}] whileTrue: kwargs { model: claude-sonnet-4-20250514, max_tokens: 4096, system: system_prompt, messages: messages, } if tools: kwargs[tools] tools response client.messages.create(**kwargs) if response.stop_reason in (end_turn, max_tokens): for block in response.content: if hasattr(block, text): return block.text tool_results [] for block in response.content: if block.type tool_use: result execute_tool(block.name, block.input) tool_results.append({ type: tool_result, tool_use_id: block.id, content: result, }) messages.append({role: assistant, content: response.content}) messages.append({role: user, content: tool_results})def extract_json(text: str) - dict: 从 LLM 输出中提取 JSON——处理 markdown 代码块包裹的情况 # 先尝试直接解析 try: return json.loads(text) except json.JSONDecodeError: pass # 尝试提取 json ... 中的内容 match re.search(r(?:json)?\s*([\s\S]*?), text) if match: try: return json.loads(match.group(1).strip()) except json.JSONDecodeError: pass # 尝试提取第一个 { ... } 块 match re.search(r\{[\s\S]*\}, text) if match: try: return json.loads(match.group(0)) except json.JSONDecodeError: pass raise ValueError(f无法从 LLM 输出中提取 JSON: {text[:200]})def run_orchestrator(task: str) - str: 编排器拆解任务 → 并行分配 → 汇总结果 # 第一步让编排器分析任务拆成子任务 plan_response client.messages.create( modelclaude-sonnet-4-20250514, max_tokens2048, system你是一个任务编排器。分析用户任务拆解成可并行的子任务。用 JSON 格式输出格式如下{subtasks: [{name: 任务名, prompt: 子Agent的角色描述, task: 具体任务}]}, messages[{role: user, content: task}], ) plan extract_json(plan_response.content[0].text) # 第二步并行启动子 Agent results {} with ThreadPoolExecutor(max_workers5) as executor: futures {} for subtask in plan[subtasks]: future executor.submit( create_subagent, system_promptsubtask[prompt], tasksubtask[task], ) futures[subtask[name]] future for name, future in futures.items(): results[name] future.result() # 第三步汇总 summary create_subagent( system_prompt你是信息汇总专家。把多个研究结果整合成结构清晰的报告。, taskf以下是各子任务的结果请综合整理\n{json.dumps(results, ensure_asciiFalse, indent2)}, ) return summary代码结构分两部分create_subagent—— 创建独立的子 Agent。每次调用都是全新的messages这就是上下文隔离。注意stop_reason同时处理了end_turn和max_tokens。run_orchestrator—— 编排器分三步走分析任务 → 并行执行 → 汇总结果。这里多了一个extract_json函数。这是 Agent 开发中的常见问题你让 LLM 返回纯 JSON它有时会在前后加上解释文字或者用 markdown 代码块包裹。直接json.loads()会报错。这个函数逐级尝试三种提取策略实际项目中很实用。还有一个设计选择编排器用的也是 Sonnet 4。在 Anthropic 的研究中他们用 Opus 4 当编排器、Sonnet 4 当子 Agent效果更好。但对于入门项目统一用 Sonnet 就够了——先跑通再优化。你只需要知道多 Agent 系统的核心是编排器 子 Agent。编排器负责拆解和分配子 Agent 各自在独立的上下文中执行。用ThreadPoolExecutor可以让子 Agent 并行运行。4. 动手搭一个竞品调研系统理论讲完了来搭一个完整的东西。目标输入一个产品名称输出一份竞品分析报告——包括功能对比、定价信息和用户评价。代码用模拟搜索演示架构替换execute_tool中的搜索逻辑为真实 API如 Tavily、SerpAPI即可投入使用。系统架构 竞品调研系统架构编排器协调搜索、详情、报告三个 Agent三个 Agent 各司其职搜索 Agent 找竞品列表详情 Agent 并行分析每个竞品报告 Agent 汇总对比。完整代码import anthropicimport jsonimport refrom concurrent.futures import ThreadPoolExecutorclient anthropic.Anthropic()# 搜索工具定义search_tool { name: web_search, description: 搜索互联网获取产品信息、评价和定价数据。输入搜索关键词返回相关结果摘要。, input_schema: { type: object, properties: { query: {type: string, description: 搜索关键词} }, required: [query] }}def execute_tool(name: str, params: dict) - str: 工具执行入口——目前是模拟数据替换为真实搜索 API 即可投产 if name web_search: returnf搜索结果{params[query]} 的相关信息... return未知工具def create_subagent(role: str, task: str, tools: list None) - str: 创建子 Agent运行到完成 messages [{role: user, content: task}] whileTrue: kwargs { model: claude-sonnet-4-20250514, max_tokens: 4096, system: role, messages: messages, } if tools: kwargs[tools] tools response client.messages.create(**kwargs) if response.stop_reason in (end_turn, max_tokens): for block in response.content: if hasattr(block, text): return block.text tool_results [] for block in response.content: if block.type tool_use: result execute_tool(block.name, block.input) tool_results.append({ type: tool_result, tool_use_id: block.id, content: result, }) messages.append({role: assistant, content: response.content}) messages.append({role: user, content: tool_results})def extract_json(text: str) - dict: 从 LLM 输出中提取 JSON处理 markdown 代码块等干扰 try: return json.loads(text) except json.JSONDecodeError: pass match re.search(r(?:json)?\s*([\s\S]*?), text) if match: try: return json.loads(match.group(1).strip()) except json.JSONDecodeError: pass match re.search(r\{[\s\S]*\}, text) if match: try: return json.loads(match.group(0)) except json.JSONDecodeError: pass raise ValueError(f无法提取 JSON: {text[:200]})def research_competitors(product_name: str) - str: 竞品调研完整流程 # 第一步搜索 Agent 找出主要竞品 competitors_raw create_subagent( role你是竞品搜索专家。找出给定产品的 3-5 个主要竞品。返回纯 JSON格式{competitors: [竞品1, 竞品2, ...]}, taskf找出 {product_name} 的主要竞品, tools[search_tool], ) # 解析竞品列表——LLM 返回不一定是纯 JSON需要鲁棒解析 try: competitors extract_json(competitors_raw)[competitors] except (ValueError, KeyError): competitors [竞品A, 竞品B, 竞品C] # 第二步并行收集每个竞品的详细信息 details {} with ThreadPoolExecutor(max_workerslen(competitors)) as executor: futures {} for comp in competitors: future executor.submit( create_subagent, role你是产品分析专家。搜索并整理产品的功能亮点、定价方案和用户评价。输出结构化的分析结果。, taskf详细分析产品{comp}, tools[search_tool], ) futures[comp] future for comp, future in futures.items(): details[comp] future.result() # 第三步汇总 Agent 生成对比报告 report create_subagent( role你是商业分析报告专家。把多个产品的分析结果整合成一份结构清晰的竞品对比报告。, taskf原始产品{product_name}各竞品分析结果{json.dumps(details, ensure_asciiFalse, indent2)}请生成竞品对比报告包含1. 竞品概览一句话定位2. 功能对比矩阵3. 定价对比4. 各产品优劣势5. 选型建议, ) return reportif __name__ __main__: report research_competitors(Notion) print(report)核心设计思路搜索 Agent只找竞品名单不做分析——职责单一详情 Agent每个竞品独立分析互不影响——上下文隔离报告 Agent只做汇总拿到的是压缩后的结论——减少 Token详情 Agent 用ThreadPoolExecutor并行跑——效率高注意extract_json的使用LLM 有时会在 JSON 前后加文字说明或者用 markdown 代码块包裹。这在 Agent 系统中很常见做好防御性解析能省很多调试时间。这个例子用了模拟搜索——实际项目中把execute_tool里的搜索逻辑替换成 Tavily、SerpAPI 或者 Claude 的内置 Web Search 工具就行。核心架构不变。你只需要知道把任务拆成搜索→分析→汇总三步每步交给专门的 Agent。详情分析并行跑汇总串行跑。搜索工具换成真实 API 即可投产。5. 避坑指南搭多 Agent 系统的框架不复杂但从 demo 到稳定运行有几个坑需要提前知道。坑 1Token 消耗失控Token令牌—— AI 处理文本的基本单位也是计费单位。一个中文字大约 1-2 个 Token。多 Agent 系统的 Token 消耗远高于单 Agent。Anthropic 的生产环境数据来源系统类型Token 消耗相对值适用场景普通聊天1x基准简单问答单 Agent~4x多步任务多 Agent~15x复杂并行任务具体消耗取决于任务复杂度、子 Agent 数量和工具调用轮次。上面的倍数是 Anthropic 在研究系统中的平均值。怎么控制子 Agent 只返回精简摘要不要把完整搜索结果传给编排器用max_tokens限制每个 Agent 的输出长度简单任务别用多 Agent——杀鸡别用牛刀坑 2上下文污染如果你不小心让多个 Agent 共享了同一个messages列表它们的对话历史会互相污染。A Agent 搜索的结果跑到 B Agent 的上下文里B Agent 就可能产出莫名其妙的回答。解法每个子 Agent 都用全新的messages列表。回头看第 3 章的create_subagent函数——每次调用都messages [{role: user, content: task}]这就是上下文隔离。坑 3工具描述太模糊工具的描述决定了 Agent 能不能正确使用它。描述写得模糊Agent 就不知道什么时候该用、怎么用。做法效果description: 搜索Agent 不知道搜什么、返回什么格式description: 搜索互联网获取产品信息、评价和定价数据。输入搜索关键词返回相关结果摘要。Agent 清楚知道工具能力和适用场景工具设计三条规则描述写清楚说明输入什么、返回什么、什么场景下用功能要专一一个工具做一件事别搞万能工具参数要约束用 JSON Schema 的required和类型限制坑 4调试困难多 Agent 系统最大的问题不是搭建而是出了 bug 很难定位。多个 Agent 并行运行某个给了奇怪的结果——你怎么知道是哪个 Agent 的问题我的经验是三个方法最管用打日志—— 记录每个 Agent 的输入和输出出问题时能回溯。import logginglogging.basicConfig(levellogging.INFO)logger logging.getLogger(agent)def create_subagent(role: str, task: str, tools: list None) - str: logger.info(f[启动] 角色{role[:50]}... 任务{task[:80]}...) # ... Agent 逻辑 ... logger.info(f[完成] 结果{result[:200]}...) return result开发时关掉并行—— 让 Agent 一个个跑方便定位。上线后再开并行。设置temperature0—— 让结果尽量可复现。坑 5Prompt 越堆越长随着系统变复杂你可能会不断给 Agent 加指令。Prompt 越来越长Agent 反而越来越笨——因为注意力被分散了。解法把复杂指令拆到多个专门的 Agent 里而不是全塞到一个 Prompt。这也是多 Agent 架构的核心价值之一通过分工降低单个 Agent 的认知负担。你只需要知道多 Agent 的主要成本是 Token。保持上下文隔离、写好工具描述、打好日志能避开大部分坑。6. 接下来做什么到这里你已经掌握了多 Agent 系统的核心ReAct 循环让 Agent 能自主推理和行动编排器-子 Agent 架构让多个 Agent 分工协作上下文隔离保证了每个 Agent 的工作质量Token 消耗和调试是实际落地时要重点关注的如果你想继续深入可以看看这几个方向接入真实搜索 API把模拟搜索换成 Tavily 或 SerpAPI让系统能真正上网搜信息MCP 协议标准化的 AI 工具集成方案。CNCF 在 KubeCon 2026 首次设立了 Agentics Day云原生和 Agent 系统正在快速融合Anthropic Agent SDK官方的 Agent 开发工具包封装了本文手写的很多逻辑适合生产环境生产级部署认证管理、速率限制、错误重试、成本监控——从 demo 到生产还有不少路要走本文的代码基于anthropicPython SDK模型使用claude-sonnet-4-20250514Claude Sonnet 4。代码结构经过简化以突出核心概念实际项目中需要补充错误处理、重试逻辑和日志。多 Agent 系统是个强大的工具但不是银弹。简单任务用单 Agent 就够了。只有当任务真的需要多种专业能力协作或者能拆成独立子任务并行处理时多 Agent 架构才值得上。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】为什么要学习大模型我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年人才缺口已超百万凸显培养不足。随着AI技术飞速发展预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。大模型入门到实战全套学习大礼包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 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
收藏 | 从零开始学多Agent系统:用Claude API打造高效AI协作框架,小白也能轻松上手!
发布时间:2026/6/10 23:22:28
本文将带你深入了解多Agent系统的核心价值通过使用Claude API教你从零搭建一个完整的多Agent系统框架。无需复杂的基础设施只需Python和API Key。文章涵盖Agent的概念、单Agent与多Agent的区别、ReAct工作循环、编排器-子Agent架构设计、上下文隔离的重要性并通过一个竞品调研系统的实例演示如何实现。此外还提供了Token消耗控制、上下文污染规避、工具描述优化、调试技巧等避坑指南适合有Python基础、了解ChatGPT或Claude的开发者学习。这篇文章讲什么你手上有个任务调研 5 个竞品的功能、价格和用户评价写成一份对比报告。手动搜索、逐个整理大概要花半天。但如果你有一组 AI Agent各自负责搜索、分析、汇总——接入真实搜索 API 后整个过程可以压缩到几分钟。这就是多 Agent 系统的价值让 AI 分工协作自动完成复杂的多步任务。本文会带你从零开始用 Claude API 搭建一个多 Agent 系统的完整框架。不需要框架不需要复杂的基础设施只要 Python 和一个 API Key。你会学到Agent 是什么跟普通的 LLM 调用有什么区别如何写一个能自主调用工具的单 Agent如何把多个 Agent 组织成团队让它们分工协作动手搭一个竞品调研系统的骨架含模拟搜索换成真实 API 即可投产避坑指南Token 消耗、上下文污染、调试技巧适合谁读有 Python 基础、用过 ChatGPT 或 Claude、但没接触过 Agent 开发的开发者。1. Agent 是什么为什么要多先把概念理清。Agent智能体—— 能自主规划、调用工具、执行任务的 AI。跟普通的 LLM 调用不一样Agent 不只是你问我答它能自己决定下一步做什么。打个比方普通的 LLM 调用像客服热线你问一句它答一句Agent 更像你雇的助理——你说帮我调研竞品它会自己拆解任务、上网搜索、整理结果。两者的区别可以用一张表说清楚普通 LLM 调用Agent交互方式一问一答每次独立多轮自主决策外部工具需要人写代码串联自己决定调用哪个工具任务复杂度单步任务多步任务决策权人决定每一步AI 自己决定下一步那为什么要多 Agent原因有两个。一是专业化分工。把所有工具塞给一个 Agent就像让一个人同时当搜索工程师、数据分析师和报告撰写人。它哪个都能凑合但哪个都不精。拆成多个专门的 Agent每个只关注自己的领域Prompt 更短、工具更少、输出更稳定。二是并行效率。多个 Agent 可以同时干活。比如竞品调研搜索 5 个竞品的信息——一个 Agent 串行搜要五次五个 Agent 并行搜只要一次的时间。Anthropic 在他们的多 Agent 研究系统中做过对比由 Claude Opus 4 当编排器、多个 Claude Sonnet 4 当子 Agent 的系统在内部研究评估internal research eval上的得分比单独使用 Opus 4 高出约 90%来源Anthropic 官方博客。他们分析发现Token 用量本身就能解释 80% 的性能差异——本质上是用更多的计算资源换取更好的结果。不过代价也很明显。Anthropic 的生产数据显示单 Agent 的 Token 消耗约是普通聊天的 4 倍多 Agent 系统约是 15 倍。所以它更适合高价值的复杂任务不是什么都往上面套。什么时候该用多 Agent一个简单的判断标准任务能拆成 2 个以上独立的子任务 → 考虑多 Agent子任务之间不需要频繁交换中间状态 → 适合多 Agent任务简单、步骤少、一个 Prompt 就能搞定 → 单 Agent 足够所有子任务必须共享同一份上下文 → 不适合多 Agent还有一个概念提一下MCPModel Context Protocol—— AI 与外部工具连接的开放标准。你可以理解为REST 是 Web API 的通用语言MCP 就是 AI 工具集成的通用语言。目前 OpenAI、Google DeepMind、百度等都已采用。本文的代码用的是 Claude 的原生 Tool Use不依赖 MCP但了解 MCP 有助于理解工具生态的方向。你只需要知道Agent 能自己调工具的 AI。当任务需要多种专业能力协作或者能拆成独立子任务并行处理时多 Agent 就有价值。代价是 Token 消耗会大幅增加。2. 从单 Agent 开始别一上来就搞多 Agent。先搞定单 Agent理解它的运行机制。ReActAgent 的工作循环ReAct 模式Reasoning Acting—— Agent 的核心工作方式一个推理→执行→观察的循环。用做饭来类比看菜谱推理→ 切菜执行→ 尝味道观察→ 觉得淡了再加盐推理→ 加盐执行→ 再尝观察。Agent 的工作方式一模一样。ReAct 循环推理→执行→观察→判断是否完成写你的第一个 Agent下面用 Claude API 写一个能搜索网页的 Agent。代码基于anthropicPython SDK模型claude-sonnet-4-20250514。先装依赖、设 API Keypip install anthropicexport ANTHROPIC_API_KEY你的API密钥完整代码import anthropicimport jsonclient anthropic.Anthropic()# 定义工具让 Agent 能搜索网页tools [ { name: web_search, description: 搜索互联网获取实时信息。输入搜索关键词返回搜索结果摘要。, input_schema: { type: object, properties: { query: { type: string, description: 搜索关键词 } }, required: [query] } }]def execute_tool(name: str, params: dict) - str: 工具执行入口——目前是模拟数据替换为 Tavily/SerpAPI 即可接入真实搜索 if name web_search: returnf搜索{params[query]}的结果这里是模拟的搜索结果... return未知工具def run_agent(task: str) - str: 运行单 Agent 的 ReAct 循环 messages [{role: user, content: task}] whileTrue: response client.messages.create( modelclaude-sonnet-4-20250514, max_tokens4096, toolstools, messagesmessages, ) # Agent 决定任务完成返回结果 if response.stop_reason end_turn: for block in response.content: if hasattr(block, text): return block.text # 安全兜底max_tokens 截止时也返回已有内容 if response.stop_reason max_tokens: for block in response.content: if hasattr(block, text): return block.text returnAgent 输出被截断请增大 max_tokens # Agent 要求调用工具 tool_results [] for block in response.content: if block.type tool_use: result execute_tool(block.name, block.input) tool_results.append({ type: tool_result, tool_use_id: block.id, content: result, }) # 把 Agent 的回复和工具结果都加到对话历史 messages.append({role: assistant, content: response.content}) messages.append({role: user, content: tool_results})# 试一下result run_agent(搜索一下 2026 年最流行的 Python Web 框架有哪些)print(result)这段代码的核心是三件事。定义工具。告诉 Claude你有一个搜索工具可以用。工具定义用 JSON Schema 格式包括名称、描述和参数。ReAct 循环。每次回复后检查stop_reason如果是end_turn说明 Agent 觉得任务完了如果它调用了工具tool_use就执行工具、把结果喂回去继续循环。注意代码里也处理了max_tokens截止的情况——不处理这个Agent 输出太长时会陷入死循环。对话历史。每轮循环把 Agent 的回复和工具结果追加到messages。这样 Agent 能记住之前做了什么。Prompt提示词—— 给 Agent 的指令和约束。上面代码里的task参数就是最简单的 Prompt。好的 Prompt 应该说清楚三件事你是谁、你要做什么、用什么格式输出。Agent 自动规划搜索顺序——你不需要告诉它先搜 FastAPI 再搜 Django。你只需要知道Agent 的核心是 ReAct 循环——推理、执行、观察、再推理。用 Claude API 实现只需要一个while循环 工具定义。3. 升级到多 Agent上一节搞定了单 Agent。但当任务涉及多个领域——比如既要搜索信息、又要分析数据、还要生成报告——一个 Agent 的 Prompt 就得又长又复杂。每加一个工具它对每个工具的理解都会被稀释一点。这时候多 Agent 就有意义了。编排器-子 Agent 架构多 Agent 系统的核心架构叫Orchestrator-Subagent编排器-子 Agent。编排器Orchestrator—— 负责任务分配和协调的主 Agent。像项目经理不亲自干活负责拆解任务、分配给合适的人、汇总结果。子 AgentSubagent—— 执行具体任务的专门 Agent。每个只管自己的领域。编排器-子 Agent 架构编排器分配任务给搜索、分析、汇总三个子 Agent上下文隔离为什么要分开这里有个关键设计上下文隔离Context Isolation—— 每个 Agent 有独立的对话历史互不干扰。上下文隔离就像分会议室开会——每个人先在自己的小会议室研究自己的部分最后只向项目经理汇报结论。不需要知道其他人搜了什么、看了哪些资料。在技术层面上下文隔离带来两个好处每个 Agent 的上下文窗口只包含自己需要的信息不会被其他任务的内容稀释子 Agent 只返回压缩后的结论给编排器不是把搜索中的所有中间结果都传回去代码实现基于上一节的execute_tool函数搭一个多 Agent 系统import anthropicimport jsonimport refrom concurrent.futures import ThreadPoolExecutorclient anthropic.Anthropic()def create_subagent(system_prompt: str, task: str, tools: list None) - str: 创建并运行一个独立的子 Agent # 关键每个子 Agent 都有全新的 messages这就是上下文隔离 messages [{role: user, content: task}] whileTrue: kwargs { model: claude-sonnet-4-20250514, max_tokens: 4096, system: system_prompt, messages: messages, } if tools: kwargs[tools] tools response client.messages.create(**kwargs) if response.stop_reason in (end_turn, max_tokens): for block in response.content: if hasattr(block, text): return block.text tool_results [] for block in response.content: if block.type tool_use: result execute_tool(block.name, block.input) tool_results.append({ type: tool_result, tool_use_id: block.id, content: result, }) messages.append({role: assistant, content: response.content}) messages.append({role: user, content: tool_results})def extract_json(text: str) - dict: 从 LLM 输出中提取 JSON——处理 markdown 代码块包裹的情况 # 先尝试直接解析 try: return json.loads(text) except json.JSONDecodeError: pass # 尝试提取 json ... 中的内容 match re.search(r(?:json)?\s*([\s\S]*?), text) if match: try: return json.loads(match.group(1).strip()) except json.JSONDecodeError: pass # 尝试提取第一个 { ... } 块 match re.search(r\{[\s\S]*\}, text) if match: try: return json.loads(match.group(0)) except json.JSONDecodeError: pass raise ValueError(f无法从 LLM 输出中提取 JSON: {text[:200]})def run_orchestrator(task: str) - str: 编排器拆解任务 → 并行分配 → 汇总结果 # 第一步让编排器分析任务拆成子任务 plan_response client.messages.create( modelclaude-sonnet-4-20250514, max_tokens2048, system你是一个任务编排器。分析用户任务拆解成可并行的子任务。用 JSON 格式输出格式如下{subtasks: [{name: 任务名, prompt: 子Agent的角色描述, task: 具体任务}]}, messages[{role: user, content: task}], ) plan extract_json(plan_response.content[0].text) # 第二步并行启动子 Agent results {} with ThreadPoolExecutor(max_workers5) as executor: futures {} for subtask in plan[subtasks]: future executor.submit( create_subagent, system_promptsubtask[prompt], tasksubtask[task], ) futures[subtask[name]] future for name, future in futures.items(): results[name] future.result() # 第三步汇总 summary create_subagent( system_prompt你是信息汇总专家。把多个研究结果整合成结构清晰的报告。, taskf以下是各子任务的结果请综合整理\n{json.dumps(results, ensure_asciiFalse, indent2)}, ) return summary代码结构分两部分create_subagent—— 创建独立的子 Agent。每次调用都是全新的messages这就是上下文隔离。注意stop_reason同时处理了end_turn和max_tokens。run_orchestrator—— 编排器分三步走分析任务 → 并行执行 → 汇总结果。这里多了一个extract_json函数。这是 Agent 开发中的常见问题你让 LLM 返回纯 JSON它有时会在前后加上解释文字或者用 markdown 代码块包裹。直接json.loads()会报错。这个函数逐级尝试三种提取策略实际项目中很实用。还有一个设计选择编排器用的也是 Sonnet 4。在 Anthropic 的研究中他们用 Opus 4 当编排器、Sonnet 4 当子 Agent效果更好。但对于入门项目统一用 Sonnet 就够了——先跑通再优化。你只需要知道多 Agent 系统的核心是编排器 子 Agent。编排器负责拆解和分配子 Agent 各自在独立的上下文中执行。用ThreadPoolExecutor可以让子 Agent 并行运行。4. 动手搭一个竞品调研系统理论讲完了来搭一个完整的东西。目标输入一个产品名称输出一份竞品分析报告——包括功能对比、定价信息和用户评价。代码用模拟搜索演示架构替换execute_tool中的搜索逻辑为真实 API如 Tavily、SerpAPI即可投入使用。系统架构 竞品调研系统架构编排器协调搜索、详情、报告三个 Agent三个 Agent 各司其职搜索 Agent 找竞品列表详情 Agent 并行分析每个竞品报告 Agent 汇总对比。完整代码import anthropicimport jsonimport refrom concurrent.futures import ThreadPoolExecutorclient anthropic.Anthropic()# 搜索工具定义search_tool { name: web_search, description: 搜索互联网获取产品信息、评价和定价数据。输入搜索关键词返回相关结果摘要。, input_schema: { type: object, properties: { query: {type: string, description: 搜索关键词} }, required: [query] }}def execute_tool(name: str, params: dict) - str: 工具执行入口——目前是模拟数据替换为真实搜索 API 即可投产 if name web_search: returnf搜索结果{params[query]} 的相关信息... return未知工具def create_subagent(role: str, task: str, tools: list None) - str: 创建子 Agent运行到完成 messages [{role: user, content: task}] whileTrue: kwargs { model: claude-sonnet-4-20250514, max_tokens: 4096, system: role, messages: messages, } if tools: kwargs[tools] tools response client.messages.create(**kwargs) if response.stop_reason in (end_turn, max_tokens): for block in response.content: if hasattr(block, text): return block.text tool_results [] for block in response.content: if block.type tool_use: result execute_tool(block.name, block.input) tool_results.append({ type: tool_result, tool_use_id: block.id, content: result, }) messages.append({role: assistant, content: response.content}) messages.append({role: user, content: tool_results})def extract_json(text: str) - dict: 从 LLM 输出中提取 JSON处理 markdown 代码块等干扰 try: return json.loads(text) except json.JSONDecodeError: pass match re.search(r(?:json)?\s*([\s\S]*?), text) if match: try: return json.loads(match.group(1).strip()) except json.JSONDecodeError: pass match re.search(r\{[\s\S]*\}, text) if match: try: return json.loads(match.group(0)) except json.JSONDecodeError: pass raise ValueError(f无法提取 JSON: {text[:200]})def research_competitors(product_name: str) - str: 竞品调研完整流程 # 第一步搜索 Agent 找出主要竞品 competitors_raw create_subagent( role你是竞品搜索专家。找出给定产品的 3-5 个主要竞品。返回纯 JSON格式{competitors: [竞品1, 竞品2, ...]}, taskf找出 {product_name} 的主要竞品, tools[search_tool], ) # 解析竞品列表——LLM 返回不一定是纯 JSON需要鲁棒解析 try: competitors extract_json(competitors_raw)[competitors] except (ValueError, KeyError): competitors [竞品A, 竞品B, 竞品C] # 第二步并行收集每个竞品的详细信息 details {} with ThreadPoolExecutor(max_workerslen(competitors)) as executor: futures {} for comp in competitors: future executor.submit( create_subagent, role你是产品分析专家。搜索并整理产品的功能亮点、定价方案和用户评价。输出结构化的分析结果。, taskf详细分析产品{comp}, tools[search_tool], ) futures[comp] future for comp, future in futures.items(): details[comp] future.result() # 第三步汇总 Agent 生成对比报告 report create_subagent( role你是商业分析报告专家。把多个产品的分析结果整合成一份结构清晰的竞品对比报告。, taskf原始产品{product_name}各竞品分析结果{json.dumps(details, ensure_asciiFalse, indent2)}请生成竞品对比报告包含1. 竞品概览一句话定位2. 功能对比矩阵3. 定价对比4. 各产品优劣势5. 选型建议, ) return reportif __name__ __main__: report research_competitors(Notion) print(report)核心设计思路搜索 Agent只找竞品名单不做分析——职责单一详情 Agent每个竞品独立分析互不影响——上下文隔离报告 Agent只做汇总拿到的是压缩后的结论——减少 Token详情 Agent 用ThreadPoolExecutor并行跑——效率高注意extract_json的使用LLM 有时会在 JSON 前后加文字说明或者用 markdown 代码块包裹。这在 Agent 系统中很常见做好防御性解析能省很多调试时间。这个例子用了模拟搜索——实际项目中把execute_tool里的搜索逻辑替换成 Tavily、SerpAPI 或者 Claude 的内置 Web Search 工具就行。核心架构不变。你只需要知道把任务拆成搜索→分析→汇总三步每步交给专门的 Agent。详情分析并行跑汇总串行跑。搜索工具换成真实 API 即可投产。5. 避坑指南搭多 Agent 系统的框架不复杂但从 demo 到稳定运行有几个坑需要提前知道。坑 1Token 消耗失控Token令牌—— AI 处理文本的基本单位也是计费单位。一个中文字大约 1-2 个 Token。多 Agent 系统的 Token 消耗远高于单 Agent。Anthropic 的生产环境数据来源系统类型Token 消耗相对值适用场景普通聊天1x基准简单问答单 Agent~4x多步任务多 Agent~15x复杂并行任务具体消耗取决于任务复杂度、子 Agent 数量和工具调用轮次。上面的倍数是 Anthropic 在研究系统中的平均值。怎么控制子 Agent 只返回精简摘要不要把完整搜索结果传给编排器用max_tokens限制每个 Agent 的输出长度简单任务别用多 Agent——杀鸡别用牛刀坑 2上下文污染如果你不小心让多个 Agent 共享了同一个messages列表它们的对话历史会互相污染。A Agent 搜索的结果跑到 B Agent 的上下文里B Agent 就可能产出莫名其妙的回答。解法每个子 Agent 都用全新的messages列表。回头看第 3 章的create_subagent函数——每次调用都messages [{role: user, content: task}]这就是上下文隔离。坑 3工具描述太模糊工具的描述决定了 Agent 能不能正确使用它。描述写得模糊Agent 就不知道什么时候该用、怎么用。做法效果description: 搜索Agent 不知道搜什么、返回什么格式description: 搜索互联网获取产品信息、评价和定价数据。输入搜索关键词返回相关结果摘要。Agent 清楚知道工具能力和适用场景工具设计三条规则描述写清楚说明输入什么、返回什么、什么场景下用功能要专一一个工具做一件事别搞万能工具参数要约束用 JSON Schema 的required和类型限制坑 4调试困难多 Agent 系统最大的问题不是搭建而是出了 bug 很难定位。多个 Agent 并行运行某个给了奇怪的结果——你怎么知道是哪个 Agent 的问题我的经验是三个方法最管用打日志—— 记录每个 Agent 的输入和输出出问题时能回溯。import logginglogging.basicConfig(levellogging.INFO)logger logging.getLogger(agent)def create_subagent(role: str, task: str, tools: list None) - str: logger.info(f[启动] 角色{role[:50]}... 任务{task[:80]}...) # ... Agent 逻辑 ... logger.info(f[完成] 结果{result[:200]}...) return result开发时关掉并行—— 让 Agent 一个个跑方便定位。上线后再开并行。设置temperature0—— 让结果尽量可复现。坑 5Prompt 越堆越长随着系统变复杂你可能会不断给 Agent 加指令。Prompt 越来越长Agent 反而越来越笨——因为注意力被分散了。解法把复杂指令拆到多个专门的 Agent 里而不是全塞到一个 Prompt。这也是多 Agent 架构的核心价值之一通过分工降低单个 Agent 的认知负担。你只需要知道多 Agent 的主要成本是 Token。保持上下文隔离、写好工具描述、打好日志能避开大部分坑。6. 接下来做什么到这里你已经掌握了多 Agent 系统的核心ReAct 循环让 Agent 能自主推理和行动编排器-子 Agent 架构让多个 Agent 分工协作上下文隔离保证了每个 Agent 的工作质量Token 消耗和调试是实际落地时要重点关注的如果你想继续深入可以看看这几个方向接入真实搜索 API把模拟搜索换成 Tavily 或 SerpAPI让系统能真正上网搜信息MCP 协议标准化的 AI 工具集成方案。CNCF 在 KubeCon 2026 首次设立了 Agentics Day云原生和 Agent 系统正在快速融合Anthropic Agent SDK官方的 Agent 开发工具包封装了本文手写的很多逻辑适合生产环境生产级部署认证管理、速率限制、错误重试、成本监控——从 demo 到生产还有不少路要走本文的代码基于anthropicPython SDK模型使用claude-sonnet-4-20250514Claude Sonnet 4。代码结构经过简化以突出核心概念实际项目中需要补充错误处理、重试逻辑和日志。多 Agent 系统是个强大的工具但不是银弹。简单任务用单 Agent 就够了。只有当任务真的需要多种专业能力协作或者能拆成独立子任务并行处理时多 Agent 架构才值得上。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】为什么要学习大模型我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年人才缺口已超百万凸显培养不足。随着AI技术飞速发展预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。大模型入门到实战全套学习大礼包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 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】