<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>LangGraph on Lucas Ma 的博客</title>
    <link>https://blog.lucasma.cc/tags/langgraph/</link>
    <description>Recent content in LangGraph on Lucas Ma 的博客</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <copyright>2026 Lucas Ma</copyright>
    <lastBuildDate>Thu, 14 May 2026 22:00:00 +0800</lastBuildDate>
    <atom:link href="https://blog.lucasma.cc/tags/langgraph/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>多智能体架构怎么选：Subagent、Skills、Handoffs、Router 深度对比</title>
      <link>https://blog.lucasma.cc/posts/multi-agent-architecture-patterns-comparison/</link>
      <pubDate>Thu, 14 May 2026 22:00:00 +0800</pubDate>
      <guid>https://blog.lucasma.cc/posts/multi-agent-architecture-patterns-comparison/</guid>
      <description>&lt;p&gt;开门见山：多智能体（Multi-Agent）架构现在已经不是什么新鲜概念了，但真正要在生产项目中落地，很多团队其实还没想清楚「什么时候该用什么模式」。&lt;/p&gt;
&lt;p&gt;今天我们深度解读 LangChain 官方博客的一篇重磅技术文章，结合实际场景，把 &lt;strong&gt;Subagents（子代理）、Skills（技能）、Handoffs（交接）、Router（路由）&lt;/strong&gt; 四种核心模式讲透——包括各自的工作原理、适用场景、性能对比，以及实操代码示例。&lt;/p&gt;
&lt;p&gt;读完这篇，你就知道下次遇到多智能体场景该选什么了。&lt;/p&gt;
&lt;h2 id=&#34;背景什么时候需要多智能体架构&#34;&gt;背景：什么时候需要多智能体架构？&lt;/h2&gt;
&lt;p&gt;在聊四种模式之前，先说一个重要原则：&lt;strong&gt;不要一上来就上多智能体&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;LangChain 官方博客的建议很明确：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;先用单体代理 + 好的工具（Tools）。只有当你的应用真的遇到瓶颈了，再考虑多智能体。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;那什么情况下会遇到瓶颈呢？主要两个约束：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;上下文管理问题&lt;/strong&gt;：每个子能力都需要大量专业知识，塞进一个 Prompt 里根本装不下。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分布式开发问题&lt;/strong&gt;：不同团队独立维护不同能力，单体 Prompt 根本没法管。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;当这两个问题变得尖锐时，多智能体架构就是正确答案。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;顺便提一句，Anthropic 的多智能体研究系统（Claude Opus 4 主导 + Sonnet 4 子代理）比单代理 Opus 4 在内部评测中&lt;strong&gt;性能提升 90.2%&lt;/strong&gt; ——这个数字足以说明多智能体的威力。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;四种架构模式深度解析&#34;&gt;四种架构模式深度解析&lt;/h2&gt;
&lt;h3 id=&#34;1-subagents集中式编排&#34;&gt;1. Subagents：集中式编排&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;一句话理解&lt;/strong&gt;：一个主代理（Supervisor）通过工具调用（Tool Calling）的方式调度多个专用子代理，子代理无状态、不记忆对话历史。&lt;/p&gt;
&lt;h4 id=&#34;工作原理&#34;&gt;工作原理&lt;/h4&gt;
&lt;pre class=&#34;mermaid&#34;&gt;graph TD
    User[&amp;#34;用户请求&amp;#34;] --&amp;gt; Supervisor[&amp;#34;Supervisor 主代理&amp;#34;]
    Supervisor --&amp;gt; Sub1[&amp;#34;日历子代理&amp;#34;]
    Supervisor --&amp;gt; Sub2[&amp;#34;邮件子代理&amp;#34;]
    Supervisor --&amp;gt; Sub3[&amp;#34;CRM子代理&amp;#34;]
    Sub1 --&amp;gt; Result1[&amp;#34;结果&amp;#34;]
    Sub2 --&amp;gt; Result2[&amp;#34;结果&amp;#34;]
    Sub3 --&amp;gt; Result3[&amp;#34;结果&amp;#34;]
    Result1 --&amp;gt; Supervisor
    Result2 --&amp;gt; Supervisor
    Result3 --&amp;gt; Supervisor
    Supervisor --&amp;gt; Final[&amp;#34;综合响应&amp;#34;]
&lt;/pre&gt;

&lt;h4 id=&#34;核心特点&#34;&gt;核心特点&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;中心化控制&lt;/strong&gt;：所有路由都经过主代理，主代理决定调用哪个子代理、传什么参数、怎么合并结果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;强上下文隔离&lt;/strong&gt;：子代理 stateless，每次调用都是全新上下文，不存在记忆污染。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;天然支持并行&lt;/strong&gt;：主代理可以同时触发多个子代理并行工作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;适用场景&#34;&gt;适用场景&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;个人助手类应用（协调日历、邮件、CRM）&lt;/li&gt;
&lt;li&gt;需要调用多个独立领域专家的研究系统&lt;/li&gt;
&lt;li&gt;需要集中管控路由策略的企业应用&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;关键权衡&#34;&gt;关键权衡&lt;/h4&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;优点&lt;/th&gt;
          &lt;th&gt;缺点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;控制清晰、易调试&lt;/td&gt;
          &lt;td&gt;多一跳模型调用（结果要回到主代理再返回）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;强隔离，子代理互不干扰&lt;/td&gt;
          &lt;td&gt;子代理无法直接和用户对话&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;并行执行效率高&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;代码示例langchain-python&#34;&gt;代码示例（LangChain Python）&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; langchain_core.tools &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; tool
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; langchain_openai &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; ChatOpenAI
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; langgraph.prebuilt &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; create_react_agent
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 子代理1：日历管理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@tool&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_calendar_events&lt;/span&gt;(date: str):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&amp;#34;获取指定日期的日历事件&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; [&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;会议A &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;date&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; 10:00&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;评审 &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;date&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; 14:00&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 子代理2：邮件管理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@tool&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;send_email&lt;/span&gt;(to: str, content: str):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&amp;#34;发送邮件&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;已发送邮件给 &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;to&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 创建子代理（各自独立）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;calendar_agent &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; create_react_agent(
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    model&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;ChatOpenAI(model&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;gpt-4o&amp;#34;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    tools&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;[get_calendar_events]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;email_agent &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; create_react_agent(
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    model&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;ChatOpenAI(model&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;gpt-4o&amp;#34;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    tools&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;[send_email]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 主代理通过 tool 调用调度子代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 这里省略主代理 prompt 定义，实际使用时通过 tool 绑定子代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;实战建议&lt;/strong&gt;：Subagents 模式是四种模式里最接近「多智能体」原始定义的一种。如果你需要强隔离、高可控，选这个。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
