Harness Engineering:智能体资源隔离方案


1. 标题 (Title)

  1. Harness Engineering实战:构建云原生多租户AI Agent平台的硬核资源隔离机制
  2. 从0到1拆解Harness的Agent资源隔离:安全、性能、可扩展性三维度全解析
  3. AI Agent集群混乱终结者:Harness Engineering提出的分层资源隔离架构与落地
  4. 告别资源抢占与数据泄露:Harness Engineering在智能体多租户场景下的隔离实践手册
  5. 云原生AI Agent的资源安全基石:Harness Engineering的Cgroups+Kubernetes分层隔离方案

2. 引言 (Introduction)

2.1 痛点引入 (Hook)

想象一下,你是一家SaaS公司的技术负责人,你们公司刚刚上线了一款云原生多租户AI Agent编排平台——类似Harness Engineering的下一代DevOps Agent,但更侧重于通用AI任务的托管与调度:用户(可能是个人开发者、中小企业IT团队、甚至是金融/医疗领域的大型企业)可以在平台上创建、配置、部署自己的专属AI Agent,比如代码审查Agent、数据清洗Agent、客户服务Agent……每个Agent背后可能是一个或多个大模型(LLM)、向量数据库、中间件的集群,或者是轻量级的Python脚本执行环境。

平台上线的前三天,你收到了几十条用户投诉:

  • 个人开发者A:我花了39.9元/月买的“专业版”Agent,每次调用GPT-4o mini接口时响应时间从1s飙升到了10s,后台监控显示CPU占用率直接拉满到100%,这完全没法用!
  • 中小企业IT团队B:我们部署的三个Agent(代码审查、文档生成、SQL助手)共享一个8核32G的云服务器,刚才文档生成Agent在处理1000页PDF时,把所有内存吃空了,另外两个Agent直接崩溃重启,损失了昨天刚上传的100GB训练数据备份!
  • 大型金融企业C:我们花了9999元/月的“企业版独享套餐”,但上周安全审计时发现,我们的Agent在调用平台内部的向量数据库接口时,日志里居然能看到其他企业用户的向量ID前缀!数据安全红线绝对不能碰!

你紧急召集技术团队排查:

  • 开发者A的问题:CPU资源未隔离——一个免费版用户的测试Agent(跑爬虫任务的)抢占了80%的CPU,直接把专业版Agent的性能拖垮了;
  • 中小企业B的问题:内存资源未隔离+存储资源未隔离+进程资源未隔离——独享套餐只是挂羊头卖狗肉,三个Agent还是混跑在同一个Pod里,内存耗尽触发了Linux内核的OOM Killer,随机杀掉了另外两个关键Agent,而且共享的本地存储目录也被OOM Killer触发的临时清理程序删了部分数据;
  • 大型金融企业C的问题:网络资源未隔离+权限资源未隔离——所有企业用户的Agent都在同一个Kubernetes Namespace里,网络访问没有ACL限制,向量数据库的RBAC权限也只配置到了“用户级”,但向量ID生成逻辑有漏洞,其他用户的ID前缀可以通过日志中的“索引查询失败原因”反推出来。

你绝望地翻遍了Kubernetes、Docker、Cgroups、SELinux、Istio的官方文档,也看了几十篇关于“云原生多租户资源隔离”的博客,但这些内容要么太散(只讲CPU或内存隔离),要么太旧(没有考虑AI Agent的特殊资源需求:GPU显存、向量数据库访问带宽、大模型推理并发数、甚至是Prompt/Response的临时缓存资源),要么就是大厂的内部方案(比如OpenAI的Agent资源隔离,只在GitHub上有零星的代码片段,没有完整的架构讲解)。

这时候,你偶然间看到了Harness Engineering(对,就是那个做云原生CI/CD的公司,他们其实早就把资源隔离这套玩明白了——因为CI/CD Runner本质上就是一种“执行特定任务的非智能体,但资源消耗波动极大”的程序)在2024年Q1发布的技术白皮书《Harness NextGen AI Agent Platform: Resource Isolation Framework for Secure, Performant, and Scalable Multi-Tenancy》,里面详细介绍了他们构建云原生多租户AI Agent平台时采用的分层资源隔离架构——从底层的硬件资源隔离(Cgroups v2、NVIDIA MIG),到中层的容器/虚拟化隔离(Docker容器轻量级隔离、Kata Containers硬件辅助隔离),到上层的网络/权限/缓存隔离(Istio服务网格、Kubernetes RBAC+OPA Gatekeeper、Redis Cluster分槽隔离),甚至还考虑到了AI Agent特有的Prompt/Response上下文隔离大模型推理并发配额隔离

看完白皮书,你眼前一亮——这不就是你需要的方案吗?!


2.2 文章内容概述 (What)

