- 发布于
现代 AI Agent 应用架构实践:从协议标准到生产级基建
- 作者

- 姓名
- Terry
现代 AI Agent 应用架构指北:从协议标准到生产级基建
在 AI 应用从单纯的 "Chatbot" 向复杂的 "Agentic Workflow"(代理工作流)演进的过程中,开发者面临的最大挑战不再是如何调用 API,而是如何治理复杂性:多模型切换的碎片化、工具调用的异步性、流式渲染的延迟以及生产环境的稳定性。
本文介绍一套目前业界公认的最佳实践架构:以 Vercel AI SDK 为协议核心,解耦前端表现(assistant-ui)与后端逻辑(Mastra/LangGraph),构建可扩展、可观测的生产级 AI 应用。
一、 全局架构概览:沙漏模型
我们可以将现代 AI 应用视为一个“沙漏”结构:中间窄且标准化,两端宽且灵活。
- 上层(UI/交互): 极度灵活,支持 Generative UI、多模态交互。
- 中层(协议/传输): Vercel AI SDK。这是唯一的收束点,标准化的“防腐层”。
- 下层(大脑/编排): 极度多样,支持 Mastra, LangGraph, OpenCode 等多种运行时。
graph TD
subgraph Frontend_Layer ["前端层 (交互与表现)"]
UI[assistant-ui / Custom UI]
GenUI[Generative UI Components]
UI_SDK[ai-sdk/react]
end
Link_Protocol[["协议层: ai-sdk Protocol (Data Stream)"]]:::highlight
subgraph Backend_Layer ["后端运行时 (逻辑与编排)"]
Route[API Route / Edge]
subgraph Brains ["Agent 运行时"]
Mastra[Mastra Agent]
LG[LangGraph / LangChain]
Direct[Direct LLM Call]
end
Tools[Tools / OpenCode]
end
UI <--> UI_SDK
UI_SDK <--> Link_Protocol
Link_Protocol <--> Route
Route --> Brains
Brains <--> Tools
classDef highlight fill:#f96,stroke:#333,stroke-width:2px,color:white;
二、 中枢神经:AI SDK 与 Data Stream Protocol
Vercel AI SDK 在此架构中并非简单的 HTTP 库,它扮演了 “USB Type-C 标准接口” 的角色。
- 防腐层 (Anti-Corruption Layer): 它抹平了 OpenAI, Anthropic, Google 等不同模型提供商的接口差异。你的业务代码只需面向
LanguageModel接口编程。 - Data Stream Protocol (数据流协议): 这是核心资产。它定义了一套能承载文本、工具调用 (Tool Call)、工具回执 (Tool Result) 和中间状态的流式标准。
交互时序图:协议如何驱动工作流
下图展示了从用户提问到 Agent 思考、调用工具、再到前端渲染的完整“往返”过程(Roundtrip):
sequenceDiagram
participant User as User / assistant-ui
participant Protocol as ai-sdk Protocol
participant Agent as Mastra / Backend
participant LLM as LLM Provider
participant Tool as External Tool / API
User->>Protocol: "查询 AAPL 股价" (Input)
Protocol->>Agent: 触发 API Route
rect rgb(240, 248, 255)
Note over Agent: 编排逻辑启动
Agent->>LLM: 发送上下文 + 工具定义
LLM-->>Agent: 意图: Call Tool 'get_stock'
end
Agent-->>Protocol: Stream: 正在调用工具... (Event)
Protocol-->>User: UI: 显示 Loading 状态
Agent->>Tool: 执行 get_stock('AAPL')
Tool-->>Agent: 返回 { price: 150 }
rect rgb(240, 248, 255)
Note over Agent: 拿到结果,再次推理
Agent->>LLM: 发送工具结果
LLM-->>Agent: 生成最终回答
end
Agent-->>Protocol: Stream: 文本 + 组件指令
Protocol-->>User: UI: 渲染文本 + <StockCard />
三、 大脑与手脚:Agent 编排层
在协议层之下,是真正的业务逻辑所在地。根据业务复杂度,我们可以灵活选择后端策略:
Mastra / LangGraph (复杂编排):
处理 HITL (Human-in-the-Loop):例如删除数据前暂停,等待前端确认。
关键适配: 必须将 Agent 框架内部的 Event(如“正在搜索”、“正在阅读”)映射为 AI SDK 的
StreamData,解决“黑盒”等待焦虑。OpenCode (代码解释器):
提供沙箱环境执行 Python/JS 代码,用于数据分析或绘图。
Frontend Direct (端侧直连):
对于简单的文案生成,前端可以直接通过 AI SDK 连接 Provider,降低延迟。
四、 皮肤与面孔:assistant-ui 与 Generative UI
assistant-ui 是专为 AI SDK 协议设计的容器。它不负责逻辑,只负责渲染。
- Generative UI (生成式 UI): 这是体验的分水岭。Agent 不应只返回文本,而应返回界面。
- 机制: 后端下发 Tool Call 前端
assistant-ui拦截 匹配 Registry 渲染 React 组件。
flowchart LR
Stream[后端数据流 Stream] --> Split{类型判断}
Split -- 文本 Delta --> MD[Markdown 渲染器] --> ChatBubble[聊天气泡]
Split -- Tool Call --> Map[组件注册表 Registry]
subgraph Generative_UI ["Generative UI 系统"]
Map -->|match 'stock'| C1[<StockChart />]
Map -->|match 'map'| C2[<MapComponent />]
Map -->|match 'form'| C3[<InputForm />]
end
C1 & C2 & C3 --> ChatBubble
五、 生产级基建:从 Demo 到 Production
跑通代码只是完成了 60%,剩下的 40% 在于基础设施。一个稳健的架构必须包含网关、持久化和可观测性。
完整的生产级拓扑图
graph TB
Client[客户端 App] --> API[API Gateway / Load Balancer]
subgraph "应用层 (App Server)"
API <--> AI_SDK[ai-sdk Core]
AI_SDK <--> Logic[Mastra / LangGraph Logic]
end
subgraph "治理与监控 (Ops Layer)"
Logic --> AIGw["AI Gateway (Helicone/Portkey)"]
Logic -.-> Tracing[可观测性 (LangSmith)]
API -.-> Auth[鉴权 (Clerk/NextAuth)]
end
subgraph "数据层 (Persistence)"
Logic --> VectorDB[(Vector DB / RAG)]
API --> SessionDB[(Postgres - 会话历史)]
end
subgraph "模型层 (Providers)"
AIGw --> OpenAI
AIGw --> Anthropic
AIGw --> LocalLLM[Ollama/vLLM]
end
关键组件说明:
- AI Gateway: 统一管理 API Keys,实现缓存(Caching)和模型自动降级(Fallback)。
- 持久化:
ai-sdk状态是临时的,必须引入数据库存储chat_id和messages以实现历史回溯。 - 可观测性: 集成 LangSmith 或 OpenTelemetry,分析 Agent 在哪一步卡住,不仅看结果,更要看过程。
六、 总结
这套架构的核心哲学是 “标准化协议,模块化实现”:
- 前端 专注交互体验与组件映射 (
assistant-ui+ Generative UI)。 - 传输 严格遵守标准协议 (
ai-sdk)。 - 后端 专注业务编排与智能涌现 (
Mastra/LangGraph)。 - 基建 保障稳定性与可观测性。
通过这种方式,团队可以在保持技术栈先进性的同时,灵活地替换底层的模型或顶层的 UI 库,构建出既聪明又健壮的 AI 应用。