agentland 是一个面向 AI Agent 的 Kubernetes 沙箱运行时平台,支持 Sandbox as Tool 和 Agent IN Sandbox 两类场景。通过统一的 Gateway API 暴露能力,提供 Python SDK 和 MCP。
agentland 提供两种主要 Kubernetes 自定义资源定义(CRD),各自对应两类应用场景 CodeInterpreter(通用工具沙箱)和 AgentSession(Agent 运行时沙箱),可通预热池实现沙箱亚秒级启动。
系统由三个核心组件和一组控制器/CRD 组成。
- Gateway:接收外部 HTTP 请求
- AgentCore(controller manager + gRPC):创建 CR 并等待就绪,将 CR 收敛为
Sandbox与 Pod 状态 - Korokd:运行在 CodeInterpreter Sandbox Pod 内,负责代码执行、文件操作、浏览器操作和鉴权功能。
你可以使用 Helm 直接安装 agentland。当前 chart 路径为
charts/agentland,资源名使用统一前缀策略,执行
helm install agentland ... 时会生成 agentland-* 资源名。
安装或升级 Helm release
helm upgrade --install agentland charts/agentland \
-n agentland-system \
--create-namespace部署预热池
kubectl apply -f config/samples/agentland_v1alpha1_sandboxpool.yaml安装完成后,你可以用以下命令检查核心资源是否就绪。
kubectl -n agentland-system get pods
kubectl -n agentland-sandboxes get pods项目提供 Python SDK 和本地 MCP Server。
安装 SDK 后,可以直接启动 MCP Server:
--base-url 填入 agentland-gateway 的 URL
pip install agentland
agentland mcp --transport stdio --base-url http://127.0.0.1:8080 --timeout 30也可以通过环境变量设置默认网关地址与超时:
export AGENTLAND_BASE_URL=http://127.0.0.1:8080
export AGENTLAND_TIMEOUT=30
agentland mcp --transport stdio代码执行示例:
from agentland.sandbox import Sandbox
Sandbox.configure(base_url="http://127.0.0.1:8080", timeout=30)
# 1) 创建代码执行沙箱
sandbox = Sandbox.create()
# 2) 创建执行上下文
context = sandbox.context.create(language="python", cwd="/workspace")
# 3) 第一次执行:定义变量 x
first = context.exec("x = 41")
print(first.stdout)
# 4) 第二次执行:直接访问上一次 exec 定义的变量 x
second = context.exec("print('x + 1 =', x + 1)")
print(second.stdout)
# 5) 删除 context
context.delete()文件操作示例:
from agentland.sandbox import Sandbox
Sandbox.configure(base_url="http://127.0.0.1:8080", timeout=30)
# 1) 创建代码执行沙箱
sandbox = Sandbox.create()
# 2) 在 sandbox 内写入文件
sandbox.fs.write("/workspace/data.txt", "line1\nline2")
# 3) 读取该文件内容
file_resp = sandbox.fs.read("/workspace/data.txt", encoding="utf8")
# 4) 打印读取结果
print(file_resp.get("content", ""))浏览器操作示例:
浏览器操作使用 agent-browser 实现
from agentland.sandbox import Sandbox
Sandbox.configure(base_url="http://127.0.0.1:8080", timeout=30)
# 1) 创建代码执行沙箱
sandbox = Sandbox.create()
# 2) 创建 bash context
bash_context = sandbox.context.create(language="bash", cwd="/workspace")
# 3) 在同一个 context 内执行 agent-browser 帮助命令
help_resp = bash_context.exec("agent-browser --help")
print(help_resp.stdout)
# 4) 删除 bash context
bash_context.delete()控制面 API Group 为 agentland.fl0rencess720.app/v1alpha1。
CodeInterpreter:代码执行会话资源AgentRuntime:可复用的 Agent 运行时模板,Agent 应用的镜像在此定义AgentSession:通用 Agent 会话资源,引用AgentRuntimeSandbox:与实际运行 Pod 一一对应SandboxPool:预热 Pod 池SandboxClaim:从预热池中分配沙箱的请求
如果你需要回收 Helm 部署资源,先卸载 release,再按需删除命名空间。
helm uninstall agentland -n agentland-system
kubectl delete ns agentland-sandboxes --ignore-not-found=trueagentland 采用 Apache License 2.0 开源许可证发布