探讨企业不应绑定单一Agent框架,需构建与框架解耦的动态路由架构,实现AutoGen、LangGraph等多种框架共存下的Agent互操作。
为什么还在争论 LangChain、AutoGen 还是 CrewAI 才是组织的正确框架?这是一个错误的问题。企业现实是,你永远不会拥有单一的、统一的技术栈。不同业务单元有不同的需求、技能组合和遗留约束。强制使用单一框架只是用"框架锁定"换了一种"供应商锁定"。
正确的目标是构建一种与框架无关的架构——Agent Mesh。它将服务网格的成熟模式应用到 LLM Agent 领域,通过 Sidecar 代理、Agent 合约、注册中心和网关,实现跨框架的互操作性。
评估从框架锁定的 Agent 链到解耦互操作层的转变,以支撑企业级扩展。
你可能已经读过关于从实验性到系统性 Agent 工作流的演进文章。这一演进的下一步是解决互操作性缺口。
能否将微服务的经验教训应用到 LLM Agent 世界?可以,而且应该。"Agent Mesh"是一种架构模式,将 Agent 互操作性视为基础设施问题,而非应用问题。
在传统设置中,Agent A 通过硬编码的 API 调用或特定框架的连接器来调用 Agent B。这会产生紧耦合。如果 Agent B 更改了输入模式或迁移到不同框架,Agent A 就会崩溃。
Agent Mesh 引入了一个解耦的互操作层。这里我们应用 Sidecar 模式。每个 Agent,无论其内部使用何种框架,都配有一个 mesh proxy。这个代理负责"管道"工作:通信、发现、认证和可观测性。Agent 本身只关心任务本身;sidecar 关心的是如何将任务传递给下一个 Agent。
通过解耦通信层,你有效地中和了框架碎片化的问题。你的 LangGraph Agent 不需要知道自己在和一个 AutoGen Agent 通信。它只需要知道如何与 mesh 通信。这与云原生环境中服务网格的演进如出一辙——网络逻辑从应用代码中剥离,移入基础设施层 [ThoughtWorks Radar]。

这种方法允许你将 Agent 视为可互换的组件。你可以将一个由 GPT-4o 驱动的 Agent 替换为一个专门的 Llama-3 微调版本,而无需更新依赖它的上游 Agent。这是管理当前企业 AI 生态系统状态的唯一方式,而不会创建一张无法管理的依赖网。
如何在不造成大规模瓶颈的情况下构建这个系统?你需要三个核心组件:Agent 合约(Agent Contract)、注册中心(Registry)和网关(Gateway)。
当 Agent 无法就"请求"的格式达成一致时,互操作性就会失败。你不能依赖原始 JSON 提示词,因为它们太容易变化。你需要一个严格的 Agent 合约。
这个合约定义了任务交接和状态传输的通用模式。一个典型的合约应包括:
compliance.audit.verify){
"header": {
"transaction_id": "tx-99821",
"source_agent": "customer-front-end",
"target_capability": "compliance.verify",
"priority": "high"
},
"payload": {
"customer_id": "cust_4412",
"document_hash": "sha256:e3b0c442...",
"jurisdiction": "EU-GDPR"
},
"state_ref": "redis://state-store/session-882"
}
如果你有 50 个 Agent,就不能硬编码它们的端点。你需要一个充当 Agent 能力"黄页"的注册中心。
注册中心不仅存储 URL,还存储能力映射。当路由 Agent 需要"合规检查"时,它查询注册中心,找到当前持有 compliance.verify 能力且延迟最低或成功率最高的 Agent。这实现了动态路由。你可以部署新版本的合规 Agent,在 mesh 中注册它,流量会自动转移,而调用方 Agent 无需修改一行代码。
网关是执行规则的地方。它是外部请求的单一入口点,也是内部 Agent 间通信的交通警察。
网关的关键职责包括:

