Seven gVisor SandboxAgents I built on Viper.
Not plain Agent Deployments. The
handbook is still
the full map — this page is the one I send people.
01
Why gVisor sandboxes
A normal kagent Agent is a Kubernetes Deployment:
always on, same isolation as any other pod. Fine for a cluster helper.
These agents talk to a firewall, a cloud bill, or a ticket system.
The model gets a filesystem, memory, and a network for the whole chat.
Substrate puts that session in a gVisor actor
(SandboxAgent) on WorkerPool kagent-default.
Isolated sandbox. gVisor is the wall between the model session and the Viper/k3s host. Tools still call out through an MCP pod; secrets stay in Vault, not in the actor.
Idle chats snapshot (zstd) and free the worker. Next message restores the same session.
No always-on pod per conversation. Golden snapshot you can resume.
Tradeoff on this lab: nested gVisor on dockerized k3s.
Snapshots are in-cluster rustfs today (gs:// is a URI prefix only), not GCS.
Do not bump kagent past 0.10.0-rc2 or Substrate past 0.0.9.
kagent UI is LAN-only.http://172.16.10.135:30500/ is not on this public Pages site.
LAN-only. Not published on this GitHub Pages site.
02
The agents
All seven are gVisor SandboxAgents. Cards with a photo use a real
Chromium chat shot. hello-substrate, fortigate, and f5-bigip have no live shot in git — I am not inventing one. arista-ceos uses the 2026-08-17 kagent capture.
Confirmed through the sandbox A2A path. Not invented.
Active this page
25 (13 P1 / 4 P2 / 5 P3 / 3 P5)
Unassigned P1
INC0007001 payroll
VPN
INC0000015
DNS leak
INC0000016
Live kagent UI, 2026-08-16. Open-ticket summary by priority, then VPN INC0000015 and DNS INC0000016. Chromium capture, not reconstructed.Live capture of that same chat scroll. Real kagent SPA on Viper — not a reconstructed reel.
No generic shell. No incident create, close, or delete.
Writes (sn_add_work_note, sn_assign_incident) exist but the agent must ask first.
Never commit ServiceNow password or username values. Vault path name only.
Confirmed through the sandbox A2A path. Not invented.
VMs us-east1
0
CPUs
0/200
Instances
0/24
Live kagent UI, 2026-08-16. Billing/budgets/MTD unavailable; 0 VMs in us-east1. Chromium capture, not reconstructed.
First live Q1: ImportError billing_budgets_v1. After rebuild, Cloud Billing returned Unauthenticated. Trail budget $1 was not returned. I am not inventing spend.
Cloud Billing does not return month-to-date spend. Tools say unavailable. No generic “run any gcloud” tool.