SuperAPI AI 工具集

daytona-integration

部署与运维

查看项目

更新于 10-16 02:45

技能介绍

Daytona Integration 是一个围绕 Daytona TypeScript SDK 的集成技能,主要用于沙箱(Sandbox)生命周期管理。资料显示其来源为 Daytona TypeScript SDK 文档,安装命令为 npm install @daytonaio/sdk。

用途 该技能适用于在代码中管理 Daytona 沙箱的场景,包括创建与销毁沙箱、在沙箱中执行命令、运行代码、管理文件、启动后台服务与预览服务器,以及并行运行多个沙箱等。资料中提到的典型使用对象包括 SandboxManager,以及需要为多个 agent 分配独立沙箱的工作流。

主要能力

  1. SDK 初始化与认证:通过 new Daytona({...}) 创建实例,支持 apiKey 或 jwtToken 两种认证方式之一;可配置 apiUrl(默认 https://app.daytona.io/api)、target 区域偏好,使用 JWT 时需提供 organizationId。
  2. Daytona 类方法:create() 创建沙箱,支持 language、envVars、autoStopInterval、autoArchiveInterval、autoDeleteInterval、labels、ephemeral、volumes、image、resources、snapshot 等参数;get() 按 ID 或名称获取;list() 支持按标签过滤与分页;findOne() 查找首个匹配沙箱;delete() 永久删除;start()/stop() 启动与停止。
  3. Sandbox 对象:提供 id、name、state、cpu、memory、disk、gpu、env、labels 等属性,以及 process、fs、git 接口;方法包括 start/stop/delete/archive/recover、refreshData、waitUntilStarted、waitUntilStopped、setLabels、setAutostopInterval、setAutoDeleteInterval、setAutoArchiveInterval、getWorkDir、getUserHomeDir、getPreviewLink、getSignedPreviewUrl。
  4. Process 命令执行:executeCommand() 执行 shell 命令,可指定 cwd、env 与超时;codeRun() 使用对应运行时执行代码;会话式执行支持 createSession、executeSessionCommand、getSessionCommandLogs 流式回调与 deleteSession;PTY 支持 createPty、connectPty、resizePtySession、killPtySession。
  5. FileSystem:downloadFile、uploadFile、listFiles、createFolder、deleteFile(支持递归)、getFileDetails、searchFiles、findFiles。
  6. 实践模式:并行创建多个沙箱(如 4 个 agent)、通过 tar 打包在沙箱与本地之间传输文件、网络错误重试(ECONNRESET、ETIMEDOUT、ENOTFOUND、EAI_AGAIN、socket hang up,指数退避 5s/10s/20s)、预览配置缓存、预览会话复用、服务器健康检查轮询、CLI 安装模式等。

使用方式 先安装 @daytonaio/sdk,再使用 API Key 或 JWT 初始化 Daytona 实例,然后调用 create() 创建沙箱,通过 sandbox.process 执行命令或代码,通过 sandbox.fs 管理文件,通过 getSignedPreviewUrl 获取预览地址。资料特别提示:executeCommand() 在 timeout=0 时不会正确运行后台服务器,后台进程应使用会话式执行(createSession + executeSessionCommand,async: true)。

适用场景 适合需要在隔离沙箱中运行命令、代码、后台服务与预览服务器的开发与自动化流程,尤其是多 agent 并行执行、沙箱间文件传递、预览服务管理等场景。

限制 资料未提供收费、价格、平台支持范围、性能指标或效果保证等信息。部分参数默认值、超时行为与错误码以资料所述为准;实际使用需参考 Daytona 官方文档。