> ## Documentation Index
> Fetch the complete documentation index at: https://agent-compass.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Daytona

> 使用 Daytona recipe 运行远程 sandbox session。

Daytona 提供 provider-managed remote sandbox。它适合在不占用本地计算资源的情况下，为每个任务创建远程 workspace，尤其适合 SWE-bench 和 Terminal-Bench smoke test。

## 官方设置入口

| 需求                 | 链接                                                             |
| ------------------ | -------------------------------------------------------------- |
| 创建账号和管理 sandboxes  | [Daytona Dashboard](https://app.daytona.io/)                   |
| 创建 API keys        | [Daytona API keys page](https://app.daytona.io/dashboard/keys) |
| Getting started 文档 | [Daytona documentation](https://www.daytona.io/docs/en/)       |
| API key 文档         | [Daytona API keys](https://www.daytona.io/docs/en/api-keys/)   |

## 首次设置

1. 从官方 Dashboard 创建 Daytona 账号。
2. 打开 API keys 页面，创建带 sandbox 权限的 key。
3. 在运行 AgentCompass 的 shell 中导出 key。
4. 先跑单个任务，再提高并发。

```bash theme={null}
export DAYTONA_API_KEY="..."
export DAYTONA_API_URL="https://your-daytona-api"  # optional
export DAYTONA_TARGET="your-target"               # optional
```

大多数用户只需要 `DAYTONA_API_KEY`。只有当你的 Daytona workspace 需要非默认 API endpoint 或 target 时，才设置 `DAYTONA_API_URL` 和 `DAYTONA_TARGET`。

AgentCompass 的 Daytona 鉴权优先级是：

| 来源                                   | 适用场景                         |
| ------------------------------------ | ---------------------------- |
| `environments.daytona.api_key`       | 明确把凭据放在私有 `--config` 文件中。    |
| `DAYTONA_API_KEY`                    | 推荐用于 shell session、CI 和共享脚本。 |
| `DAYTONA_API_URL` / `DAYTONA_TARGET` | 可选 endpoint 和 target 覆盖。     |

<Note>
  不要把 Daytona API key 提交到 `config/defaults.yaml`。请使用环境变量，或通过 `--config` 传入私有配置文件。
</Note>

## 验证凭据

最实用的验证方式是跑一个 AgentCompass smoke test，因为它会同时检查 credentials、sandbox 启动、recipe image 选择、文件操作和 harness 执行。

## 单个 Terminal-Bench 实例

```bash theme={null}
agentcompass run \
  terminal_bench_2 \
  terminus2 \
  your-model \
  --env daytona \
  --benchmark-params '{"sample_ids":["overfull-hbox"]}' \
  --model-base-url "$MODEL_BASE_URL" \
  --model-api-key "$MODEL_API_KEY"
```

这是推荐的 provider smoke test：只跑一个任务，并让 recipe 推导任务镜像。

## Provider 参数

常见 Daytona 覆盖项可以放在 `environments.daytona` 或 `--env-params`：

| Field                   | 作用                                      |
| ----------------------- | --------------------------------------- |
| `api_key`               | `DAYTONA_API_KEY` 的私有 config 替代方式。      |
| `api_url`               | 覆盖 Daytona API endpoint。                |
| `target`                | 覆盖 Daytona target。                      |
| `image`                 | 不希望 recipe 选 image 时，手动使用 Docker image。 |
| `snapshot`              | 使用 Daytona snapshot，加速或复用预构建环境。         |
| `delete_on_close`       | 调试 sandbox 时可设为 `false`。                |
| `sandbox_start_timeout` | 镜像或 snapshot 启动较慢时增加。                   |
| `operation_timeout`     | 文件或进程操作较长时增加。                           |
| `env_variables`         | 向 sandbox 注入非 secret 环境变量。              |

## SWE-bench Verified

```bash theme={null}
agentcompass run \
  swebench_verified \
  mini_swe_agent \
  your-model \
  --env daytona \
  --benchmark-params '{"sample_ids":["astropy__astropy-12907"]}' \
  --model-base-url "$MODEL_BASE_URL" \
  --model-api-key "$MODEL_API_KEY"
```

支持的 benchmark/provider 组合会由 recipe 设置兼容镜像和 workspace。只有明确要覆盖默认行为时才传 `--env-params`。

## 相关页面

* [执行环境概览](/zh/environments/overview)
* [Terminal-Bench remote cookbook](/zh/cookbooks/remote_benchmarks/run_terminalbench_remote)
* [SWE-bench with Daytona](/zh/cookbooks/remote_benchmarks/run_swebench_daytona)
* [配置参考](/zh/reference/configuration)
