agent-substrate/substrate — Agent Substrate: the core system
Agent Substrate — 자율 에이전트를 위한 고밀도 실행 런타임
Agent Substrate는 Kubernetes 위에서 다수의 상태 저장 actor를 소수의 worker에 배치하는 에이전트 실행 런타임입니다. gVisor와 microVM을 지원하며 500ms 이하의 재개 시간, 초당 500회 이상의 suspend/resume, 8개 Pod에서 약 250개 actor를 multiplex하는 데모를 제공합니다.
- 주제
AI 요약
Agent Substrate는 자율 에이전트나 유휴 시간이 긴 애플리케이션을 대규모로 실행하기 위한 보안 중심 런타임입니다. 일반적인 컨테이너 런타임보다 10배 높은 밀도를 목표로 하며, 커널 수준의 zero-trust 격리와 네트워크 격리를 기본값으로 제공합니다. Google의 공식 지원 제품은 아니며 Google Open Source Software Vulnerability Rewards Program 대상에도 포함되지 않습니다.
Actor와 Worker를 분리한 실행 모델
Agent Substrate는 애플리케이션이나 에이전트를 Actor로 보고, 실제 실행 자원은 더 적은 수의 Worker로 구성합니다. 대부분의 에이전트가 항상 CPU를 사용하지 않는다는 점을 이용해 많은 Actor를 소수의 Worker에 실시간으로 배치합니다. Actor 생성과 삭제, suspend와 resume, Worker 할당, 요청 라우팅을 런타임이 관리합니다.
Actor는 작업 중인 RAM과 파일시스템 상태를 전체 상태 스냅샷으로 저장합니다. 절전 상태로 전환한 뒤 다른 Worker에서 상태를 복원하므로 특정 물리 Worker에 계속 묶이지 않습니다. 프로젝트가 제시한 목표 수치는 500ms 이하의 resume, 초당 500회 이상의 suspend/resume 활성화입니다. 데모에서는 8개 물리 Pod에 약 250개의 상태 저장 Actor를 배치하고, 공유 Worker 풀에 Actor를 30배 이상 초과 할당합니다. 요청이 몰려 Worker가 부족하면 라우터가 즉시 503을 반환하지 않고 Worker가 비는 시점까지 요청을 보관하는 Request Parking도 제공합니다.
Kubernetes와 샌드박스 계층
Kubernetes는 인프라 프로비저닝과 Worker 수명주기를 담당합니다. Agent Substrate는 Kubernetes Pod와 Pod autoscaling을 바탕으로 Actor 전용 스케줄링과 제어 기능을 추가합니다. 에이전트 실행, 추론, 학습 주기를 함께 운영해야 하는 reinforcement learning 환경에서는 Kubernetes 기반 인프라 관리와 런타임 스케줄링을 한 구조 안에서 조정합니다.
샌드박스 기술로는 gVisor와 microVM을 지원합니다. 표준 OCI 컨테이너를 커널 수준에서 관리하므로 특정 에이전트 프레임워크에 종속되지 않습니다. gVisor 실행 계층에는 ateom-gvisor가 들어가며, runsc의 checkpoint와 restore를 담당합니다. ateom-microvm은 Cloud Hypervisor 기반 microVM에서 Actor를 실행합니다.
구성 요소는 역할별로 나뉩니다. ate-api-server는 Actor와 Worker 수명주기를 관리하는 gRPC API를 노출합니다. atelet은 각 노드의 DaemonSet으로 동작하면서 물리 Worker Pod를 감독하고 스냅샷과 상태 이전을 조정합니다. atecontroller는 WorkerPool Custom Resource를 조정합니다. atenet은 Envoy 라우팅과 proxy sidecar를 포함한 네트워크 컨트롤러입니다. kubectl-ate는 Actor, ActorTemplate, Atespace, WorkerPool 같은 리소스를 다루는 CLI입니다.
지원 대상과 통합
Agent Substrate는 에이전트를 만드는 SDK가 아니라 에이전트를 대규모로 실행하는 시스템입니다. 실제 AI agent가 아닌 애플리케이션도 관리할 수 있지만, 세션 상태와 도구 호출을 보존하는 에이전트가 대표적인 사용 사례입니다.
Agent Development Kit(ADK)에서는 invocation 사이의 session state를 Actor state로 보존합니다. LangChain agent와 tool call 실행 환경으로 사용할 수 있으며, Claude Code, CodeX, Antigravity 같은 코딩 환경에서는 시스템 상태와 파일시스템 상태를 세션 사이에 유지합니다. Model Context Protocol(MCP) 서버를 안전한 샌드박스 Actor로 배포해 여러 모델이 지속형 도구를 사용하도록 구성할 수도 있습니다. Agent Executor는 Agent Substrate 위에서 보안성과 확장성을 갖춘 agent harness를 구성하는 분산 런타임 예제입니다. CNCF Sandbox 프로젝트인 kagent도 샌드박스 상태 저장 workload 실행에 Agent Substrate를 사용합니다.
로컬 데모와 클러스터 설치
로컬 재현에는 Go, kubectl, Docker가 필요합니다. hack/create-kind-cluster.sh로 Kind 클러스터와 로컬 레지스트리를 만들고, hack/install-ate-kind.sh --deploy-ate-system으로 Agent Substrate와 PostgreSQL, RustFS를 설치합니다. Counter 데모는 hack/install-ate-kind.sh --deploy-demo-counter로 배포합니다. 이후 go install ./cmd/kubectl-ate로 CLI를 설치하고, 다음처럼 Actor를 생성합니다.
kubectl ate create actor my-counter-1 -a ate-demo-counter --template counter
라우터를 로컬 8000번 포트에 연결한 뒤 ate-target-actor 헤더를 포함한 HTTP POST 요청을 보내 Counter Actor를 호출합니다. Counter 데모는 suspend와 resume 뒤에도 카운터 상태가 유지되는지, 요청에 따라 Actor를 재개하고 라우팅하는지 보여줍니다. Sandbox 데모는 Alpine Linux 샌드박스에서 임의의 shell 명령을 실행하면서 세션 사이에 파일시스템 상태를 보존합니다.
GCP 환경에서는 .ate-dev-env.sh를 설정하고 gcloud auth application-default login을 실행한 뒤 go run ./tools/setup-gcp bootstrap으로 GKE 클러스터, GCS, IAM 바인딩을 준비합니다. 이후 ./hack/install-ate.sh --deploy-ate-system으로 시스템을 배포하고 Counter나 Sandbox 데모를 설치합니다. Cloud SQL을 PostgreSQL 저장소로 사용할 때는 IAM database authentication을 이용해 비밀번호 없이 연결하는 별도 문서를 제공합니다.
Worker 용량은 ate.dev/substrate-version 노드 라벨로 버전을 관리합니다. 설치 시점에 존재하는 노드에는 라벨이 자동으로 붙지만, 나중에 추가된 노드는 설치된 버전으로 직접 라벨링해야 Worker가 배치됩니다. GKE autoscaling이나 node upgrade로 생기는 노드까지 사용하려면 Node Pool에도 같은 라벨을 설정해야 합니다.
현재 상태와 운영 문서
프로젝트는 early development 단계이며 production 사용을 준비한 상태가 아닙니다. API는 거의 확실하게 바뀔 수 있고 backward compatibility도 보장하지 않습니다. 최신 stable Kubernetes와 직전 minor release를 지원하는 것을 목표로 합니다.
저장소에는 Observability, Authentication, Egress Traffic, MITM interception, Threat Model, Rolling Upgrade, Benchmarking 문서가 포함되어 있습니다. Prometheus Adapter를 이용해 할당된 Actor 수에 따라 WorkerPool을 autoscaling하는 예제도 제공합니다. 다만 현재 저장소의 목표는 core system과 데모를 확장하는 데 있으며, 모든 외부 기여를 즉시 검토하거나 병합하지는 않는다고 안내합니다.
원문: GitHub / 번역·요약: Trawling