← 返回专栏

Agent 系统协作架构:从单体到生态

真正让 Agent 产生商业价值的,不是模型本身有多聪明,而是它如何与外部世界连接。

Agent系统架构协作模式

系统全景:四个方向的协作网络

把 Agent 置于中心,从东南西北四个方向看它的协作接口:

                    北向:交互层(前端/用户)
                          ↕
西向:事件层 ←→ [ Agent 核心 ] ←→ 东向:知识层(RAG)
                          ↕
                    南向:能力层(工具/API)
  • 北向:Agent 怎么输出给前端
  • 南向:Agent 怎么调用工具
  • 西向:谁来触发 Agent
  • 东向:Agent 怎么获取知识

内部协作:Agent 之间怎么配合

当任务太复杂,单个 Agent 搞不定时:

黑板模式 (Blackboard):所有 Agent 共享一个内存块。A 写下"主题定了",B 看到后去写预算,C 看到后去订场地。技术实现:共享 Context 变量池。

路由分发 (Router):主管 Agent 只负责拆解任务,然后 Call 不同的子 Agent。技术实现:Function Calling,主 Agent 的工具列表包含各子 Agent。

接力模式 (Handoff):搞不定时,把当前对话的所有 Context 完整打包,Transfer 给更高级的 Agent 或人工。

Human-in-the-loop

Agent 执行关键操作前(删除数据、发送邮件),挂起任务,向人类发送审批请求。确认后才继续执行。

南向:怎么调用工具

MCP(Model Context Protocol)

以前 Agent 连 GitHub 得写专门的 Tool 代码,连 Notion 得写 Notion 代码。MCP 制定了统一标准:所有数据源吐出统一格式。

Agent 通过 MCP Client 问 Server:"你有什么能力?" Server 回答能力列表,Agent 直接调用,无需逐个适配。核心价值:即插即用任意第三方工具

脚本执行 (Code Sandbox)

LLM 数学差、逻辑不严密。让 Agent 在沙箱里写代码并运行,获取精确结果。适合数据清洗、画图表、数学计算。

API 直接调用

最传统的方式。Agent 根据 OpenAPI Spec 构造 HTTP 请求。

北向:怎么输出给前端

仅仅输出 Markdown 已经不够了。

结构化输出:强制 Agent 输出 JSON,前端拿到后渲染成图表、卡片、表单控件。解决"Agent 说了一堆废话,前端没法用"的问题。

生成式 UI:Agent 不仅给数据,连 UI 组件一起给。用户问"现在的股价?",Agent 推回一个 <StockCard /> 组件,前端动态渲染。

流式传输:SSE 推送。前端解析流——tool_call 类型展示"正在搜索…"动画,text 类型展示打字机效果。

西向:谁来触发 Agent

Agent 不一定是"你问它答",它可以主动响应。

定时触发:每天早上 9 点唤醒 Agent,查昨天的数据,写日报发给你。

事件驱动:GitLab Webhook 有人提交代码 → 触发 Code Review Agent 自动审查;收到新邮件 → 触发秘书 Agent 自动归类。

设计视角总结

方向核心问题关键技术
南向(工具)Agent 怎么安全地操作外部系统MCP、Function Calling、沙箱
北向(前端)怎么让输出可被 UI 消费JSON Mode、Generative UI、SSE
内部(协作)多 Agent 怎么分工配合黑板模式、路由分发、Handoff
西向(触发)谁来唤醒 Agent、什么时候唤醒Cron、Webhook、事件总线