Solo Unicorn Club logo

Field Note / c-01

每个 AI 构建者都该知道的三种 Agent 架构

Date2026-03-07
Length2,650
Seriestech deep dive

我搭过十几个 Agent 系统,踩过最贵的坑不是模型选错、prompt 写烂,而是架构选错。一个内容审核系统,我最初用 Sequential Pipeline 跑,延迟 12 秒;换成 Parallel Swarm 后降到 3.8...

#AI Agent#架构#Sequential Pipeline#Parallel Swarm#Hierarchical#技术深度
每个 AI 构建者都该知道的三种 Agent 架构

每个 AI 构建者都该知道的三种 Agent 架构

开场

我搭过十几个 Agent 系统,踩过最贵的坑不是模型选错、prompt 写烂,而是架构选错。一个内容审核系统,我最初用 Sequential Pipeline 跑,延迟 12 秒;换成 Parallel Swarm 后降到 3.8 秒,成本没变。架构选型这件事,决定了你 80% 的上限。这篇文章拆解三种核心 Agent 架构的设计逻辑、适用场景和踩坑经验,帮你在动手之前做对选择。

问题背景

大部分人搭 Agent 系统的方式是:先跑通一个 demo,然后不断叠功能,直到系统变成一坨无法维护的意大利面条。根本原因是没有在第一步想清楚架构。

Agent 架构不是学术概念,它直接影响三个关键指标:

  • 延迟:用户等几秒和等几十秒,体验天差地别
  • 成本:token 消耗的差异可以到 3-5 倍
  • 可靠性:单点失败是否会拖垮整个系统

2026 年主流的 Agent 框架——LangGraph、CrewAI、OpenAI Agents SDK、AutoGen——底层都在用这三种架构的某种变体。理解原理比记住框架 API 重要得多。

核心架构

架构一:Sequential Pipeline(顺序管道)

最直观的架构。Agent A 的输出喂给 Agent B,Agent B 的输出喂给 Agent C,线性流转。

Input → Agent A → Agent B → Agent C → Output

设计原则:每个 Agent 只做一件事,上游输出是下游输入,数据单向流动。

from openai import OpenAI

client = OpenAI()

def sequential_pipeline(user_input: str) -> str:
    """顺序管道:研究 → 起草 → 审核"""

    # Step 1: 研究 Agent — 收集背景信息
    research = client.chat.completions.create(
        model="gpt-4.1",
        messages=[
            {"role": "system", "content": "你是研究员,提供准确的背景资料和数据。"},
            {"role": "user", "content": f"研究这个主题:{user_input}"}
        ]
    )
    research_result = research.choices[0].message.content

    # Step 2: 起草 Agent — 基于研究结果写初稿
    draft = client.chat.completions.create(
        model="gpt-4.1",
        messages=[
            {"role": "system", "content": "你是写手,基于研究资料撰写文章。"},
            {"role": "user", "content": f"基于以下研究写一篇文章:\n{research_result}"}
        ]
    )
    draft_result = draft.choices[0].message.content

    # Step 3: 审核 Agent — 检查事实和质量
    review = client.chat.completions.create(
        model="gpt-4.1",
        messages=[
            {"role": "system", "content": "你是编辑,检查文章的事实准确性和行文质量。"},
            {"role": "user", "content": f"审核这篇文章:\n{draft_result}"}
        ]
    )
    return review.choices[0].message.content

最佳场景

  • 内容生产管道(研究 → 写作 → 审核 → 排版)
  • 数据处理流程(提取 → 清洗 → 分析 → 可视化)
  • 每一步依赖上一步的完整输出

优点

  • 逻辑清晰,debug 容易——哪个环节出问题一目了然
  • 每个 Agent 的 prompt 可以精准优化
  • 天然支持断点续跑

缺点

  • 总延迟 = 所有 Agent 延迟之和,无法并行
  • 上游错误会逐级放大(garbage in, garbage out)
  • 不适合需要反馈循环的场景

生产数据:我的内容管道用 3 个 Agent 的 Sequential Pipeline,GPT-4.1 做中间步骤、Claude Sonnet 4.5 做终审。单篇文章延迟 8-12 秒,token 消耗约 4,500(input + output),成本约 $0.04/篇。

架构二:Parallel Swarm(并行蜂群)