本文将以Harness Engineering的技术白皮书为核心参考框架,结合云原生、Linux内核、Kubernetes、AI Agent调度的最新技术实践,从零到一、从浅到深、从原理到代码、从单组件到全系统地拆解Harness的智能体资源隔离方案。

具体来说,本文将包含以下内容:

  1. 智能体资源隔离的核心概念与背景:解释什么是智能体资源隔离、为什么AI Agent的资源隔离比普通Web应用/CI/CD Runner更复杂、云原生多租户场景下智能体资源隔离的三大核心目标(安全、性能、可扩展性);
  2. Harness分层资源隔离架构的整体设计:介绍Harness的“三层四域”隔离架构——三层是指“底层硬件层隔离”、“中层容器/虚拟化层隔离”、“上层应用/业务层隔离”,四域是指“计算资源域隔离”、“存储资源域隔离”、“网络资源域隔离”、“业务逻辑域隔离”;
  3. 分层资源隔离架构的核心组件与原理
    • 底层硬件层隔离:讲解Cgroups v2如何实现CPU、内存、IO、GPU显存的细粒度隔离,NVIDIA MIG如何实现GPU的硬件级多租户隔离,RDMA隔离如何满足高带宽向量数据库的需求;
    • 中层容器/虚拟化层隔离:对比Docker容器轻量级隔离、Kata Containers硬件辅助隔离、Firecracker MicroVM隔离的优缺点,讲解Harness如何根据用户的安全等级(免费版/专业版/企业版/金融版)选择不同的隔离技术,以及如何通过Kubernetes的RuntimeClass动态切换隔离技术;
    • 上层应用/业务层隔离:讲解Istio服务网格如何实现网络ACL、流量镜像、故障注入、限速限流的隔离,Kubernetes RBAC+OPA Gatekeeper如何实现API权限的细粒度隔离,Redis Cluster分槽+命名空间如何实现Prompt/Response临时缓存的隔离,以及Harness自研的“大模型推理并发配额控制器”如何实现LLM API调用的隔离;
  4. Harness分层资源隔离架构的核心实现代码:提供Cgroups v2配置文件、Kubernetes RuntimeClass定义、Istio VirtualService/DestinationRule定义、OPA Gatekeeper ConstraintTemplate/Constraint定义、Redis Cluster分槽脚本、Harness自研并发配额控制器的Go源代码片段;
  5. Harness分层资源隔离架构的最佳实践与性能优化:讲解如何根据AI Agent的资源消耗特征(CPU密集型、内存密集型、IO密集型、GPU密集型、混合密集型)选择最优的隔离策略,如何在保证安全和性能的前提下降低隔离带来的性能开销,如何通过资源超卖(Overcommitment)提高集群的资源利用率;
  6. Harness分层资源隔离架构的行业发展与未来趋势:回顾云原生多租户资源隔离的发展历史,分析当前AI Agent资源隔离面临的挑战(比如GPU硬件级多租户的局限性、Prompt/Response的加密隔离、跨租户的Agent协作问题),展望未来AI Agent资源隔离的发展方向(比如通用硬件级多租户、联邦学习式的资源隔离、AI驱动的动态资源隔离);
  7. 基于Harness架构的智能体资源隔离方案的落地指南:提供一个完整的、可直接运行的云原生多租户AI Agent平台的部署示例,包括环境安装、系统功能设计、系统架构设计、系统接口设计、系统核心实现源代码。

2.3 读者收益 (Why)

读完本文,你将能够:

  1. 理解核心概念:彻底搞懂智能体资源隔离的本质、目标、以及与普通Web应用/CI/CD Runner资源隔离的区别;
  2. 掌握整体架构:熟练掌握Harness的“三层四域”智能体资源隔离架构,能够根据自己的业务需求(比如安全等级、资源消耗特征、用户规模)调整架构;
  3. 实现核心功能:能够独立实现Cgroups v2细粒度资源隔离、Kubernetes RuntimeClass动态切换隔离技术、Istio服务网格网络隔离、Kubernetes RBAC+OPA Gatekeeper权限隔离、Redis Cluster缓存隔离、大模型推理并发配额隔离等核心功能;
  4. 优化性能与成本:能够根据AI Agent的资源消耗特征选择最优的隔离策略,降低隔离带来的性能开销,提高集群的资源利用率,降低运维成本;
  5. 应对未来挑战:了解当前AI Agent资源隔离面临的挑战,以及未来的发展方向,能够提前规划自己的技术栈。

3. 准备工作 (Prerequisites)

3.1 技术栈/知识

