陌上花开HIMMR
102.29M · 2026-04-08
上一篇我们分析了 5 年前端的经验在 AI 时代的价值。结论是:你的架构能力和工程化思维比以前更值钱了。
但有一个前提——你需要完成一次认知升级。
大部分前端接触 AI 后,做的第一件事是:调一下 API、做个聊天界面、用 Cursor 写代码提效。这没什么问题,但这只是"用 AI"的层面。
高级前端需要到达另一个层面——"架构 AI":AI 功能在我的系统里应该处于什么位置?怎么设计才能稳定、可控、可演进?
这两个层面的差距,不在技术细节上,而在思维模型上。
今天这篇就来聊:从前端架构师的视角看 AI 系统,需要建立哪些新的认知。
很多团队第一次做 AI 功能时,会把它当成一个普通功能模块来处理:
产品页面 → 调一个 AI 接口 → 把结果展示出来
就像调一个翻译 API、一个地图 API 一样。写个 service 函数、做个错误处理、加个 loading 状态——前端的标准流程。
但真正做下去你会发现,AI 和传统 API 有根本性的不同:
| 传统后端 API | AI API |
|---|---|
| 确定性输出——相同输入 = 相同输出 | 概率性输出——相同输入可能得到不同结果 |
| 响应快——通常 < 200ms | 响应慢——通常 2-15 秒 |
| 成本可忽略——服务器资源 | 按 token 计费——每次调用都有真实成本 |
| 失败即失败——报错 or 成功 | 部分正确——可能回答了但答非所问 |
| 固定格式——JSON Schema 约束 | 格式不稳定——AI 可能输出意料之外的格式 |
| 无状态——每次请求独立 | 上下文依赖——对话历史影响输出质量 |
这些差异不是小细节——它们改变了你设计系统时的基本假设。
假设你在做一个"AI 自动生成商品描述"的功能。
如果按传统思路:前端发商品信息 → 后端调 AI → 返回描述 → 前端展示。
上线后你会遇到这些问题:
你看,一个"调 API 展示结果"的功能,在生产环境中展开后,变成了一个需要缓存、审核、限流、降级、坚控的完整系统。
这就是 AI 和传统功能模块的根本区别——它引入了太多不确定性,需要从系统层面去应对。
从前端架构师转向 AI 架构,有四个概念需要你重新建立认知。
前端和后端的系统都是确定性的:点击按钮 → 发请求 → 得到固定结果。你的整个架构思维都建立在这个基础上——组件是确定性的(给定 props 渲染确定 UI)、状态管理是确定性的(dispatch action → 确定的新 state)。
AI 打破了这个基础。同一个输入,每次输出可能不同。
这意味着什么?
前端开发者对延迟是有感知的——你知道 API 响应超过 300ms 用户就开始不耐烦。但 AI API 的延迟不是 300ms,是 3-15 秒。
这不是"优化一下就能解决"的问题,而是一个架构级的约束。你需要从一开始就围绕"高延迟"来设计:
这些策略你在做前端性能优化时都用过(骨架屏、SSR、预加载),只是要用在新场景里。
前端以前不太需要关心"调一次接口多少钱"。但 AI 时代,每一次 API 调用都在花真金白银。
GPT-4o 一次复杂对话的成本约 1,000-5,000/天,一年百万美金级别的 AI API 费用。
这意味着架构设计时必须考虑:
前端要做的事也不少:显示用量统计、实现付费引导、做功能门控(免费用户限制 AI 次数)。
调传统 API,你可以信任后端返回的数据是对的(如果不对,那是 Bug)。但 AI 的输出,你不能完全信任。
AI 可能:
这要求你在架构中加入一个**"AI 输出不一定对"的假设**,并设计相应的防护层:
既然你是前端架构师,我们用你熟悉的概念来类比,看看 AI 架构和你以前做的事有什么相似和不同。
组件化的核心是封装和抽象:给定 props → 确定的 UI。你把复杂度封装在组件内部,外部通过接互。
AI 模块的封装思路类似:把 AI 调用封装成内部的黑盒,对外暴露确定的接口。但区别在于——盒子里面是不确定的。
传统组件: Input(props) → 确定的 Output
AI 模块: Input(prompt + context) → 不确定的 Output → 后处理 → 相对确定的 Output
你需要在 AI 模块外面包一层"稳定层"——格式校验、重试、降级、默认值——让外部调用者感知到的是一个相对稳定的接口。
微前端的核心问题是隔离和集成——多个子应用如何独立开发、统一部署。
AI 架构面临类似的问题:一个产品里可能有 5 个不同的 AI 功能(聊天、搜索、推荐、内容生成、代码辅助),它们:
这很像微前端里"共享基础设施 + 独立业务域"的架构模式。
前端的状态管理已经够复杂了——异步请求、乐观更新、缓存失效、跨组件通信。
AI 场景下的状态更复杂:
传统的 Redux/Pinia 方案 handle 不了这些。你需要设计 AI 专用的状态管理方案——这也是后面几篇会详细展开的内容。
高级前端的一个核心能力是"知道什么不做"。在 AI 场景中,这个能力更加重要。
我用一个 2x2 矩阵来帮你判断:
AI 效果好
│
┌───────────────┼───────────────┐
│ │ │
│ ③ 谨慎用 │ ① 优先用 │
│ 效果好但贵 │ 效果好且值 │
成本高 ├───────────────┼───────────────┤ 成本低
│ │ │
│ ④ 不要用 │ ② 可以用 │
│ 又贵效果差 │ 便宜但效果一般│
│ │ │
└───────────────┼───────────────┘
│
AI 效果差
① 优先用 AI(效果好 + 成本可控):
② 可以用 AI(成本低但效果一般,做为辅助):
③ 谨慎用 AI(效果好但成本高,需要 ROI 分析):
④ 不要用 AI(效果差且成本高,用规则更靠谱):
每一个 AI 功能上线前,都应该过一遍这个矩阵。
分享一个我在实际项目中的决策过程,帮你感受一下"架构 AI"和"用 AI"的区别。
需求:在内部管理系统中加入 AI 聊天助手,帮员工查询业务数据和操作流程。
"用 AI"的思路: 接一个 OpenAI API → 做个聊天界面 → 把系统文档丢给 AI 做 RAG → 上线。
"架构 AI"的思路:
两种思路的产出物完全不同。第一种是一个 Demo 级的聊天工具,第二种是一个可以在生产环境长期运行的 AI 系统。
从下一篇开始,我们进入实战——第一个主题是每个 AI 系统都需要的核心基础设施:AI 网关层。
讨论话题:你在项目中做过 AI 功能吗?是"调 API 展示结果"的模式,还是有完整的架构设计?遇到过哪些"用着用着才发现"的坑?评论区分享一下。