租户边界要贯穿检索、工具、缓存、日志、计费与评测。
图:可信租户上下文贯穿身份、数据、队列、缓存与沙箱;点击查看原图。
问题背景
生成式模型擅长处理模糊语言和提出候选方案,却不天然保证状态一致、权限正确或动作可恢复。讨论“多租户 Agent 平台的隔离设计”时,重点不应只是跑通演示,而是系统失败后是否知道发生了什么、能否安全继续,以及结果能否重复验证。
设计方案
运行携带不可伪造租户标识,工具端重复授权,索引和缓存分区。
在“租户隔离矩阵”进入实现前,先标注输入来源、调用身份和数据等级;输出通过结构与领域校验后才允许进入下一步。涉及外部副作用时,执行记录必须包含稳定业务键和脱敏证据。
实施产物:租户隔离矩阵
身份在入口解析后贯穿检索、缓存、工具和日志;每层查询强制 tenant_id;密钥按租户短期下发。先在测试环境保存一条完整运行证据,再接入真实写操作;每次变更都必须能定位到配置、代码和数据版本。
1 | practice: |
示例只表达边界,不是可直接复制的完整框架配置。落地时应使用当前依赖版本的官方 API,并把超时、身份和审计接到现有基础设施。
实施步骤
- 选一个可回放的小任务,写清输入、成功条件和禁止发生的副作用。
- 实现“租户隔离矩阵”,把模型建议与真正执行隔离。
- 人工走通成功、拒绝和恢复三条路径,保存 run_id 与关键事件。
- 加入自动化回归,再用小比例非关键流量观察指标。
- 达到门槛后逐步放量;任一安全约束失败立即停止新任务并回退版本。
失败演练与验收
首要反例是:只在 UI 隐藏数据,后端查询没有租户条件。不要只验证顺利完成;还要注入超时、重复请求、取消、无权限输入和依赖返回畸形数据。
本篇的硬性验收是:使用租户 A 的对象 ID 从租户 B 请求,所有路径均返回拒绝。同时记录 跨租户拒绝数、无租户标签资源数。验收脚本应按结构化字段判定,不以“回答看起来合理”代替测试。
上线与回滚
“租户隔离矩阵”上线前要固定模型、提示、规则、工具 schema 与数据版本,并用影子或灰度流量比较旧版。若 跨租户拒绝数、无租户标签资源数 越过门槛,先停止新 Run,再处理在途任务,恢复旧组合后逐项核对未决副作用。
适用边界
当场景是“单租户独占部署”时,这套设计的维护成本通常高于收益。权限、金额、删除和一致性约束始终交给确定性代码,不能交给模型自行判断。
隔离必须贯穿每一层
| 层 | 租户边界 |
|---|---|
| 身份 | token 中可信 tenant claim,禁止请求体覆盖 |
| 数据 | 行级策略/独立库,查询自动带 tenant |
| 向量与缓存 | namespace 与 key 都含 tenant |
| 队列 | 消息签名租户,worker 二次校验 |
| 文件/沙箱 | 独立根目录、配额和生命周期 |
| 遥测 | tenant 使用受控低基数标识,日志脱敏 |
对象 ID 即使全局唯一也不能代替租户条件;所有 repository 方法强制接收 tenant context,避免开发者忘记 WHERE。后台任务从受信 envelope 获取租户,不能相信模型输出的租户字段。
容量也要隔离:每租户并发、Token、存储和工具配额,另设全局上限。一个租户的长任务不能占满共享队列;公平调度与 per-tenant dead-letter 队列防止噪声邻居。
构造相同对象 ID、缓存键碰撞、跨租户检索、伪造队列消息和恢复旧检查点等测试。审计“无租户标签资源”必须为零;运维跨租户查看需要独立 break-glass 身份、理由和完整记录,不能给普通服务一个全局管理员 token。
第二轮实践复核
围绕“租户隔离矩阵”建立一个不接触生产数据的最小项目,固定运行时、框架、模型、提示、规则和工具 schema 版本。正文代码块若缺少完整依赖、导入或领域类型,应视为架构伪代码;只有放入示例仓库并通过下述命令的代码才标记为可运行。
- 项目验证:
运行项目既有的 schema 校验、契约测试与离线评测命令 - 回归夹具:把输入、结构化输出、工具轨迹和副作用记录为 JSON,用固定版本执行正常、拒绝、超时、取消与重复请求五组回归样本。
- 必留证据:run_id、版本组合、终止原因、动作幂等键,以及 跨租户拒绝数、无租户标签资源数。
- 通过条件:未批准写操作为零副作用;相同幂等键重复执行只产生一个业务结果;超时或恢复后状态可解释。
- 失败处理:先停新任务,再核对在途动作;回滚模型、提示、规则、工具与状态迁移的完整组合,不能只换回模型。
复用顺序
- 为“多租户 Agent 平台的隔离设计”建立确定性假工具,先跑契约与失败用例,不接触真实凭据。
- 围绕“租户隔离矩阵”接入只读能力,核对权限裁剪、脱敏字段和 Trace 完整性。
- 需要写能力时先输出 dry-run 差异,再绑定审批结果与一次性动作哈希。
- 以本文验收指标比较影子流量;达到门槛才放量,越线立即执行文中的组合回滚。
实践与资料复核日期:2026-08-22;框架 API 以锁定版本的官方文档为准。
参考资料
框架 API 会持续演进,复制示例前应再次确认当前版本。可持续的 AI 工程不依赖某个模型偶尔表现出色,而依赖清晰契约、可靠 Harness 与可重复验证。
评论