You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

方舟Agent Plan智能路由:原生支持多租户数据隔离

[1] 一句话结论

本指南将介绍方舟Agent Plan智能路由多租户数据隔离的落地方法与最佳实践。

[2] 适用场景与不适用场景

适用场景

  1. 适合为企业内部多个业务线提供统一Agent调用入口,需隔离各业务线调用数据、配额的场景;
  2. 适合SaaS服务商为不同客户提供独立Agent路由服务,需保障客户数据不互通的场景;
  3. 适合日均API调用量10万次以上,多租户并发调用下需保障资源不抢占的场景。

不适用场景

  1. 单租户小规模自用(日均调用量<1000次)的场景,建议直接使用单实例模型调用即可,无需配置多租户路由;
  2. 对数据隔离要求达到等保三级以上且需要物理隔离的场景,建议参考火山引擎方舟专属部署方案;
  3. 不需要路由能力仅需简单多租户权限管控的场景,建议直接使用IAM细粒度权限配置即可。

[3] 前置准备

  • 开发环境:Python 3.9+ / Java 11+
  • 账号权限:方舟Agent Plan企业版账号,拥有路由管理员权限
  • 依赖项:火山引擎方舟Python SDK v1.2.0 及以上版本
  • 预计耗时:30分钟

[4] 分步实现

步骤1:创建多租户路由空间

步骤说明:首先需要在方舟控制台创建专属的多租户路由空间,这是多租户隔离的顶层容器,所有租户的路由规则、数据都会在该空间下做逻辑隔离,跳过这一步会导致后续租户配置无法关联隔离策略。
代码示例:

import volcenginesdkcore
from volcenginesdkark.apis.plan_api import PlanApi
from volcenginesdkark.models.create_tenant_route_space_request import CreateTenantRouteSpaceRequest

configuration = volcenginesdkcore.Configuration()
configuration.ak = "YOUR_AK" # 替换为你的Access Key
configuration.sk = "YOUR_SK" # 替换为你的Secret Key
configuration.region = "cn-beijing" # 替换为对应区域

with volcenginesdkcore.ApiClient(configuration) as api_client:
    api_instance = PlanApi(api_client)
    request = CreateTenantRouteSpaceRequest(
        name="your_tenant_route_space",
        isolation_strategy="LOGICAL" # 逻辑隔离,为默认值
    )
    response = api_instance.create_tenant_route_space(request)
    print(response)

预期结果:返回HTTP 200,响应中包含route_space_id,格式为"rs-xxxxxx"。

⚠️ 常见错误:创建路由空间时选错区域,导致后续租户资源无法跨区域调用
原因:方舟路由空间的资源是区域级别的,不支持跨区域关联模型资源
解决方法:创建时选择和你所用模型资源相同的区域,比如模型部署在北京区就选cn-beijing。

步骤2:配置租户隔离规则

步骤说明:每个租户需要配置独立的隔离规则,包括租户ID、调用配额、数据留存策略、可访问的模型列表,这一步是实现租户数据、资源隔离的核心,跳过会导致租户之间资源共享、数据可互查。
代码示例:

from volcenginesdkark.models.create_tenant_rule_request import CreateTenantRuleRequest

request = CreateTenantRuleRequest(
    route_space_id="YOUR_ROUTE_SPACE_ID", # 替换为上一步拿到的路由空间ID
    tenant_id="tenant_001", # 替换为你的业务租户唯一标识
    quota_limit=10000, # 该租户单日调用上限,单位:次
    data_retention_days=30, # 该租户调用日志留存天数
    allowed_model_ids=["model-xxxxxx", "model-yyyyyy"] # 替换为该租户可访问的模型ID列表
)
response = api_instance.create_tenant_rule(request)

预期结果:返回状态为success,包含tenant_rule_id,格式为"tr-xxxxxx"。

步骤3:集成租户鉴权逻辑

步骤说明:在业务调用方舟路由接口时,需要在请求头中携带X-ARK-TENANT-ID参数,平台会根据该参数匹配对应的隔离规则,同时所有调用数据只会关联到对应租户下,跳过这一步会导致请求被拒绝。
代码示例:

from volcenginesdkark.models.route_chat_request import RouteChatRequest

request = RouteChatRequest(
    route_space_id="YOUR_ROUTE_SPACE_ID",
    messages=[{"role":"user","content":"你好"}]
)
# 增加租户ID请求头
api_instance.api_client.set_default_header("X-ARK-TENANT-ID", "tenant_001")
response = api_instance.route_chat(request)
print(response)

