每一代平台级产品的竞争,最终都不是功能之争,而是架构之争。Windows赢了OS/2,不是因为功能更多,而是因为它的架构让第三方开发者能更容易地构建应用。iOS赢了Symbian,不是因为初期功能更强,而是因为它的架构从第一天就为触控交互和应用生态设计。Chrome赢了IE,不是因为它一开始更快,而是因为多进程架构让它在页面崩溃时不会拖垮整个浏览器。
现在,AI Agent正在成为从Desktop、Web、Mobile之后的第四代平台级产品。而历史正在重演:决定谁能赢的,不是谁的模型更强、谁的功能更多,而是谁的架构更对。
一、一个被忽视的事实:架构决定了产品的规模天花板和用户体验的交付成本
很多技术讨论把架构当作纯工程问题——选什么语言、用什么框架、数据库怎么分片。但对于平台级产品来说,架构是一个商业问题,因为它直接决定两件事:
第一,产品能做多大。
架构决定了系统的扩展方式。一个monolithic架构的Agent,把模型调用、工具执行、记忆管理、会话状态全部耦合在一个进程里,初期开发确实快。但当你要支持100个工具、10种模型、百万级用户时,你会发现每加一个功能都要改动核心代码,每次部署都是全量发布,每个bug都可能影响所有用户。
这不是"技术债",这是架构的物理极限。就像一栋楼的承重结构决定了它最多能盖多少层——不是你想加就能加的。
第二,用户体验的交付成本。
架构决定了你做一个功能改进需要花多大力气。好的架构下,加一个新工具可能只需要写一个插件,不碰核心代码;坏的架构下,加一个新工具可能要改三层抽象、更新五个接口、重新测试整个系统。
用户不关心你的架构,但用户能感知到架构的后果:为什么这个功能等了三个月还没上?为什么每次更新都会出新bug?为什么竞品已经支持了你们还没有? 这些问题的根源,往往都在架构上。
用一个公式来表达:
用户体验 = f(团队能力, 架构效率)
当团队能力相当时:
好架构 → 快速迭代 → 持续优化体验 → 用户增长
坏架构 → 迭代变慢 → 体验停滞 → 用户流失
# generated by hugo's coding agent
这就是为什么同样融了一亿美金的两家AI公司,一家能每周发新功能,另一家三个月才更新一次。不是人不够多,不是模型不够好,而是架构效率的差距在指数级放大。
二、平台演进简史:从Desktop到AI,每一代平台的胜负都取决于架构
回顾过去40年的平台演进史,有一个清晰的规律:每一代平台的早期竞争靠功能,中期竞争靠生态,而生态的繁荣程度取决于架构。
Desktop时代:架构决定了谁能建立软件生态
1980-90年代,PC操作系统混战。IBM的OS/2技术上比Windows更先进——支持真正的多任务、更好的内存管理、更稳定。但Windows赢了。为什么?
因为Windows的架构做了一个关键决策:向后兼容 + 开放的API + 低门槛的开发工具。任何一个小开发者都能用Visual Basic写一个Windows应用,而OS/2的开发门槛高得多。结果就是Windows上的应用数量爆发式增长,应用多→用户多→开发者更多,飞轮转起来了。
OS/2的架构更"正确",但Windows的架构更"开放"。在平台竞争中,开放性比正确性更重要。
Web时代:架构决定了谁能处理规模
2000年代,互联网平台崛起。Google能处理全球的搜索请求,不是因为它的算法一开始就比Yahoo强多少,而是因为它从第一天就设计了分布式架构——MapReduce、GFS、Bigtable。这套架构让Google能在廉价硬件上水平扩展,而当时的竞争对手还在用昂贵的大型服务器垂直扩展。
Facebook打败MySpace,一个关键因素是Facebook从早期就建立了数据中心级的架构能力,能够在不崩溃的前提下支撑指数级的用户增长。MySpace在技术栈上的选择(ASP.NET+SQL Server的单体架构)让它在用户暴增时不断宕机,用户体验急剧恶化。
Web时代的教训:你的架构决定了你能服务多少用户,而用户数量决定了你在网络效应驱动的市场里能走多远。
Mobile时代:架构决定了谁能拥有开发者
2007年iPhone发布时,它甚至不支持第三方应用。但苹果做了一个关键的架构决策:设计一套完整的应用沙箱架构和API体系(Cocoa Touch + App Store + 严格的审核机制)。这套架构让开发者能够在安全的环境里构建高质量应用,同时让用户能够信任和方便地安装这些应用。
Android选择了另一条路:开源的Linux内核 + 开放的SDK + 宽松的应用分发。这让Android快速覆盖了中低端市场,建立了更大的设备安装量。
两种架构,两条路径,但共同点是:架构的核心设计决策都围绕"如何让开发者更容易在这个平台上构建应用"。Symbian、BlackBerry、Windows Phone的失败,根本原因都是架构不能有效地支撑第三方生态。
AI Agent时代:架构的赌注更大了
现在轮到Agent了。但Agent时代的架构挑战比前三代平台都大,因为:
不确定性是内生的。Desktop/Web/Mobile的底层是确定性的计算——给定输入,输出可预测。Agent的底层是大模型——给定输入,输出是概率性的。你的架构必须处理这种根本性的不确定性。
交互模式是开放的。前三代平台的交互模式相对固定:Desktop是WIMP(窗口、图标、菜单、指针),Web是页面+链接,Mobile是触控+手势。Agent的交互是自然语言——用户可以说任何话,Agent需要理解并执行。
能力边界是动态的。一个Mobile应用的功能在发布时就确定了。但一个Agent的能力取决于它能调用哪些工具、连接哪些服务、使用哪些模型——这些都可以动态变化。
这意味着Agent的架构不能简单地借鉴前三代平台的经验。它需要原生地解决三个前所未有的问题:概率性输出的可靠化、开放式交互的结构化、动态能力的可管理化。
三、Agent架构的五个关键决策
如果你在今天设计一个Agent产品的架构,有五个决策会决定你的产品能走多远。
决策一:编排方式——硬编码 vs. 动态规划
最基础的架构决策:Agent收到一个任务后,怎么决定"先做什么、再做什么"?
硬编码流程(Workflow):把任务分解成固定的步骤,用代码写死执行顺序。比如"用户问天气→调天气API→格式化输出→返回"。这种方式可控、可预测、容易调试,但灵活性差——每加一个新场景就要写新的流程代码。
动态规划(Autonomous Agent):让模型自己决定执行步骤。ReAct、Plan-and-Execute、Tree of Thoughts等框架都属于这一类。灵活性极高,但可控性差——你不知道模型会做出什么决策,成本不可预测,还可能陷入死循环。
正确答案是混合架构:关键路径用编排保证可靠性,长尾场景用动态规划保证灵活性。
┌────────────────────────────────────────┐
│ 用户请求 │
├────────────────────────────────────────┤
│ 意图识别与路由(确定性) │
├──────────────┬─────────────────────────┤
│ 高频已知场景 │ 低频/复杂场景 │
│ (编排流程) │ (动态规划) │
│ │ │
│ 步骤1→2→3 │ 模型自主分解任务 │
│ 确定性执行 │ 动态选择工具 │
│ 可预测成本 │ 自我纠错 │
│ 快速响应 │ 成本上限控制 │
└──────────────┴─────────────────────────┘
这个决策为什么关键?因为它直接影响了用户体验的一致性。全部用动态规划,用户会发现"同样的问题,有时回答得很好,有时答非所问"——这种不确定性在消费级产品中是致命的。全部用硬编码,用户会发现"这个Agent只能做几件固定的事"——那它和一个普通App有什么区别?
决策二:状态管理——无状态 vs. 有记忆
人类助理之所以好用,一个关键原因是他记得之前发生的事。你不需要每次开会都重新介绍自己的项目背景。
Agent的记忆架构决定了它能不能提供这种持续改进的体验:
- 会话记忆:当前对话的上下文。最基础的能力,但受限于context window大小。
- 短期记忆:跨会话但有时效的信息。比如"用户今天早上提到下午要开会"。
- 长期记忆:用户的偏好、习惯、历史行为。比如"这个用户喜欢简洁的回答"“这个用户是Python开发者”。
- 工作记忆:当前任务的中间状态。比如Agent正在执行一个多步骤任务,中间步骤的结果需要暂存。
大部分Agent产品只做了会话记忆,少数做了长期记忆,几乎没有人把工作记忆做好。但工作记忆恰恰是Agent从"聊天机器人"进化为"真正的助手"的关键——它让Agent能处理跨越时间的复杂任务,而不是只能回答即时的问题。
状态管理的架构选择还直接影响了成本结构。把所有历史对话都塞进context window是最简单的实现,但也是最昂贵的——每次请求都带上完整历史,token成本线性增长。好的记忆架构需要做到选择性召回:只把与当前任务相关的记忆注入上下文,而不是全量加载。
决策三:工具体系——封闭 vs. 开放
Agent的价值取决于它能做什么,而它能做什么取决于它能调用哪些工具。
封闭工具体系:所有工具由Agent平台官方提供和维护。质量可控,但覆盖面有限——你永远不可能预见所有用户的需求。
开放工具体系:提供标准化的工具接口(类似MCP这样的协议),允许第三方开发者构建和发布工具。覆盖面广,但质量参差不齐,安全风险增大。
这个决策本质上是在重演Mobile时代的App Store之争:iOS的封闭审核 vs. Android的开放市场。历史告诉我们,纯封闭和纯开放都不是最优解——你需要开放的接口 + 标准化的协议 + 分层的信任机制。
# 一个好的工具架构需要分层
class ToolRegistry:
"""
三层信任模型:
- 内置工具(builtin): 平台提供,完全信任,无需用户确认
- 认证工具(verified): 第三方开发,平台审核,首次使用需用户授权
- 社区工具(community): 社区贡献,未审核,每次使用需用户确认
"""
def execute(self, tool_call, trust_level):
if trust_level == "builtin":
return self._execute_directly(tool_call)
elif trust_level == "verified":
if self._user_has_authorized(tool_call):
return self._execute_in_sandbox(tool_call)
else:
return self._request_authorization(tool_call)
elif trust_level == "community":
return self._execute_with_confirmation(tool_call)
# generated by hugo's coding agent
为什么这个决策是关键的架构选择而不只是产品决策?因为工具的接入方式、调用方式、权限模型、沙箱机制——这些都需要在架构层面设计好。事后改造的成本极高,而且很容易留下安全漏洞。
决策四:多模型协作——单脑 vs. 多脑
当前大多数Agent产品的架构是"单脑"——一个模型负责所有事情:理解用户意图、规划任务、调用工具、生成回答。这就像让一个人同时当CEO、工程师、客服和会计。
更高效的架构是多模型协作:
- 路由模型(小而快):快速判断用户意图,决定分发到哪个专项模型
- 规划模型(强推理):分解复杂任务,制定执行计划
- 执行模型(专项能力):代码生成用代码模型,图像理解用视觉模型
- 验证模型(质量把关):检查输出质量,发现错误,决定是否需要重做
- 摘要模型(低成本):压缩历史上下文,管理记忆
┌──────────┐
│ 路由模型 │ (Haiku级, <100ms)
│ 意图分类 │
└────┬─────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 简单问答 │ │ 复杂任务 │ │ 代码任务 │
│ (Haiku) │ │ (Opus) │ │ (Sonnet) │
└──────────┘ └────┬─────┘ └──────────┘
│
┌────┴─────┐
│ 规划模型 │ (Opus级)
│ 任务分解 │
└────┬─────┘
│
┌────┴─────┐
│ 验证模型 │ (Sonnet级)
│ 质量检查 │
└──────────┘
多模型架构的核心价值不只是省钱(虽然确实能省很多),更重要的是每个环节都用最合适的模型,整体效果好于用一个通用模型做所有事。这和人类组织的分工原理一样——专业化带来效率。
但多模型架构的实现难度远高于单模型。模型之间的信息传递、上下文共享、错误传播、延迟叠加——每一个都是工程挑战。这就是为什么它是一个架构决策而不是一个简单的优化:你必须从一开始就把多模型协作设计进架构里,否则后期改造的代价是推倒重来。
决策五:部署架构——云端 vs. 端侧 vs. 混合
Agent在哪里运行?这个看似基础设施的问题,实际上深刻影响着用户体验和商业模式。
纯云端:所有计算在服务器上完成。优点是模型能力不受设备限制,缺点是延迟高、隐私性差、离线不可用。
纯端侧:Agent运行在用户设备上。优点是低延迟、强隐私、离线可用,缺点是受限于设备算力,只能用小模型。
混合架构:端侧处理高频低复杂度请求(意图识别、简单回答),云端处理低频高复杂度请求(深度推理、多步任务)。这是用户体验和能力上限的最佳平衡点。
端侧 (手机/PC) 云端
┌─────────────────┐ ┌─────────────────┐
│ 小模型 (3B) │ │ 大模型 (Opus) │
│ - 意图识别 │ ── 复杂请求 ──▶ │ - 深度推理 │
│ - 简单回答 │ │ - 多步任务 │
│ - 上下文缓存 │ ◀── 结果回传 ── │ - 工具调用 │
│ - 隐私数据处理 │ │ - 模型协作 │
└─────────────────┘ └─────────────────┘
延迟: <100ms 延迟: 1-10s
成本: 0 成本: 按token
隐私: 数据不出设备 隐私: 需传输数据
苹果的Apple Intelligence选择了混合架构,端侧用3B模型处理简单请求,云端用更大的模型处理复杂请求。这个架构决策很可能为整个行业定下了基调——未来的Agent产品大概率都会走向端云混合架构,区别只在于端侧和云端的能力分界线画在哪里。
四、架构是市场竞争的乘数效应
前面讨论了架构的五个关键决策,但还没有回答一个根本问题:为什么说架构是竞争的关键因素,而不仅仅是工程效率的问题?
因为架构产生乘数效应。
迭代速度的乘数
好架构让团队的迭代速度更快。在Agent领域,迭代速度是生死线——模型在进化、用户需求在变化、竞争对手在追赶。一个月发布一个新能力的团队和一周发布一个新能力的团队,一年后的差距不是4倍,而是可能是几十倍——因为快速迭代带来的用户反馈又会加速下一轮迭代。
成本结构的乘数
Agent产品的边际成本不是零——每次调用都消耗模型token。架构决定了你的成本结构:单模型架构下,成本随用户数线性增长(甚至超线性,因为上下文越来越长);多模型+缓存+路由架构下,成本增长曲线可以被压平。
当你的竞争对手每个用户每月花$5的模型成本,而你只需要$1,你就有4倍的空间来做免费增长或者提供更好的体验。这不是一个小优势——在烧钱换增长的阶段,成本效率决定了谁能活到盈利。
能力扩展的乘数
开放的工具架构让你的Agent能力呈指数增长——不是你自己的团队在增加能力,而是整个开发者社区在为你增加能力。就像App Store让iPhone从"一部手机"变成了"一个无限可能的平台",开放的Agent工具生态可以让一个Agent从"一个聊天机器人"变成"一个能做任何事的数字助手"。
但这种生态效应只有在架构支持的前提下才能发生。如果你的工具接入方式是硬编码的、非标准化的,每接入一个新工具都需要改核心代码——那你永远建不起生态。
五、当前Agent市场的架构分野
看看今天的Agent市场,可以清晰地看到不同玩家的架构选择正在塑造竞争格局:
ChatGPT/Claude:从对话界面起步,逐步增加工具调用能力。架构的核心优势是强大的基座模型,挑战是如何从"对话产品"演进为"平台产品"——这需要根本性的架构重构,而不只是加功能。
Cursor/Claude Code/Windsurf:以代码为核心场景的Agent。架构的核心创新是把IDE作为Agent的执行环境,让Agent能直接读写文件、运行命令、操作开发工具。这个架构选择极大地降低了Agent在编程场景下的"最后一公里"成本。
Manus/Devin:定位为通用/专项自主Agent。架构赌注是高度自主的任务执行——用户给一个目标,Agent自主完成。这个架构的挑战在于可靠性——自主度越高,失败的爆炸半径越大。
Apple Intelligence:端云混合架构的先行者。架构赌注是隐私为先的本地化处理。这个选择牺牲了一部分能力上限,但赢得了用户信任——在隐私敏感的市场里,这可能是决定性的优势。
每一种架构选择都在押注不同的未来:对话范式 vs. 工具范式,云端 vs. 端侧,封闭 vs. 开放,通用 vs. 垂直。这些赌注不能在产品上线后轻易改变——因为它们是架构级的决策。
六、结语:架构是写给未来的承诺
总结这篇文章的三个核心观点:
1. 架构决定了产品的规模和用户体验的交付成本。 好架构不是让你现在更强,而是让你未来能更快地变强。坏架构不是让你现在更弱,而是让你未来越来越慢、越来越脆弱。
2. Agent是继Desktop、Web、Mobile之后发展最快的平台级产品。 但它面临的架构挑战比前三代都大——因为它必须在概率性的模型之上构建确定性的用户体验,在开放式的交互中提供结构化的价值。
3. Agent的架构是市场竞争的关键乘数。 它放大(或缩小)团队的迭代速度、成本效率、生态扩展能力。在一个技术快速变化的市场里,这种乘数效应会随时间累积,最终决定谁能胜出。
对于正在构建Agent产品的团队,我的建议是:在前三个月,花至少一个月的时间在架构上。 不是画漂亮的架构图,而是认真回答那五个关键决策,并且在每个决策上做出有意识的选择——而不是无意识地滑入最容易的实现方式。
因为架构是你写给未来的承诺。它决定了当市场机会来临时,你能不能接得住。