Tako-Research/TakoVM
GitHub: Tako-Research/TakoVM
为 AI Agent 提供安全的 Python 代码执行环境,内置 Docker 隔离、作业队列、执行历史与多层安全防护的自托管沙箱平台。
Stars: 66 | Forks: 10
为您的 agent 提供文件系统与 Python 执行环境。内置作业队列与 Docker 隔离。已被在企业环境中部署的团队所使用。
简体中文 | 日本語
**一个安全的文件系统,让您的 agent 能够执行代码。** 每一项作业都在其独立的
隔离 Docker 容器中运行——包含临时的 workspace、可选的 gVisor 沙箱、作业
队列、重试机制以及执行历史记录。
文档 · 快速开始 · API 参考
```
# 安装(需要 Docker + Python 3.10+)
pip install "tako-vm[server]"
tako-vm setup # pull the executor Docker image
tako-vm server # start server (auto-starts PostgreSQL via Docker)
```
```
# 执行代码
curl -X POST http://localhost:8000/execute \
-H "Content-Type: application/json" \
-d '{"code": "print(1 + 1)"}'
```
## 为什么选择 Tako VM?
像 [e2b](https://e2b.dev)、[daytona](https://daytona.dev) 和 [microsandbox](https://github.com/microsandbox/microsandbox) 这样的沙箱解决方案虽然提供了隔离的代码执行环境——但也仅此而已。您仍然需要自行构建:
| 您需要构建的内容 | 仅使用沙箱方案时 | 使用 Tako VM 时 |
|-----------|-------------------|--------------|
| 作业队列 | Redis + Celery/Bull | 内置 |
| 执行历史 | Postgres + schema | 包含 PostgreSQL |
| 重试逻辑 | 自定义代码 | 自动 |
| 幂等性 | 去重逻辑 | `idempotency_key` |
| 重放/调试 | 自定义工具 | Rerun/fork API |
**Tako VM 是完整的解决方案:**
- **作业队列 + worker** - 带有 worker 池的异步执行,无需设置 Redis/Celery
- **执行历史** - 每一项作业都会持久化保存其 stdout、stderr、执行耗时以及 artifacts
- **重放调试** - 使用完全相同的代码和输入重新运行过去的作业
- **Docker 隔离** - 每个作业都在带有 seccomp 过滤的独立容器中运行
- **网络隔离** - 默认无网络访问,可按作业类型设置可选的 allowlist
- **自托管** - 运行在您的机器上,支持离线运行,单次执行成本为零
## CLI
```
tako-vm setup # Pull executor image and verify Docker
tako-vm server # Start the API server
tako-vm server --port 9000 # Custom port
tako-vm dev up # Start local PostgreSQL for development
tako-vm dev up --with-server # Start PostgreSQL + API server
tako-vm dev status # Check local PostgreSQL status
tako-vm dev down # Stop local PostgreSQL
tako-vm config # Show current configuration
tako-vm config --json # Output as JSON
tako-vm validate # Validate current config
tako-vm validate my.yaml # Validate specific file
tako-vm status # Check server health
tako-vm version # Show version
tako-vm --config my.yaml server # Use specific config file
```
## 文档
| 主题 | 链接 |
|-------|------|
| 安装 | [docs/getting-started/installation.md](docs/getting-started/installation.md) |
| 快速开始 | [docs/getting-started/quickstart.md](docs/getting-started/quickstart.md) |
| 配置 | [docs/getting-started/configuration.md](docs/getting-started/configuration.md) |
| REST API | [docs/api/rest.md](docs/api/rest.md) |
| Python SDK | [docs/api/sdk.md](docs/api/sdk.md) |
| 作业类型与环境 | [docs/guide/environments.md](docs/guide/environments.md) |
| 安全性 | [docs/deployment/security.md](docs/deployment/security.md) |
| 部署 | [docs/deployment/how-to-deploy.md](docs/deployment/how-to-deploy.md) |
| 配置参考 | [tako_vm.yaml.example](tako_vm.yaml.example) |
## 安全性
Tako VM 会运行不受信任的(通常是 AI 生成的)代码,因此隔离是项目的核心。它采用了多层防御:gVisor(用户态 kernel)、每个作业独立的临时 Docker 容器、默认拒绝的 seccomp profile、网络隔离(默认为 `--network=none`)、capability dropping、非 root 执行,以及强制的资源和输入限制。
对于生产环境中的不可信工作负载,请设置 `security_mode: strict` 和 `container_runtime: runsc`。如果 gVisor 不可用,默认的 `permissive` 模式会回退到标准的 Docker(`runc`),这会移除用户态 kernel 边界。
请参阅 [SECURITY.md](SECURITY.md) 了解威胁模型和强化指南,并参阅 [docs/deployment/security.md](docs/deployment/security.md) 获取完整详情。
**发现了漏洞?** 请通过 [Security 选项卡](https://github.com/Tako-Research/TakoVM/security) → **Report a vulnerability** 私下报告。请不要公开提交 issue 来报告安全发现。
## 联系方式
有问题、反馈或合作意向?请联系 [seiji@intencion.io](mailto:seiji@intencion.io)。
## 开源协议
Apache License 2.0
标签:AI智能体, Docker隔离, Python执行环境, 代码沙箱, 任务队列, 文件系统, 测试用例, 请求拦截, 逆向工具