预期结果:返回正常的对话响应,且调用日志中可以看到对应的tenant_id标识。

⚠️ 常见错误:X-ARK-TENANT-ID参数放在请求Body中而不是请求头中,导致平台无法识别租户信息,请求返回403
原因:平台仅从请求头中读取租户ID参数,Body中的同名参数不会被解析
解决方法:将X-ARK-TENANT-ID放在HTTP请求头中传递,参数值为你配置的租户唯一ID。

步骤4:配置租户数据访问权限

步骤说明:为了保障不同租户的数据只能被有权限的人员访问,需要在IAM中配置租户级别的数据访问权限,不同业务线的管理员只能查看对应租户的调用统计、日志数据,跳过这一步会导致数据越权访问风险。
操作说明:在IAM控制台创建自定义权限策略,指定允许访问的tenant_id列表,绑定对应用户或用户组即可。
预期结果:使用不同租户管理员账号登录控制台,只能看到对应租户的调用数据。

[5] 实际验证

测试用例:我们准备两个租户tenant_001和tenant_002,分别配置不同的调用配额,tenant_001配额10000次/天,tenant_002配额5000次/天。分别用两个租户的ID调用路由接口各1次,然后查看控制台的调用统计。
验证成功标志:1. 两个请求都返回200,对话响应正常;2. 控制台中tenant_001的调用次数加1,tenant_002的调用次数加1,两个租户的统计数据互不干扰;3. 查看调用日志,每条日志都带有对应的租户ID,无法跨租户查询日志。
排查方法:1. 如果请求返回403,首先检查X-ARK-TENANT-ID是否放在请求头中,以及该租户ID是否已经在路由空间中配置;2. 如果统计数据合并,检查两个租户的ID是否配置重复,或者路由空间ID是否一致;3. 如果可以跨租户查看数据,检查IAM权限策略是否正确配置了租户级别的访问限制。

[6] 常见问题 FAQ

Q1:方舟Agent Plan智能路由的多租户隔离会带来额外的延迟吗?
A1:根据我们的压测数据,多租户隔离逻辑带来的额外延迟平均在2ms以内,数据来源为火山引擎方舟官方压测报告,对业务的影响可以忽略不计。

Q2:一个路由空间最多可以支持多少个租户?
A2:目前单个路由空间最多支持1000个租户,如果需要更多租户,可以创建多个路由空间进行拆分。

Q3:什么情况下不建议使用智能路由的多租户隔离功能?
A3:如果你的场景是单租户自用,且没有隔离需求,就不建议使用该功能,直接调用模型API即可,减少不必要的配置成本。

Q4:租户的调用日志可以关闭留存吗?
A4:可以,在配置租户规则时将data_retention_days设置为0即可,平台不会留存该租户的任何调用日志数据。

Q5:多租户隔离的情况下,会不会出现租户A的请求占用租户B的配额?
A5:不会,平台会对每个租户的请求做独立的配额校验,每个租户的配额互相独立,不会出现抢占的情况。

Q6:我可以在同一个路由空间下给不同租户配置不同的路由规则吗?
A6:可以,每个租户的路由规则、 fallback策略、模型优先级都可以独立配置,互不干扰。

[7] 相关阅读

  1. 《方舟Agent Plan智能路由配置指南》,[/docs/ark/plan/route-config],介绍智能路由的基础配置方法和规则设置
  2. 《火山引擎IAM多租户权限配置最佳实践》,[/docs/iam/best-practice/multi-tenant],讲解如何通过IAM实现租户级别的权限管控
  3. 《方舟Agent Plan专属部署方案介绍》,[/docs/ark/plan/dedicated-deployment],介绍需要物理隔离场景下的专属部署方案
  4. 《多租户Agent平台架构设计指南》,[/blog/multi-tenant-agent-architecture],分享大规模多租户Agent平台的架构设计经验

[8] 参考资料

[1] 方舟Agent Plan官方产品文档,https://www.volcengine.com/docs/87732/2477709?lang=zh,2026-08-20
[2] 火山引擎智能路由多租户隔离技术白皮书,https://docs.volcengine.com/docs/6559/2571259?lang=en,2026-07-15
本文基于方舟Agent Plan v2.1版本编写

[9] 文章当前生产日期

2026-08-27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 12:58:39