3步跑通Daytona沙箱:AI代码执行快速上手
2026/8/30 10:31:43 网站建设 项目流程

3步跑通Daytona沙箱:AI代码执行快速上手

【免费下载链接】daytonaDaytona is a Secure and Elastic Infrastructure for Running AI-Generated Code项目地址: https://gitcode.com/GitHub_Trending/dayt/daytona

当你需要把一段 AI Agent 生成、"不确定能不能信"的代码交给机器跑的时候,多半不敢直接在本机执行。常规思路是把它扔进一个隔离沙箱里跑,只让它碰到该碰的资源——Daytona就是干这个的开源项目:为一段 AI 生成代码,在 90 毫秒内拉起一个独立沙箱环境。

这个环境不只是"一个隔离的容器":

  • 每个沙箱拥有独立内核、文件系统与网络栈
  • vCPU、内存、磁盘单独分配,状态可以跨会话保留
  • Python、TypeScript、JavaScript 代码可以直接跑

整套流程其实就是三个角色配合:SDK 发请求、控制面调度资源、计算面把沙箱拉起来。下面直接上手。

🚀 三步跑起来:创建第一个沙箱并执行代码

前置条件就两件:在官方站点注册账号、在 Dashboard 里拿一个 API Key,以及一台能装 Python 的机器。然后分三步。

1. 安装 SDK 并准备好 Key

# 安装官方 Python SDK,Key 是一串字符串,建议用环境变量注入 pip install daytona

装完命令行客户端就就绪了,这个 Key 会在下一步用来做接口鉴权。

2. 非交互式地创建沙箱

创建过程只需要一次create()调用,不用进终端逐项手工配置:

# 初始化客户端,向平台发起创建沙箱请求 from daytona import Daytona, DaytonaConfig daytona = Daytona(DaytonaConfig(api_key="YOUR_API_KEY")) sandbox = daytona.create() print(sandbox.id)

运行后会打印出一个沙箱 ID,相当于拿到了房间的钥匙——沙箱已经就位,内核和磁盘都是现成的。

3. 在沙箱里执行代码并取回结果

# 在沙箱内执行一行 Python,并把输出取回本地 response = sandbox.process.code_run('print("Hello Daytona!")') print(response.result)

终端会打印Hello Daytona!,说明代码跑在隔离沙箱里而不是本机。TypeScript 版同理:npm install @daytona/sdk之后 API 形态与 Python 几乎一一对应。

🔍 拆解设计:沙箱的隔离到底来自哪里

创建沙箱很像从预制模板里开一间房:房间"户型"由平台提前装好——内核、磁盘、网络全都接好了,你调用create时系统只是从货架上取一间再递给你钥匙,没有"现场施工"环节,这也是 90ms 级速度的底气。Daytona 把系统拆成三个平面,分工写在 README.md 的架构章节里:

组成部分职责类比
Interface plane(接口面)提供 SDK、REST API、CLI 等客户端入口前台,接单并递钥匙
Control plane(控制面)编排所有沙箱操作:创建、销毁、调整物业系统,决定给你哪间房
Compute plane(计算面)实际运行并管理沙箱实例房间本体,代码在这里跑

换句话说,SDK 对话的是"前台",而不是房间本身。官方提供的工具链也分成四类:

  • Platform:组织管理、API Key、资源限额、审计日志
  • Sandboxes:环境配置、快照、声明式构建、Volume
  • Agent tools:进程与代码执行、文件操作、Git 操作、MCP server
  • Human tools:Web 终端、SSH、VNC、预览页面

你会发现,隔离不是"容器里跑个进程",而是独立内核、独立网络的完整"虚拟电脑",这也是为什么敢直接放不可信代码进来。

🎛️ 调配置:设置资源配额与网络策略

沙箱跑起来之后,日常最常碰的是几个开关。官方文档把它们分好类了,下表是提炼版(具体数值以官方文档的 Limits、Network limits 页面为准):

配置项作用默认示例
基础镜像决定沙箱初始系统与预装语言Python / TS / JS 官方镜像python
资源配额单个沙箱的 vCPU、内存、磁盘按实例分配(受平台限额约束)2 vCPU / 4GB
网络策略控制沙箱对外出流量平台默认限制出站白名单
快照 Snapshot保存沙箱文件系统状态不保存销毁前存档,下次会话恢复
Volume挂载持久化外部存储不挂载跨沙箱复用的数据

两个值得试的场景:

用快照保存状态,让环境不丢

沙箱随手可销毁,但环境搭建很贵。销毁前先对当前状态打个快照,下次基于快照新建,装好的包、改过的文件原样回来。再配合 Volume,连需要跨多个沙箱共享的数据都有了去处。

绕过 SDK 直接调 REST API

如果你的集成场景不想依赖 SDK,用一条 HTTP 请求也能创建沙箱:

# 直接 POST 创建沙箱,不经过 SDK curl -X POST 'https://app.daytona.io/api/sandbox' \ -H 'Authorization: Bearer <YOUR_API_KEY>' \ -H 'Content-Type: application/json' \ -d '{}'

返回成功即沙箱已创建,响应 JSON 里的 ID 可直接用于后续的文件操作和进程执行。

⚠️ 避坑指南:新手高频问题四问

问题回答
README 写着"不再维护",还能用吗?能用。自 2026 年 6 月起核心开发转入私有代码库,但仓库保持公开,可自由使用、fork 和二次开发,现有功能不受影响。
不想写代码,能不用 SDK 管理沙箱吗?可以。CLI 一条daytona create就能建沙箱,也可以直接 POST REST API,入口不同、结果一致。
销毁沙箱后环境就没了?不一定。销毁前用快照保存环境,下次从快照恢复;需要跨沙箱保留的数据放 Volume。
沙箱支持哪些语言?官方支持 Python、TypeScript、JavaScript,且有预构建基础镜像,不用自己搭环境。

📚 找资源:文档与源码入口

仓库内的核心内容是项目说明与快速上手指引,想继续深挖看这几处就够了:

  • 项目介绍、功能矩阵与多语言 Quick Start:README.md
  • SDK 与 API 客户端包说明(Python、TypeScript、Ruby、Go、Java):README.md 的 Client libraries 章节
  • 克隆源码到本地:git clone https://gitcode.com/GitHub_Trending/dayt/daytona
  • 品牌素材(黑白 Logo 源文件):assets/images/

沙箱跑起来之后,剩下的事就是给你的 AI Agent 接上这条执行通道——从第一行code_run开始,都是你自己的业务了。

【免费下载链接】daytonaDaytona is a Secure and Elastic Infrastructure for Running AI-Generated Code项目地址: https://gitcode.com/GitHub_Trending/dayt/daytona

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询