SaaS 多租户 Agent 平台实战:自研 Agent 中间件 SDK,Nacos 配置驱动实现开箱即用

摘要 在 SaaS AI 平台中,每一个 Agent 都需要鉴权、权限校验、trace、SSRF 防护、token 限流、参数校验等横切能力。如果每个业务 Agent 重复开发,会大量重复造轮子。本文讲解如何自研 Agent 中间件 SDK,基于钩子抽象,对接 Nacos 配置中心,实现中间件按需装配开箱即用;同时实现 LangGraph、Spring‑AI 双框架适配。

SaaS 多租户 Agent 平台实战:自研 Agent 中间件 SDK,Nacos 配置驱动实现开箱即用

前言 我们做跨境营销 SaaS Agent 平台,同时存在 Python LangGraph、Java Spring‑AI 两套 Agent 实现。 最初每个业务 Agent 都重复写一套鉴权、trace、SSRF 防护、token 配额逻辑,代码大量重复,安全逻辑容易遗漏。

调研开源 Harness 后发现:dsh、codex‑harness 插件强绑定自身运行时,无法直接复用到现有业务。于是我们自研一套 Agent 中间件 SDK。

##1、SDK 整体设计思路 定位:只做横切切面,不接管 Agent 业务 DAG 与 Agent 主循环

  1. 定义统一抽象接口:before_agentwrap_model_callwrap_tool_callafter_agentwrap_xxx包装类型钩子支持拦截、阻断、重试;普通 before/after 仅做埋点。
  2. 中间件 Chain 链式执行模型,支持 next () 流转,可以中途终止链路。
  3. Adapter 适配层:LangGraphAdapter、SpringAIAdapter,把统一中间件,转换成各个 Agent 框架原生回调。
  4. 对接 Nacos 配置中心:管理中间件开关、黑名单、阈值参数,支持配置热更新。

注意:配置热更新只对新会话生效,正在运行中的 Agent 会话沿用旧配置

##2、SDK 内置现成中间件 业务开发人员直接按需开启,无需重复编码:

  1. TenantAuthMiddleware:租户身份、Skill 权限校验
  2. TraceMiddleware:traceId 透传,对接 SkyWalking,全链路事件上报
  3. TokenQuotaMiddleware:token 统计、租户配额限流
  4. SsrfSecurityMiddleware:IP、域名黑名单拦截
  5. ToolParamValidateMiddleware:解决大模型参数幻觉,工具调用参数校验
  6. SessionSummarizeMiddleware:长会话自动摘要压缩
  7. HumanInterveneMiddleware:高危 skill 触发人工审核
  8. CircuitBreakerMiddleware:大模型调用熔断降级

##3、两种使用模式 ### 模式 1:代码手动装配

复制代码
chain = AgentMiddlewareChain()
chain.add(TenantAuthMiddleware())
chain.add(SsrfSecurityMiddleware())
chain.add(TraceMiddleware())
adapter = LangGraphAdapter(graph, chain)
adapter.bind()

模式 2:Nacos 配置驱动,平台化开箱即用 Nacos 存放 JSON 配置,控制中间件开关与参数,新建业务 Agent 不需要写中间件代码。

复制代码
{
  "middlewareList":[
    {"name":"TenantAuthMiddleware","enable":true},
    {"name":"SsrfSecurityMiddleware","enable":true,"blackIp":["127.0.0.1"]},
    {"name":"ReflectionMiddleware","enable":false}
  ]
}

SDK 监听 Nacos 配置变更,动态组装中间件执行链。

##4、生产踩坑点

  1. Nacos 只能管理已经开发完成的中间件;新增全新类型中间件,仍然需要开发代码更新服务。Nacos 不能执行业务逻辑。
  2. 安全校验不能只依赖 Prompt,必须放在 wrap_tool_call 中间件后端硬拦截,防御大模型幻觉、提示注入绕过。
  3. 子 Agent 不会自动继承父 Agent 中间件,需要手动绑定。
  4. 摘要中间件不能拆散 tool‑call 一问一答配对,否则 Agent 业务逻辑错乱。
  5. Redis、Nacos 属于底层基础设施组件,不是 Agent 中间件;中间件内部调用 Redis/Nacos 获取配置与计数。

##5、总结 通过自研 Agent 中间件 SDK,实现通用安全观测能力复用,业务只聚焦 DAG 业务逻辑。借助 Nacos 配置驱动,实现 Agent 平台化开箱即用。 如果公司内部已经存在多套 Agent 框架,不想迁移整套 Harness 运行时,这套方案会比直接引入 DeepSeek‑Harness 更加合适。

标签:#Agent 中间件 #SaaS 大模型 #SpringAI #LangGraph #Nacos

相关推荐
未若君雅裁3 小时前
自定义中间件:Node-style 与 Wrap-style 钩子全解析
python·中间件·langchain
__zRainy__2 天前
Node系列 · Express:常用的中间件
中间件·node.js·express
2601_962181962 天前
【ROS2 中间件RMW】基于FastDDS共享内存实现ROS2跨进程零拷贝通讯
中间件
未若君雅裁2 天前
上下文压缩双刃剑-Summarization与ContextEditing中间件实战
python·中间件·langchain
烂蜻蜓2 天前
Flask入门教程(十六):中间件与扩展——增强应用功能的两种机制
python·中间件·flask
__zRainy__3 天前
Node系列 · Express:中间件
中间件·node.js·express
LayZhangStrive4 天前
后端开发中间件 - Nacos下载并快速使用教程
中间件·nacos
念何架构之路4 天前
Gin内置中间件详解
中间件·gin
wtGEOyh4 天前
2026,劲豆种业如何用生物育种“豆”振中国?
中间件