当请求经过三个不同框架的四个 Agent 时,你能否准确知道它在哪里失败了?在单体设置中,你有栈追踪。在分布式 Agent 系统中,这是一场噩梦。
你必须从第一天就实现分布式追踪。每个进入 mesh 的请求都会获得一个唯一的 trace_id。这个 ID 会通过每个 sidecar 代理传播。
当你在监控 50+ Agent 的 token 消耗和延迟时,你不可能去查看单个日志。你需要一个统一的视图来可视化请求流。如果"客户 Agent"(LangGraph)调用"合规 Agent"(AutoGen),后者再调用"数据库 Agent"(Python 脚本),追踪应该显示每一跳的精确延迟和 token 成本。这对于识别链中哪个 Agent 是性能瓶颈至关重要。
治理不能是事后补救。如果你正在处理欧盟 AI 法案合规,就不能信任每个 Agent 实现自己的护栏。
Agent Mesh 允许"护栏传播"。你在 Mesh 级别定义策略(例如"禁止 PII 离开合规区域")。sidecar 代理在负载离开 Agent 边界之前检查负载来强制执行该策略。如果负载包含信用卡号且目标是低信任度 Agent,代理会阻止请求。Agent 甚至不知道请求被阻止了;mesh 处理了失败。
这正是确保策略一致执行的方式。你正在将"安全"逻辑从提示词中移出,放入基础设施中。
分布式系统容易发生故障。分布式 Agent 系统容易发生奇怪的故障。
这是多 Agent 系统中,最常见的故障模式。Agent A 发送任务给 Agent B,后者决定需要更多信息,再发回给 Agent A。它们会一直这样做,直到你的 API 预算耗尽或系统崩溃。
缓解措施:在 mesh 头部实现"跳数限制"。每次请求通过代理时,跳数递增。如果计数超过阈值(例如 10 跳),mesh 会终止请求并触发警报。
Agent A 可能拥有 128k 的上下文窗口,但 Agent B 只有 8k。如果 Agent A 在负载中传递整个对话历史,Agent B 会截断最重要的信息或完全失败。
缓解措施:使用"状态存储"模式。不要在消息中传递完整状态,而是传递共享缓存(如 Redis)中状态对象的引用。接收方 Agent 根据自身的窗口限制,只获取所需的特定上下文片段。
一个慢速 LLM 提供商的延迟峰值可能导致调用方 Agent 超时,后者再重试,给已经不堪重负的提供商增加更多负载。这是一个经典的重试风暴。
缓解措施:在 sidecar 代理中实现断路器。如果合规 Agent 连续失败三次,mesh 会"打开"断路器,在接下来的 30 秒内立即向调用方返回失败,让下游 Agent 有机会恢复。
一个低信任度的 Agent(如面向公众的聊天机器人)可能通过提示词注入被攻陷。如果该 Agent 可以通过 mesh 调用高信任度 Agent(如支付处理器),注入就会传播。
缓解措施:实现"信任区域"。Agent 被分配信任级别。mesh 网关阻止来自 Trust-Level: 1 Agent 到 Trust-Level: 3 Agent 的任何请求,除非请求经过"清理 Agent"——该 Agent 会剥离潜在的注入模式。
许多团队构建了一个处理所有路由的单一"主编排器"。这个 Agent 成为了单点故障和巨大的性能瓶颈。
缓解措施:转向去中心化发现。让 Agent 查询注册中心,根据 Agent 合约做出本地路由决策。
为了让这更具体,让我们看看在高风险环境中这是如何工作的。
一家金融服务公司的客户面向 Agent 是用 LangGraph 构建的,因为它在处理对话方面很灵活。然而,公司的合规逻辑是一组用 AutoGen 构建的复杂确定性规则。
没有 mesh 的情况下,LangGraph 团队需要编写一个自定义包装器来调用 AutoGen API,将 LangGraph 的状态映射到 AutoGen 期望的输入。如果合规团队更新了他们的 Agent,客户面向团队必须更新代码。
有了 Agent Mesh,LangGraph Agent 只需向 mesh 发送一个对 compliance.verify 能力的请求。sidecar 处理翻译。客户 Agent 不知道 AutoGen 的存在;它只知道合约。
一个平台团队正在将遗留的单体 Agent 迁移到分布式系统。他们不能让系统下线。
他们实现了一个代理层。最初,代理将所有请求路由到遗留单体。随着他们剥离出新的专门 Agent,他们会更新注册中心。代理开始将特定能力(例如 report.generate)路由到新的分布式 Agent,同时将其他所有内容继续路由到单体。这允许对 Agent 架构进行金丝雀部署。
一家企业在 HR、财务和法律部门有 60 个 Agent。每个团队使用不同的模型和框架。CTO 需要一个统一的视图来了解总 token 消耗和延迟。
因为每个 Agent 都包裹在 mesh sidecar 中,平台团队可以从代理收集遥测数据。他们不需要对 Agent 本身进行插桩。他们获得一个实时仪表板,显示法律 Agent 由于一个低效循环消耗了 40% 的预算,而 HR Agent 正在经历 5 秒的延迟。这使得基于数据、而非猜测进行高风险故障恢复成为可能。
但请记住,Agent Mesh 不是你购买的即插即用产品。它是一种架构承诺。它要求你将合约置于框架之上。它意味着在投入提示词之前,先在注册中心和 Sidecar 上花费时间。
这是构建系统的唯一方式——不会在新的框架成为行业宠儿的那一刻崩溃。
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e1f5fe', 'primaryTextColor': '#1a1a1a', 'primaryBorderColor': '#0277bd', 'lineColor': '#546e7a', 'secondaryColor': '#f3e5f5', 'tertiaryColor': '#fff8e1'}}}%%
graph TB
subgraph "External Systems"
REST_API[REST API Gateway]
Legacy_System[Legacy System]
end
subgraph "Agent Mesh Infrastructure"
Gateway[Mesh Gateway]
Registry[Agent Registry]
subgraph Sidecars
SC1[Sidecar Proxy A]
SC2[Sidecar Proxy B]
SC3[Sidecar Proxy C]
end
end
subgraph "Agent Frameworks"
subgraph LangGraph
AgentA[LangGraph Agent]
end
subgraph AutoGen
AgentB[AutoGen Agent]
end
subgraph Custom
AgentC[Custom Agent]
end
end
REST_API --> Gateway
Legacy_System --> Gateway
Gateway --> Registry
Registry --> SC1
Registry --> SC2
Registry --> SC3
SC1 --> AgentA
SC2 --> AgentB
SC3 --> AgentC
AgentA <--> SC1
AgentB <--> SC2
AgentC <--> SC3
style Gateway fill:#1565c0,color:#fff
style Registry fill:#1565c0,color:#fff
style Sidecars fill:#b3e5fc