多个 Agent 同时执行不同任务,结果汇总到一个 Aggregator。

         ┌→ Agent A ─┐
Input ───┼→ Agent B ──┼→ Aggregator → Output
         └→ Agent C ─┘

设计原则:任务可拆分为独立子任务,子任务之间无依赖,最后合并结果。

import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI()

async def parallel_swarm(product_name: str) -> str:
    """并行蜂群:同时从多个维度分析产品"""

    # 定义并行任务
    tasks = {
        "market": "分析这个产品的市场规模和竞争格局",
        "tech": "分析这个产品的技术架构和技术壁垒",
        "finance": "分析这个产品的商业模式和盈利能力",
    }

    async def run_agent(role: str, prompt: str) -> dict:
        """单个分析 Agent"""
        response = await client.chat.completions.create(
            model="gpt-4.1-mini",  # 并行任务用性价比高的模型
            messages=[
                {"role": "system", "content": f"你是{role}分析师。输出简洁的分析报告。"},
                {"role": "user", "content": f"{prompt}:{product_name}"}
            ]
        )
        return {"role": role, "analysis": response.choices[0].message.content}

    # 三个 Agent 并行执行
    results = await asyncio.gather(
        run_agent("市场", tasks["market"]),
        run_agent("技术", tasks["tech"]),
        run_agent("财务", tasks["finance"]),
    )

    # Aggregator: 汇总三份分析,生成综合报告
    combined = "\n\n".join([f"## {r['role']}分析\n{r['analysis']}" for r in results])
    final = await client.chat.completions.create(
        model="claude-sonnet-4-5",  # 汇总用强模型
        messages=[
            {"role": "system", "content": "你是高级分析师,整合多份子报告生成综合评估。"},
            {"role": "user", "content": f"整合以下分析报告:\n{combined}"}
        ]
    )
    return final.choices[0].message.content

最佳场景

  • 多维度分析(市场 + 技术 + 财务同时跑)
  • 多源数据采集(同时爬取不同平台)
  • 投票/共识机制(多个 Agent 独立判断,取多数)

优点

  • 总延迟 = 最慢单个 Agent 的延迟(而非求和)
  • 天然容错——一个 Agent 失败不阻塞其他
  • 可以轻松水平扩展

缺点

  • 需要 Aggregator 逻辑,合并结果本身有复杂性
  • 子任务的输出格式必须统一,否则合并困难
  • 总 token 消耗高于 Sequential(因为每个 Agent 都要完整理解上下文)

生产数据:我给 JewelFlow 做的产品分析系统,3 个并行 Agent + 1 个 Aggregator。延迟从串行的 15 秒降到 6 秒,token 消耗增加了约 20%(因为 Aggregator 要处理三份完整报告),但用户体验提升明显。用 GPT-4.1-mini 做子分析,单次分析成本约 $0.008。

架构三:Hierarchical Manager + Workers(层级管理)

一个 Manager Agent 负责拆解任务和分配,多个 Worker Agent 执行具体工作,Manager 汇总并决策。

                    ┌→ Worker A ──┐
Input → Manager ────┼→ Worker B ──┼→ Manager → Output
                    └→ Worker C ──┘
                    (可动态分配)

设计原则:Manager 做规划和决策,Worker 做执行。Manager 可以根据中间结果动态调整策略。

import json
from openai import OpenAI

client = OpenAI()

# Worker 注册表
WORKERS = {
    "code_writer": "你是 Python 开发者,编写高质量代码。",
    "code_reviewer": "你是代码审查员,找出 bug 和优化点。",
    "test_writer": "你是测试工程师,编写全面的单元测试。",
    "doc_writer": "你是技术文档作者,编写清晰的 API 文档。",
}

