Skip to content

[feature]: 多租户场景下缺少基于租户 ID 的 skill 与临时数据隔离能力 #25

Description

Checklist

  • 我已经搜索过相关问题,但没有得到预期的帮助。
  • 最新版本中该错误尚未修复。
  • 请注意,如果您提交的Bug描述缺少相应的环境信息和最小可复现的demo,我们将很难复现和解决该问题,从而降低收到反馈的可能性,甚至该问题将被关闭。

🐞 问题详细描述

当前 deepagent 框架在超级智能体场景中采用单例模型创建实体,并指定统一的 tmp 临时目录作为工作空间。该实现方式在多租户企业客户场景下存在数据隔离不足的问题。

当前主要问题如下:

1、不同租户共享同一个实例工作空间及 tmp 临时目录,可能导致租户之间临时文件互相访问或写入干扰。
2、skill 目录当前对所有请求上下文可见,无法基于租户粒度隔离不同租户可访问的数据。
3、从智能体入口进入智能体后台后,系统当前只能感知不同 session,缺少基于租户 ID 的数据隔离能力。
4、在企业多租户场景下,该问题可能导致不同租户之间发生数据越界访问,不满足客户合规要求。

期望行为:

1、Deepagent 支持基于请求参数中的租户 ID 进行数据隔离。
2、租户粒度由业务方决定,可以是个人、部门或其他业务维度;agent 框架内不感知个人、部门等具体业务概念。
3、Agent 框架不负责租户合法性校验,也不判断用户是否属于某个租户。
4、Agent 框架仅根据请求参数中的租户 ID:

  • 拉取该租户已有数据;
  • 或在租户数据不存在时创建新的租户数据空间。

5、需隔离的数据包括:

  • 租户维度的 skill 数据;
  • 租户运行过程中临时生成的文件;
  • 租户工作空间中的临时写入数据。

6、不需要隔离的数据包括:

  • 智能体配置文件;
  • 运行日志等公共运维类数据。

验收标准:

1、在测试中验证不同租户 ID 之间无法访问彼此的 skill 数据。
2、在测试中验证不同租户 ID 之间无法访问彼此临时生成的文件。
3、在测试中验证不同租户 ID 之间的临时写入不会互相影响。
4、当请求携带已有租户 ID 时,deepagent 能正确加载该租户对应的数据空间。
5、当请求携带新的租户 ID 且对应数据不存在时,deepagent 能创建新的租户数据空间。
6、验证不能通过路

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions