跳转至

Agent 后端架构

Ch04.459 Agent 后端架构

📊 Level ⭐⭐ | 8.0KB | entities/backend-for-agent.md

Agent 后端架构

摘要

Agent 后端架构(Backend for Agent)是面向 AI Agent 而非人类 UI 的后端系统设计范式,涵盖 API 优先的接口契约、结构化输出、状态机化的流程编排与可回放交互。它由传统 BFF(Backend for Frontend)演化而来:消费方从浏览器变为会自主决策、反复试错、非确定性的 Agent,因此自描述 Schema、幂等性、端到端可观测性与成本控制成为一等公民。这一层正与 Harness 融合,并以 MCP 为默认工具协议,逐步形成"Harness 即后端"的新形态。

核心要点

  • BFF → B4A:消费方从人类 UI 变为机器,接口从"给人读的文档"变为"给模型读的可执行契约"——自描述 Schema、语义化命名、渐进式发现。
  • 结构化输出契约:JSON Schema / tool schema 是 Agent 与后端之间的契约层,契约测试取代人肉评审成为变更门禁。
  • 状态机化:Agent 工作流拆分为显式状态与转移,状态可查询、可持久化、可恢复,是长时任务可靠性的前提。
  • 可回放与可复现:完整记录输入、决策与工具调用序列,让非确定性行为可复现、可审计、可评估。
  • 幂等与重试语义:Agent 重试是常态而非异常,后端必须提供幂等键、安全重试与结构化错误码。
  • MCP 成为工具调用事实标准:后端从"给 UI 提供 API"转向"给 Agent 提供工具",工具服务器 + Gateway 治理成为新形态。
  • 可观测性与流量治理:一条 trace 贯通模型调用与工具执行;Agent 流量突发且昂贵,需 rate limiting、预算控制与认证。

深度分析

1. 从 BFF 到 B4A:消费端范式的逆转

传统 BFF 解决的是"多个前端共享一个聚合后端"的问题,其消费方始终是人——人读文档、人处理错误、人理解隐含约定。Agent 后端的出现逆转了这一前提:消费方变成 LLM,它不"看"文档而"读"Schema,不"容忍"模糊而"依赖"显式契约,不"手工"重试而"自动"轰炸。因此 Backend for Agent 的第一性要求,是把接口从"给人读的文档"改造成"给机器读的可执行契约":自描述 Schema、语义化命名、统一响应结构、幂等操作、可审计的操作边界。阿里 AI Friendly 标准的六类事实层正是这一思路的元数据化:把散落在人脑与群聊中的系统知识显式化、可检索化,让 Agent 在调用任何服务之前先获得系统级方向感,避免基于文件名与接口名的"局部推断"做出全局破坏的决策。核心洞见在于:B4A 不是发明新框架,而是把"可被机器理解"写入架构评审标准,让接口从文档升格为机器可验证的契约。

2. 状态机化与可回放:驯服非确定性

Agent 的本质是非确定性——对相似甚至相同的输入可能给出不同答案,这是其价值来源,也是调试噩梦。当系统有 1 个 Agent 与 5 个后端服务时,需要排查的随机路径约 5 条;4 个 Agent 时接近 80 条,基于日志关联的确定性调试彻底失效。工程界的应对是"状态机化 + 可回放":将 Agent 工作流显式建模为状态与转移(pending、running、awaiting_tool、succeeded、failed),状态持久化到后端存储(session 存储或 state 原语),每一步决策、工具调用与结果写入事件日志。由此获得三项能力:从任意 checkpoint 恢复长时任务;按事件序列回放失败路径定位根因;把真实交互沉淀为评估集驱动迭代。AI Agent 工程师能力地图将"状态管理缺失"与"失败恢复缺失"列为生产失败的两大主因,印证后端架构的职责正从"管数据"扩展到"管 Agent 的执行状态"。

3. MCP 与工具服务器:能力暴露方式的根本变化

Agent 后端中能力暴露方式发生根本变化:传统后端暴露 REST API 给前端程序,而 Agent 后端暴露"工具"给模型。MCP(Model Context Protocol)已成为这一层的默认协议:工具服务器以标准化的 tool schema 声明能力,Agent 通过协议完成发现、调用与结构化结果接收,模型不再需要为每个系统定制集成代码。这一转变把"接口契约"升级为"能力契约",也把后端工程师的角色从"写 API"推向"写工具并治理工具"——工具命名、参数约束、副作用声明与权限边界直接决定模型能否正确使用,工具随意是生产失败的常见根因。生产级部署还需一层 Gateway 统一处理鉴权、限流、预算与审计——工具一旦被 Agent 调用,流量特征与人类完全不同,未经治理的工具面同时是成本黑洞与攻击面。A2A 等协议补充了 Agent 间通信,但工具调用层已收敛为:协议标准化 + 能力治理 + 网关管控。

4. Harness 即后端:边界正在消解

2026 年最重要的后端架构命题是:Harness 与后端的二元分离只是暂时状态。当下 Agent 的编排循环、工具、记忆构成 harness,队列、状态、HTTP 路由构成传统后端,两层各自重试、各自超时、trace 无法贯通——这正是 Agent 系统难以调试的结构性根源。iii.dev 提出的 worker / trigger / function 三原语提供了一个消解方案:Agent 与支付服务、队列、浏览器同为 worker,注册 functions 与 triggers,共享同一套状态与 trace 语义;Agent 的工具就是 functions,记忆就是 state,编排就是 triggers 的组合。当类别坍缩发生时,实时发现、运行时扩展、端到端可观测性自然涌现,Anthropic 与 LangGraph 的薄厚之争退化为"注册多少 functions"的设计选择。与"自下而上"路径互补的是 AI Friendly 的"自上而下"路径:用 Architecture Map、Service Card 等元数据让现有后端可被 Agent 读取。两条路径合流方向一致:Agent 运行层与后端基础设施正在合并为同一层。

实践启示

  1. 接口语义化先行:把 OpenAPI/JSON Schema 覆盖率做到 100% 是第一里程碑;按"只读 → 读写 → 自治"推进,每阶段独立产生价值,不必推翻现有架构。
  2. 任何长时任务先状态机化:定义显式状态与持久化方案,确保失败可从 checkpoint 恢复而不是从头重跑,这是根治"失败恢复缺失"的工程手段。
  3. 投资统一的 trace 基础设施:基于 OpenTelemetry 让模型调用、工具执行、队列与状态写入共享同一条 trace,可观测性是 Agent 可调试、可评估、可信任的前提。
  4. 把幂等当成默认要求:所有写操作提供幂等键,统一结构化错误码,让 Agent 的自动重试变成低成本、无副作用的操作。
  5. 为 Agent 流量设计治理层:按 Agent 身份做认证与审计,设置 rate limit 与 token/成本预算,防止循环调用与失控开销,治理应先于扩展。
  6. 用回放闭环驱动迭代:将生产 trace 沉淀为评估集,每次架构或提示词改动后回放验证,用可复现性对抗非确定性。

相关实体