def hierarchical_system(task: str) -> str:
    """层级架构:Manager 分配任务,Worker 执行"""

    # Manager 分析任务,决定需要哪些 Worker
    plan = client.chat.completions.create(
        model="claude-sonnet-4-5",  # Manager 用强模型
        messages=[
            {"role": "system", "content": f"""你是项目经理。分析任务并制定执行计划。
可用的 Worker: {list(WORKERS.keys())}
输出 JSON 格式:{{"steps": [{{"worker": "worker_name", "instruction": "具体指令"}}]}}"""},
            {"role": "user", "content": task}
        ],
        response_format={"type": "json_object"}
    )
    steps = json.loads(plan.choices[0].message.content)["steps"]

    # 按计划调度 Worker
    results = []
    for step in steps:
        worker_name = step["worker"]
        worker_prompt = WORKERS.get(worker_name, "通用助手")
        # 把之前的结果作为上下文传给当前 Worker
        context = "\n".join([f"[{r['worker']}]: {r['output']}" for r in results])

        response = client.chat.completions.create(
            model="gpt-4.1",  # Worker 用性价比模型
            messages=[
                {"role": "system", "content": worker_prompt},
                {"role": "user", "content": f"任务:{step['instruction']}\n\n已有成果:\n{context}"}
            ]
        )
        results.append({
            "worker": worker_name,
            "output": response.choices[0].message.content
        })

    # Manager 汇总最终结果
    summary = client.chat.completions.create(
        model="claude-sonnet-4-5",
        messages=[
            {"role": "system", "content": "整合所有 Worker 的输出,生成最终交付物。"},
            {"role": "user", "content": json.dumps(results, ensure_ascii=False)}
        ]
    )
    return summary.choices[0].message.content

最佳场景

  • 复杂项目管理(需要动态决策的多步任务)
  • 客服系统(Router Agent 分流到不同专业 Agent)
  • 需要中间评估和策略调整的场景

优点

  • 最灵活——Manager 可以根据中间结果动态调整
  • Worker 可以复用,加新 Worker 不影响已有逻辑
  • 支持复杂的条件分支和循环

缺点

  • Manager 是单点瓶颈,它判断错了整个系统跟着错
  • 调试复杂度最高——问题可能出在 Manager 的规划逻辑
  • token 消耗最高(Manager 需要完整上下文来做决策)

生产数据:我为一人独角兽俱乐部搭的 8-Agent 系统就是这种架构。Manager Agent 负责理解用户意图并分流到不同的 Worker(内容策划、问答回复、活动调度等)。日均处理约 200 条消息,Manager 的判断准确率在 94% 左右,每条消息的平均成本 $0.012。

实战经验

选型决策框架

在动手之前,问自己三个问题:

问题 Sequential Parallel Hierarchical
子任务之间有依赖吗? 有,强依赖 无依赖 部分依赖
延迟敏感吗? 不敏感 敏感 适中
任务在运行时可预测吗? 完全可预测 可预测 不可预测,需动态决策
token 预算紧吗? 最省 适中 最贵

踩过的坑

坑 1:过早用 Hierarchical。我的第一个 Agent 项目就直接上了 Manager-Worker 架构,结果 Manager 的 prompt 调了两周都不稳定。后来拆成 Sequential Pipeline,三天上线。简单问题不要用复杂架构。

坑 2:Parallel 的结果合并。三个 Agent 并行分析同一个问题,输出格式完全不统一,Aggregator 经常合错。解决方案:给每个 Worker 加 JSON schema 约束输出格式。

坑 3:忽视错误传播。Sequential 架构里第一个 Agent 出了幻觉,后面的 Agent 都在错误的基础上继续生成。解决方案:在关键节点加 validation Agent 做事实核查。

混合架构

实际生产中,纯用一种架构的情况很少。更常见的是混合:

Input → Research Agent (Sequential)
      → [3 个并行分析 Agent] (Parallel)
      → Manager 汇总 + 决策 (Hierarchical)
      → 输出

我现在的默认做法是:先用 Sequential 跑通核心流程,然后把可并行的步骤拆出来做 Parallel,最后在需要动态决策的地方加 Manager。

总结

三条 takeaway:

  1. 先问"子任务之间有没有依赖"——有依赖用 Sequential,无依赖用 Parallel,需要动态决策用 Hierarchical
  2. 从最简单的架构开始——Sequential Pipeline 够用就别上 Hierarchical,过度设计是 Agent 系统的头号杀手
  3. 混合架构才是常态——不要迷信单一模式,根据实际流程灵活组合

如果你正在搭 Agent 系统,先画一张数据流图,标清楚哪些步骤有依赖、哪些可以并行。架构选对了,后面的优化都是锦上添花;选错了,就是在填坑。

你现在在用哪种架构?遇到过什么坑?欢迎来一人独角兽俱乐部交流。