为了能够顺利阅读和实践本文,你需要具备以下技术栈和知识:

  1. Linux内核基础:了解Linux的进程管理、内存管理、IO管理、网络管理的基本原理,熟悉Cgroups v1/v2的基本概念和基本使用方法;
  2. 云原生技术基础:熟悉Docker的基本概念和基本使用方法(比如Dockerfile编写、Docker容器运行、Docker镜像构建),熟悉Kubernetes的基本概念和基本使用方法(比如Pod、Deployment、Service、Namespace、ConfigMap、Secret、RBAC、RuntimeClass的基本概念和基本使用方法);
  3. 服务网格基础:了解Istio的基本概念和基本使用方法(比如VirtualService、DestinationRule、Gateway、Sidecar、Envoy的基本概念和基本使用方法);
  4. AI Agent基础:了解什么是AI Agent、AI Agent的基本组成部分(比如大模型、向量数据库、中间件、工具链)、AI Agent的资源消耗特征;
  5. 编程语言基础:熟悉Go语言的基本语法(因为Harness自研的并发配额控制器是用Go语言写的),熟悉Shell脚本的基本语法(因为Cgroups v2配置和Redis Cluster分槽会用到Shell脚本),熟悉YAML的基本语法(因为Kubernetes和Istio的配置文件都是YAML格式的)。

3.2 环境/工具

为了能够顺利实践本文的代码示例,你需要准备以下环境和工具:

  1. 硬件环境
    • 至少一台x86_64架构的Linux服务器(推荐使用Ubuntu 22.04 LTS或CentOS Stream 9,因为这两个发行版默认启用了Cgroups v2);
    • 如果要实践GPU资源隔离,需要至少一块支持NVIDIA MIG的GPU(比如NVIDIA A100、NVIDIA H100、NVIDIA L40S);
    • 服务器的配置建议:至少8核CPU、32G内存、500G SSD存储、1Gbps以上的网络带宽;
  2. 软件环境
    • Docker Engine 24.0+:因为Docker 24.0+默认使用Cgroups v2;
    • Kubernetes 1.27+:因为Kubernetes 1.27+默认支持RuntimeClass的动态切换,并且对Cgroups v2的支持更加完善;
    • kubectl 1.27+:Kubernetes的命令行工具,版本需要与Kubernetes集群的版本一致;
    • Istio 1.20+:服务网格工具,版本需要与Kubernetes集群的版本兼容;
    • OPA Gatekeeper 3.14+:策略控制器工具,版本需要与Kubernetes集群的版本兼容;
    • Redis 7.0+:缓存工具,版本需要支持Redis Cluster;
    • NVIDIA Container Toolkit 1.14+:如果要实践GPU资源隔离,需要安装这个工具;
    • Kata Containers 3.2+:如果要实践硬件辅助隔离,需要安装这个工具;
    • Go 1.21+:如果要实践Harness自研的并发配额控制器,需要安装这个工具;
  3. 其他工具
    • Git:版本控制工具;
    • Helm 3.12+:Kubernetes的包管理工具;
    • Postman或curl:API测试工具;
    • Prometheus+Grafana:监控工具(可选,但推荐安装,用于监控资源隔离的效果)。

4. 核心概念:智能体资源隔离的本质与背景

4.1 问题背景

在开始讲解智能体资源隔离的核心概念之前,我们需要先了解一下云原生多租户AI Agent平台的发展现状当前面临的核心问题——只有了解了这些背景,我们才能真正理解为什么需要智能体资源隔离,以及为什么Harness的方案是有效的。

4.1.1 云原生多租户AI Agent平台的发展现状

根据Gartner发布的《2024年云原生技术趋势报告》,云原生多租户AI Agent平台是2024年云原生领域最热门的技术趋势之一——预计到2026年,全球80%的企业将使用云原生多租户AI Agent平台来托管和调度自己的AI Agent,而这个市场规模将从2024年的100亿美元增长到2026年的500亿美元。

为什么云原生多租户AI Agent平台会这么热门?主要有以下几个原因:

  1. AI Agent的普及:随着大模型(LLM)技术的快速发展(比如GPT-4o、Claude 3.5 Sonnet、Gemini 1.5 Pro),AI Agent的开发门槛越来越低——开发者只需要调用大模型的API,再加上一些简单的工具链(比如LangChain、LlamaIndex),就可以开发出一个功能强大的AI Agent;
  2. 云原生技术的成熟:Docker、Kubernetes、Istio、Prometheus等云原生技术已经非常成熟,为构建大规模、高可用、可扩展的云原生多租户AI Agent平台提供了坚实的技术基础;
  3. 企业对AI Agent的需求:企业需要AI Agent来提高工作效率、降低运营成本、提升客户体验——比如代码审查Agent可以把代码审查的时间从几天缩短到几小时,数据清洗Agent可以把数据清洗的时间从几周缩短到几天,客户服务Agent可以把客户服务的响应时间从几分钟缩短到几秒钟;
  4. 多租户模式的优势:多租户模式可以让SaaS公司的服务器、网络、存储等资源得到充分利用,降低运维成本,同时也可以让用户快速上手,不需要自己搭建和维护AI Agent的运行环境。

