Skip to content

Agent SaaS 多租户、RBAC 与配额设计 ​

这篇文章解决什么问题 ​

Agent SaaS 不是把个人 Demo 放到线上。只要有团队、客户、付费套餐和外部工具,就必须处理多租户隔离、角色权限、额度配额、审计和成本控制。

这篇文章整理 Agent SaaS 中 tenant、workspace、RBAC、quota 和 billing 的基础设计。

基础对象模型 ​

text
Tenant
  └── Workspace
        ├── User / Member
        ├── Role / Permission
        ├── Agent Config
        ├── Tool Policy
        ├── Knowledge Base
        ├── Task / Run / Trace
        └── Quota / Usage
对象说明
tenant客户或组织
workspace团队空间或项目空间
member用户在 workspace 中的身份
roleadmin、operator、viewer、billing 等
permission可执行动作和可访问资源
quotatoken、任务、工具调用、存储、并发等额度
usage实际消耗记录

RBAC 设计 ​

角色能力
Owner管理账单、成员、全局配置
Admin配置 Agent、工具、知识库、权限
Operator处理任务、审批工具、人工接管
Member创建和查看自己的任务
Viewer只读查看结果和报表
Billing查看用量和发票

RBAC 要落到具体 action,例如 task:create、tool:approve、kb:write、billing:read,而不是只写“管理员”。

Tool Policy 与角色绑定 ​

不同角色可见工具不同:

工具ViewerMemberOperatorAdmin
search_kb允许允许允许允许
create_ticket禁止允许允许允许
send_email禁止禁止需审批允许
delete_record禁止禁止禁止需审批
manage_users禁止禁止禁止允许

模型不应该知道被隐藏的工具。工具列表应先按 tenant、role、task_type、risk_level 过滤。

配额设计 ​

配额示例
token_quota每月 10M tokens
task_quota每月 5000 个任务
tool_call_quota每月 20000 次工具调用
storage_quota10GB 知识库
concurrent_runs同时 5 个长任务
browser_minutes每月 1000 分钟浏览器自动化
premium_model_quota高级模型调用额度

配额要能按 tenant、workspace、user、task_type 统计。

成本账本 ​

每次 run 都要记录:

text
run_id
tenant_id
workspace_id
user_id
task_type
model
input_tokens
output_tokens
tool_calls
browser_minutes
storage_delta
cost_estimate
billing_plan

没有用量账本,就无法做套餐、限流、成本优化和异常检测。

多租户隔离 ​

隔离点包括:

  • 数据库查询必须带 tenant_id。
  • RAG metadata filter 必须带 tenant/workspace。
  • 缓存 key 必须包含 tenant_id。
  • 向量库 collection 或 filter 必须隔离。
  • MCP 凭证按 tenant/workspace 隔离。
  • Trace 和日志按租户权限查看。
  • 评测样本和训练数据不能跨租户混用。

超额和降级策略 ​

情况策略
token 接近上限提醒、限制高级模型
task 超额阻止新任务或引导升级
并发超限排队或拒绝低优先级任务
工具调用异常高风控检查和临时限流
成本异常自动切换低成本模型或暂停批任务

面试表达 ​

Agent SaaS 必须从第一天设计多租户、RBAC 和配额。我的模型会包含 tenant、workspace、member、role、permission、quota 和 usage。工具列表按 tenant、role、task_type 和 risk_level 过滤,高风险工具绑定 approval。用量账本记录 run_id、tenant_id、model、tokens、tool_calls、browser_minutes 和 cost_estimate。隔离上数据库、RAG metadata、缓存 key、MCP 凭证、Trace 查看和训练数据都要带租户边界。这样才能做商业化套餐、成本控制和企业级安全。

相关链接 ​