Tako-Research/TakoVM

GitHub: Tako-Research/TakoVM

为 AI Agent 提供安全的 Python 代码执行环境,内置 Docker 隔离、作业队列、执行历史与多层安全防护的自托管沙箱平台。

Stars: 66 | Forks: 10

Tako VM

为您的 agent 提供文件系统与 Python 执行环境。内置作业队列与 Docker 隔离。已被在企业环境中部署的团队所使用。

PyPI Tests License

简体中文 | 日本語

**一个安全的文件系统,让您的 agent 能够执行代码。** 每一项作业都在其独立的 隔离 Docker 容器中运行——包含临时的 workspace、可选的 gVisor 沙箱、作业 队列、重试机制以及执行历史记录。

文档 · 快速开始 · API 参考

Demo: executing Python, installing runtime dependencies, and network isolation via the Tako VM REST 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执行环境, 代码沙箱, 任务队列, 文件系统, 测试用例, 请求拦截, 逆向工具