目前,市场上已经出现了很多云原生多租户AI Agent平台,比如:

  • Harness NextGen AI Agent Platform:由Harness Engineering推出的下一代云原生多租户AI Agent平台,主要用于DevOps领域的AI Agent托管与调度,但也支持通用AI任务的托管与调度;
  • OpenAI Assistants API:由OpenAI推出的云原生多租户AI Agent平台,主要用于托管和调度基于OpenAI大模型的AI Agent;
  • Anthropic Claude Console:由Anthropic推出的云原生多租户AI Agent平台,主要用于托管和调度基于Anthropic Claude大模型的AI Agent;
  • LangSmith:由LangChain推出的云原生多租户AI Agent平台,主要用于AI Agent的开发、测试、部署、监控,但也支持AI Agent的托管与调度;
  • Cohere Command R+ Platform:由Cohere推出的云原生多租户AI Agent平台,主要用于托管和调度基于Cohere大模型的AI Agent。

4.1.2 当前云原生多租户AI Agent平台面临的核心问题

虽然云原生多租户AI Agent平台的发展非常迅速,但目前大多数平台都面临着三个核心问题——这三个问题也是我们在引言中提到的用户投诉的根本原因:

  1. 资源抢占问题:AI Agent的资源消耗波动极大——比如一个文档生成Agent在处理10页PDF时可能只占用10%的CPU和1G的内存,但在处理1000页PDF时可能会占用100%的CPU和32G的内存;一个大模型推理Agent在处理单个用户请求时可能只占用1%的GPU显存,但在处理100个并发用户请求时可能会占用100%的GPU显存。如果多个AI Agent混跑在同一个硬件资源上,没有进行资源隔离,那么资源消耗大的Agent就会抢占其他Agent的资源,导致其他Agent的性能下降甚至崩溃;
  2. 数据安全问题:AI Agent在运行过程中会处理大量的敏感数据——比如个人开发者的代码、中小企业的财务数据、大型金融企业的客户信息、大型医疗企业的患者病历。如果多个AI Agent混跑在同一个环境中,没有进行数据隔离,那么一个Agent的敏感数据就可能会被其他Agent窃取或篡改;
  3. 可扩展性问题:随着用户规模的不断扩大,云原生多租户AI Agent平台需要能够快速地扩展硬件资源和软件资源——如果资源隔离架构设计不合理,那么平台的可扩展性就会受到严重限制,比如无法快速地添加新的GPU服务器、无法快速地为新用户分配资源、无法快速地调整资源隔离策略。

4.2 问题描述

为了更清晰地描述当前云原生多租户AI Agent平台面临的核心问题,我们可以把这些问题抽象成一个数学模型——首先,我们需要定义一些核心概念和变量。


4.2.1 核心概念与变量定义

我们先定义以下核心概念:

  1. 云原生多租户AI Agent平台(P):一个由SaaS公司运营的、基于云原生技术构建的、支持多租户的AI Agent托管与调度平台;
  2. 租户(T_i):平台的一个用户,其中i∈{1,2,…,N},N是平台的总租户数量;
  3. 智能体(A_ij):租户T_i创建的第j个AI Agent,其中j∈{1,2,…,M_i},M_i是租户T_i的总智能体数量;
  4. 资源集合(R):平台提供的所有资源的集合,包括:
    • 计算资源(R_c):CPU、GPU、TPU、NPU等;
    • 内存资源(R_m):CPU内存、GPU显存、TPU内存等;
    • 存储资源(R_s):本地存储、块存储、对象存储、文件存储等;
    • 网络资源(R_n):网络带宽、网络延迟、网络IOPS等;
    • 业务资源(R_b):大模型API调用次数、大模型推理并发数、向量数据库访问次数、向量数据库访问带宽等;
  5. 资源需求向量(D_ij):智能体A_ij在运行过程中对资源集合R中每个资源的需求向量,其中D_ij=(D_ijc, D_ijm, D_ijs, D_ijn, D_ijb),D_ijc是对计算资源的需求,D_ijm是对内存资源的需求,D_ijs是对存储资源的需求,D_ijn是对网络资源的需求,D_ijb是对业务资源的需求;
  6. 资源分配向量(A_ij):平台分配给智能体A_ij的资源向量,其中A_ij=(A_ijc, A_ijm, A_ijs, A_ijn, A_ijb),A_ijc是分配给计算资源的量,A_ijm是分配给内存资源的量,A_ijs是分配给存储资源的量,A_ijn是分配给网络资源的量,A_ijb是分配给业务资源的量;
  7. 资源使用向量(U_ij(t)):智能体A_ij在时刻t对资源集合R中每个资源的实际使用向量,其中U_ij(t)=(U_ijc(t), U_ijm(t), U_ijs(t), U_ijn(t), U_ijb(t)),U_ijc(t)是对计算资源的实际使用量,U_ijm(t)是对内存资源的实际使用量,U_ijs(t)是对存储资源的实际使用量,U_ijn(t)是对网络资源的实际使用量,U_ijb(t)是对业务资源的实际使用量;
  8. 安全隔离系数(S_ijkl(t)):在时刻t,智能体A_ij对智能体A_kl的安全隔离程度,其中S_ijkl(t)∈[0,1],S_ijkl(t)=0表示完全没有隔离(A_ij可以访问A_kl的所有资源和数据),S_ijkl(t)=1表示完全隔离(A_ij无法访问A_kl的任何资源和数据);
  9. 性能损失系数(P_ij(t)):在时刻t,由于资源隔离带来的智能体A_ij的性能损失程度,其中P_ij(t)∈[0,1],P_ij(t)=0表示没有性能损失,P_ij(t)=1表示完全无法运行;
  10. 资源利用率(U(t)):平台在时刻t的总资源利用率,其中U(t)∈[0,1],U(t)=0表示所有资源都没有被使用,U(t)=1表示所有资源都被完全使用。

