中文内容
使用 Agent Sandbox 在 Kubernetes 上运行智能体
人工智能领域正在经历一场巨大的架构转变。在生成式 AI 早期,与模型交互常被视为一次短暂的无状态函数调用:一个请求启动、执行大约 50 毫秒,然后终止。
如今,世界正在见证 AI v2 吞噬 AI v1。生态系统正从短生命周期、相互隔离的任务,转向部署多个持续运行且相互协调的 AI 智能体。这些自主智能体需要在较长时间内保持上下文、使用外部工具、编写并执行代码,并彼此通信。
随着平台工程团队寻找合适的基础设施来托管这些新的 AI 工作负载,有一个平台成为自然选择:Kubernetes。然而,将这些独特的智能体式工作负载映射到传统 Kubernetes 原语,需要一种新的抽象。
这正是新的 Agent Sandbox 项目(目前在 SIG Apps 下开发)发挥作用的地方。
Kubernetes 的优势(以及抽象差距)
Kubernetes 是编排云原生应用的事实标准,正是因为它解决了可扩展性、稳健网络和生态成熟度方面的挑战。然而,随着 AI 从短生命周期推理请求演进为长时间运行的自主智能体,我们正在看到一种新的运维模式出现。
相比之下,AI 智能体通常是隔离的、有状态的、单例工作负载。它们充当 LLM 的数字工作区或执行环境。智能体需要持久身份,以及用于编写和执行(通常是不受信任的)代码的安全暂存区。关键在于,由于这些长期运行的智能体预计大多数时间处于空闲状态,只在短暂时间内爆发活动,因此它们需要支持挂起和快速恢复等机制的生命周期。
虽然从理论上讲,你可以为每一个智能体串联一个大小为 1 的 StatefulSet、一个 headless Service 和一个 PersistentVolumeClaim 来近似实现这一点,但大规模管理会变成一场运维噩梦。
由于这些独特属性,传统 Kubernetes 原语并不能完美匹配。
介绍 Kubernetes Agent Sandbox
为弥合这一差距,SIG Apps 正在开发 agent-sandbox。该项目引入了一个声明式、标准化的 API,专门面向 AI 智能体运行时这类单例、有状态工作负载。
该项目的核心是引入 Sandbox CRD。它充当一个完全基于 Kubernetes 原语构建的轻量级单容器环境,提供:
- 对不受信任代码的强隔离:当 AI 智能体自主生成并执行代码时,安全性至关重要。Sandbox 自定义资源原生支持不同运行时,如 gVisor 或 Kata Containers。这提供了多租户、不受信任执行所需的内核和网络隔离。
- 生命周期管理:不同于为稳定、无状态流量优化的传统 Web 服务器,AI 智能体作为有状态工作区运行,在任务之间可能空闲数小时。Agent Sandbox 支持将这些空闲环境缩容到零以节省资源,同时确保它们能够从离开处精确恢复。
- 稳定身份:协同式多智能体系统需要稳定的网络。每个 Sandbox 都会获得稳定的主机名和网络身份,使不同智能体能够无缝发现彼此并通信。
使用扩展来扩展智能体
由于 AI 领域发展极快,我们构建了一个 Extensions API 层,以实现更快的迭代和开发。
启动一个新 pod 会增加约一秒的开销。在部署微服务新版本时这完全可以接受,但当智能体在空闲后被调用时,一秒钟的冷启动会破坏交互连续性。它会迫使用户或编排服务等待环境完成预置,模型才能开始思考或行动。SandboxWarmPool 通过维护一组预先预置的 Sandbox pod 来解决这一问题,从而有效消除冷启动。用户或编排服务只需基于 SandboxTemplate 发出 SandboxClaim,控制器就会立即将一个预热完成、完全隔离的环境交给智能体。
快速开始
准备好自己尝试了吗?你可以使用所选版本,将 Agent Sandbox 核心组件和扩展直接安装到你的学习集群或沙箱集群中。
由于该项目发展很快,我们建议你使用最新版本。
# Replace "vX.Y.Z" with a specific version tag (e.g., "v0.1.0") from
# https://github.com/kubernetes-sigs/agent-sandbox/releases
export VERSION="vX.Y.Z"
# Install the core components:
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${VERSION}/manifest.yaml
# Install the extensions components (optional):
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${VERSION}/extensions.yaml
# Install the Python SDK (optional):
# Create a virtual Python environment
python3 -m venv .venv
source .venv/bin/activate
# Install from PyPI
pip install k8s-agent-sandbox
安装完成后,你可以试用面向 AI 智能体的 Python SDK,或部署一个开箱即用的示例,看看启动一个隔离的智能体环境有多容易。
智能体的未来是云原生
无论是 50 毫秒的无状态任务,还是持续数周、主要处于空闲状态的协作流程,通过使用专为隔离的有状态单例设计的原语扩展 Kubernetes,我们都能够利用云原生生态系统的全部稳健优势。
Agent Sandbox 项目是开源且由社区驱动的。如果你正在构建 AI 平台、开发智能体框架,或对 Kubernetes 可扩展性感兴趣,我们邀请你参与进来:
- 在 GitHub 上查看项目:kubernetes-sigs/agent-sandbox
- 加入 Kubernetes Slack 上 #sig-apps 和 #agent-sandbox 频道中的讨论。
- ← 上一篇
- 下一篇 →