4.2.2 问题的数学模型描述

基于以上核心概念和变量定义,我们可以把当前云原生多租户AI Agent平台面临的核心问题抽象成一个多目标优化问题——我们的目标是:

  1. 最小化资源抢占问题:即对于任意的租户T_i和T_k(i≠k),任意的智能体A_ij和A_kl,以及任意的时刻t,智能体A_ij的资源使用向量U_ij(t)不会影响智能体A_kl的资源使用向量U_kl(t),或者说智能体A_kl的资源分配向量A_kl不会被智能体A_ij的资源使用向量U_ij(t)占用;
  2. 最大化安全隔离系数:即对于任意的租户T_i和T_k(i≠k),任意的智能体A_ij和A_kl,以及任意的时刻t,安全隔离系数S_ijkl(t)=1;对于同一租户T_i的不同智能体A_ij和A_il(j≠l),安全隔离系数S_ijil(t)可以根据租户的需求设置(比如租户可以选择让自己的不同智能体共享某些资源和数据,这时候S_ijil(t)可以小于1);
  3. 最小化性能损失系数:即对于任意的租户T_i、任意的智能体A_ij、以及任意的时刻t,性能损失系数P_ij(t)尽可能小(比如P_ij(t)≤0.05,即性能损失不超过5%);
  4. 最大化资源利用率:即平台在任意时刻t的总资源利用率U(t)尽可能大(比如U(t)≥0.7,即资源利用率不低于70%)。

同时,我们还需要满足以下约束条件

  1. 资源分配约束:对于任意的租户T_i、任意的智能体A_ij、以及任意的时刻t,智能体A_ij的资源使用向量U_ij(t)≤智能体A_ij的资源分配向量A_ij≤租户T_i的总资源配额向量Q_i,其中Q_i=(Q_ic, Q_im, Q_is, Q_in, Q_ib)是平台分配给租户T_i的总资源配额向量;
  2. 平台总资源约束:对于任意的时刻t,平台所有租户的总资源配额向量之和≤平台的总资源向量C,其中C=(C_c, C_m, C_s, C_n, C_b)是平台的总资源向量;
  3. 安全约束:对于任意的租户T_i和T_k(i≠k),任意的智能体A_ij和A_kl,以及任意的时刻t,智能体A_ij无法访问智能体A_kl的任何敏感数据;
  4. 可扩展性约束:平台可以在不影响现有租户和智能体运行的情况下,快速地添加新的硬件资源和软件资源,快速地为新用户分配资源,快速地调整资源隔离策略。

4.3 问题解决:智能体资源隔离的定义与目标

4.3.1 智能体资源隔离的定义

基于以上问题背景和问题描述,我们可以给出智能体资源隔离的正式定义

智能体资源隔离是指在云原生多租户AI Agent平台中,通过一系列的技术手段(比如硬件级隔离、容器/虚拟化级隔离、应用/业务级隔离),将不同租户(或同一租户的不同智能体)的AI Agent在资源使用、数据访问、网络通信等方面完全或部分地隔离开来,从而避免资源抢占、数据泄露、恶意攻击等问题,同时保证AI Agent的性能、平台的可扩展性和资源利用率。


4.3.2 智能体资源隔离与普通Web应用/CI/CD Runner资源隔离的区别

虽然智能体资源隔离与普通Web应用/CI/CD Runner资源隔离有很多相似之处(比如都需要实现CPU、内存、IO、网络的隔离),但由于AI Agent的特殊资源需求特殊运行模式,智能体资源隔离比普通Web应用/CI/CD Runner资源隔离更复杂、更严格——具体来说,它们的区别主要体现在以下几个方面:

对比维度 普通Web应用资源隔离 CI/CD Runner资源隔离 智能体资源隔离
资源消耗波动特征 相对稳定——Web应用的资源消耗主要取决于并发用户数,但并发用户数的波动通常在可控范围内(比如可以通过负载均衡和自动扩缩容来控制) 波动极大——CI/CD Runner的资源消耗主要取决于构建任务的类型(比如Java构建任务的资源消耗比Node.js构建任务大得多),而且构建任务的执行时间通常比较短(从几分钟到几小时不等) 波动极大且不可预测——AI Agent的资源消耗不仅取决于并发用户数,还取决于任务的类型(比如文档生成任务的资源消耗比代码审查任务大得多)、任务的规模(比如处理1000页PDF的任务的资源消耗比处理10页PDF的任务大得多)、大模型的推理复杂度(比如调用GPT-4o的任务的资源消耗比调用GPT-4o mini的任务大得多),而且任务的执行时间通常比较长(从几秒钟到几天不等)
核心资源类型 CPU、内存、网络带宽 CPU、内存、IO(本地存储/块存储)、网络带宽 CPU、内存、GPU显存、IO(本地存储/块存储/对象存储/文件存储)、网络带宽、向量数据库访问带宽、大模型推理并发数、Prompt/Response临时缓存
安全隔离要求 中等——Web应用的安全隔离主要是为了避免恶意攻击和数据泄露,但大多数Web应用的敏感数据存储在后端数据库中,前端Web应用的敏感数据相对较少 中等偏高——CI/CD Runner的安全隔离主要是为了避免恶意代码的执行和敏感代码的泄露,但大多数CI/CD Runner的执行时间比较短,而且执行的代码通常是租户自己的代码 极高——AI Agent的安全隔离主要是为了避免恶意代码的执行、敏感数据的泄露(比如个人信息、财务数据、患者病历、代码)、Prompt/Response的窃取、大模型API的滥用,而且AI Agent的执行时间通常比较长,执行的代码可能是第三方工具链的代码(存在安全隐患)
性能损失要求 较低——普通Web应用可以接受5%-10%的性能损失 中等——CI/CD Runner可以接受10%-20%的性能损失 较低——AI Agent(尤其是大模型推理Agent)对性能非常敏感,通常只能接受5%以下的性能损失
可扩展性要求 较高——普通Web应用可以通过水平扩缩容来提高可扩展性 中等——CI/CD Runner可以通过水平扩缩容来提高可扩展性,但需要考虑构建任务的调度问题 极高——随着用户规模和任务规模的不断扩大,AI Agent平台需要能够快速地扩展GPU服务器、向量数据库集群、大模型API集群等资源,而且需要考虑资源的调度和隔离问题
资源共享需求 较高——普通Web应用通常需要共享负载均衡器、数据库、缓存等资源 中等——CI/CD Runner通常需要共享代码仓库、构建缓存等资源,但执行环境通常是隔离的 复杂——同一租户的不同AI Agent可能需要共享向量数据库、大模型API调用配额、Prompt/Response临时缓存等资源,但不同租户的AI Agent绝对不能共享这些资源

4.3.3 智能体资源隔离的三大核心目标

基于以上对比分析,我们可以总结出智能体资源隔离的三大核心目标——这三大目标也是我们在引言中提到的Harness技术白皮书的核心内容:

  1. 安全目标(Security)
    • 避免资源抢占:不同租户(或同一租户的不同智能体)的AI Agent不能互相抢占资源;
    • 避免数据泄露:不同租户的AI Agent不能互相访问敏感数据;
    • 避免恶意攻击:不同租户的AI Agent不能互相攻击(比如DoS攻击、DDoS攻击、恶意代码执行攻击);
    • 避免大模型API滥用:不同租户的AI Agent不能超过平台分配的大模型API调用配额和并发数配额;
  2. 性能目标(Performance)
    • 最小化性能损失:由于资源隔离带来的AI Agent的性能损失尽可能小(比如不超过5%);
    • 保证资源的稳定性:AI Agent的资源使用量在任意时刻都不会超过平台分配的资源配额,从而保证AI Agent的性能稳定;
    • 保证资源的可用性:AI Agent在运行过程中随时可以访问平台分配的资源,从而保证AI Agent的可用性;
  3. 可扩展性目标(Scalability)
    • 水平可扩展性:平台可以在不影响现有租户和智能体运行的情况下,快速地添加新的硬件资源和软件资源(比如GPU服务器、向量数据库集群、大模型API集群);
    • 租户可扩展性:平台可以在不影响现有租户和智能体运行的情况下,快速地为新用户分配资源;
    • 策略可扩展性:平台可以在不影响现有租户和智能体运行的情况下,快速地调整资源隔离策略(比如根据租户的安全等级切换隔离技术、根据AI Agent的资源消耗特征调整资源配额);
    • 资源可扩展性:平台可以在不影响现有租户和智能体运行的情况下,快速地添加新的资源类型(比如TPU、NPU、RDMA)。

4.4 边界与外延

4.4.1 智能体资源隔离的边界

虽然智能体资源隔离是云原生多租户AI Agent平台的核心技术之一,但它并不是万能的——我们需要明确智能体资源隔离的边界,避免过度依赖资源隔离来解决所有问题:

  1. 智能体资源隔离不能解决AI Agent本身的安全问题:比如AI Agent调用的第三方工具链存在安全漏洞、AI Agent的Prompt存在注入漏洞、AI Agent的代码存在逻辑漏洞等——这些问题需要通过AI Agent的安全审计、Prompt的安全过滤、代码的静态分析和动态分析等技术手段来解决;
  2. 智能体资源隔离不能解决AI Agent的性能问题:比如AI Agent的代码效率太低、AI Agent调用的大模型API响应时间太长、AI Agent调用的向量数据库查询速度太慢等——这些问题需要通过代码优化、大模型API的缓存、向量数据库的索引优化等技术手段来解决;
  3. 智能体资源隔离不能解决平台的调度问题:比如AI Agent的调度算法不合理、资源的分配算法不合理等——这些问题需要通过AI Agent的智能调度、资源的智能分配等技术手段来解决;
  4. 智能体资源隔离不能解决跨租户的Agent协作问题:比如不同租户的AI Agent需要共享某些非敏感数据、不同租户的AI Agent需要协作完成某些任务等——这些问题需要通过联邦学习、跨租户的安全授权等技术手段来解决。

4.4.2 智能体资源隔离的外延

智能体资源隔离的外延非常广泛——它不仅包括传统的硬件/容器/应用级资源隔离,还包括AI Agent特有的资源隔离

  1. 传统的资源隔离
    • 计算资源隔离(CPU、GPU、TPU、NPU);
    • 内存资源隔离(CPU内存、GPU显存、TPU内存);
    • 存储资源隔离(本地存储、块存储、对象存储、文件存储);
    • 网络资源隔离(网络带宽、网络延迟、网络IOPS、网络ACL);
    • 权限资源隔离(API权限、数据库权限、文件系统权限);
  2. AI Agent特有的资源隔离
    • 大模型API资源隔离:大模型API调用次数配额、大模型推理并发数配额、大模型推理上下文长度配额;
    • 向量数据库资源隔离:向量数据库访问次数配额、向量数据库访问带宽配额、向量数据库索引配额、向量数据库存储空间配额;
    • Prompt/Response资源隔离:Prompt/Response临时缓存隔离、Prompt/Response加密隔离、Prompt/Response日志隔离;
    • 工具链资源隔离:第三方工具链的调用次数配额、第三方工具链的调用权限隔离、第三方工具链的执行环境隔离。

4.5 概念结构与核心要素组成

4.5.1 智能体资源隔离的概念结构

为了更清晰地理解智能体资源隔离的概念结构,我们可以把它抽象成一个四层金字塔结构——从下到上依次是硬件资源层隔离容器/虚拟化层隔离应用/服务层隔离业务逻辑层隔离,每一层都依赖于下一层,同时为上一层提供支持:

业务逻辑层隔离

应用/服务层隔离

容器/虚拟化层隔离

硬件资源层隔离

大模型API资源隔离

向量数据库资源隔离

Prompt/Response资源隔离

工具链资源隔离

API权限隔离

网络资源隔离

服务发现隔离

配置管理隔离

Docker容器轻量级隔离

Kata Containers硬件辅助隔离

Firecracker MicroVM隔离

RuntimeClass动态切换

Cgroups v2细粒度隔离

NVIDIA MIG GPU硬件级隔离

RDMA隔离

SR-IOV网络硬件级隔离


4.5.2 智能体资源隔离的核心要素组成

智能体资源隔离的核心要素组成包括四个部分——这四个部分也是我们在引言中提到的Harness技术白皮书的“四域”:

  1. 计算资源域隔离要素
    • CPU隔离要素:Cgroups v2的cpu.max、cpu.weight、cpuset.cpus、cpuset.mems等参数;
    • GPU隔离要素:Cgroups v2的devices.allow、devices.deny等参数,NVIDIA Container Toolkit的–gpus参数,NVIDIA MIG的GPU实例(GI)和计算实例(CI);
    • TPU/NPU隔离要素:类似GPU隔离要素的技术手段;
  2. 内存资源域隔离要素
    • CPU内存隔离要素:Cgroups v2的memory.max、memory.high、memory.low、memory.swap.max等参数;
    • GPU显存隔离要素:Cgroups v2的devices.allow、devices.deny等参数,NVIDIA Container Toolkit的–gpus参数,NVIDIA MIG的GPU实例(GI)和计算实例(CI)的显存配额;
    • TPU/NPU内存隔离要素:类似GPU显存隔离要素的技术手段;
  3. 存储资源域隔离要素
    • 本地存储隔离要素:Cgroups v2的io.max、io.weight等参数,Docker的–storage-opt参数,Kubernetes的emptyDir、hostPath的sizeLimit参数;
    • 块存储隔离要素:Kubernetes的PersistentVolumeClaim(PVC)的StorageClass、sizeLimit参数,云服务商的块存储多租户隔离;
    • 对象存储隔离要素:云服务商的对象存储多租户隔离(比如AWS S3的Bucket Policy、IAM权限),Harness自研的对象存储代理;
    • 文件存储隔离要素:Kubernetes的PersistentVolumeClaim(PVC)的StorageClass、sizeLimit参数,NFS的ACL权限,SMB的ACL权限;
  4. 网络与业务逻辑域隔离要素
    • 网络隔离要素:Kubernetes的Namespace、NetworkPolicy,Istio的VirtualService、DestinationRule、Gateway、Sidecar、Envoy的ACL规则、限速限流规则;
    • 业务逻辑隔离要素:Kubernetes的RBAC、OPA Gatekeeper的ConstraintTemplate/Constraint,Harness自研的大模型推理并发配额控制器、向量数据库资源隔离控制器、Prompt/Response加密隔离控制器。

4.6 概念之间的关系:对比表格、ER实体关系图、交互关系图

4.6.1 概念核心属性维度对比:三层隔离技术的对比

在智能体资源隔离的概念结构中,容器/虚拟化层隔离是承上启下的关键一层——它的选择直接影响到整个资源隔离架构的安全、性能和可扩展性。因此,我们有必要对当前主流的三种容器/虚拟化层隔离技术(Docker容器轻量级隔离、Kata Containers硬件辅助隔离、Firecracker MicroVM隔离)进行核心属性维度对比

对比维度 Docker容器轻量级隔离 Kata Containers硬件辅助隔离 Firecracker MicroVM隔离
隔离级别 操作系统级隔离(共享Linux内核) 硬件级隔离(每个Pod都有独立的Linux内核) 硬件级隔离(每个Pod都有独立的Linux内核,内核更精简)
启动时间 极快(几百毫秒到几秒钟) 较快(几秒钟到几十秒钟) 极快(几百毫秒到几秒钟)
内存开销 极低(每个容器只占用几MB到几十MB的内存) 较高(每个Pod都有独立的Linux内核,占用几百MB到几GB的内存) 较低(每个Pod都有独立的精简Linux内核,占用几十MB到几百MB的内存)
CPU开销 极低(几乎没有CPU开销) 较低(有少量的CPU开销,主要来自于Hypervisor) 极低(几乎没有CPU开销,Hypervisor非常精简)
GPU支持 非常好(NVIDIA Container Toolkit原生支持) 较好(需要配置GPU passthrough或NVIDIA MIG) 较好(需要配置GPU passthrough或NVIDIA MIG)
IO性能 非常好(几乎没有IO性能损失) 较好(有少量的IO性能损失,主要来自于Hypervisor) 较好(有少量的IO性能损失,但比Kata Containers小)
网络性能 非常好(几乎没有网络性能损失) 较好(有少量的网络性能损失,主要来自于Hypervisor) 较好(有少量的网络性能损失,但比Kata Containers小)
安全级别 中等(如果容器逃逸成功,攻击者可以访问宿主机的所有资源) 极高(即使Pod逃逸成功,攻击者也只能访问Pod内部的资源,无法访问宿主机的其他资源) 极高(即使Pod逃逸成功,攻击者也只能访问Pod内部的资源,无法访问宿主机的其他资源,而且内核更精简,漏洞更少)
可扩展性 极高(可以支持成千上万个容器同时运行) 中等(因为内存开销较高,所以只能支持几百个到几千个Pod同时运行) 较高(因为内存开销较低,所以可以支持几千个到上万个Pod同时运行)
适用场景 免费版/专业版用户的AI Agent,资源消耗波动较小,安全要求中等 企业版/金融版用户的AI Agent,资源消耗波动较大,安全要求极高 企业版/金融版用户的AI Agent,资源消耗波动较小,安全要求极高,但需要较低的内存开销和较快的启动时间
Kubernetes支持 原生支持(Docker是Kubernetes默认的容器运行时之一) 原生支持(通过RuntimeClass配置) 原生支持(通过RuntimeClass配置)
维护成本 极低(Docker已经非常成熟,维护成本很低) 中等(Kata Containers的维护成本比Docker高) 较低(Firecracker的维护成本比Kata Containers低,但比Docker高)

4.6.2 概念联系的ER实体关系图

为了更清晰地理解智能体资源隔离的核心概念之间的联系,我们可以把它们抽象成一个ER实体关系图——其中,实体包括云原生多租户AI Agent平台(P)租户(T)用户套餐(Plan)智能体(A)资源配额(Q)资源类型(RType)隔离技术(IsoTech)资源池(RPool),关系包括运营购买包含创建分配属于使用提供

渲染错误: Mermaid 渲染失败: Parse error on line 33: ... string plan_type "套餐类型(免费版/专业 -----------------------^ Expecting 'BLOCK_STOP', 'ATTRIBUTE_WORD', 'ATTRIBUTE_KEY', 'COMMENT', got '"'
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