> ## Documentation Index
> Fetch the complete documentation index at: https://opencompass-docs-preview-pr-335-0.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 保存与准备产物

保存任务 Environment 中生成的文件，方便你在本地检查，或在评测时恢复使用。AgentCompass 通常使用 Benchmark 声明的路径和准备命令；需要改变保存内容或提交准备方式时，再设置覆盖值。

答案、轨迹、指标和 runtime 日志属于正常的[评测结果](/zh/user_guide/other_features/results/overview)。本页参数控制的是从任务 Environment 额外传输出来的文件。

## 保存文件到本地

即使评测复用执行 Environment，你也可以在配置中加入以下设置，保存 Benchmark 声明的文件：

```yaml theme={"system"}
execution:
  save_artifacts: true
```

通过 `--config` 加载该文件，或在已有运行命令中添加 `--execution-params '{"save_artifacts":true}'`。Benchmark 必须支持产物收集。保存的文件位于本地 attempt 的 `artifacts/` 目录，具体位置见[结果目录结构](/zh/user_guide/other_features/results/overview#目录布局)。

保存文件不会保留运行中的 sandbox。需要检查 Environment 本身时，请使用 [`--keep-environment`](/zh/user_guide/using_agentcompass/run_controls#保留-environment-以便调试)。

## 理解保存与恢复行为

Environment 的评测模式决定默认行为：

| 评测模式 | 默认保存行为 | 评分如何使用文件 |
| - | - | - |
| `fresh` | 保存已声明产物，必须启用保存。 | 将产物恢复到新的评测 Environment。 |
| `reuse` | 仅在 `save_artifacts=true` 时保存。 | 使用执行 Environment 中已有的文件。 |
| `none` | 仅在 `save_artifacts=true` 时保存。 | 不创建评测 Environment。 |

不填写 `save_artifacts` 或将其设为 `null` 时，使用该模式的默认值。禁用下载不会跳过已声明的准备命令或 Harness 结果收集。模式配置见[评测环境](/zh/user_guide/modules/environments/configuration/overview)。

## 自定义提交文件

了解 Benchmark 评分器需要哪些文件后，再覆盖路径或准备命令。两份列表都会替换 Benchmark 的声明，因此要在替换列表中保留所有必需的原有条目。

| 字段 | 未填写或为 `null` | 显式列表 |
| - | - | - |
| `artifacts` | 继承已声明路径。 | 替换额外路径，始终包含 `/logs/artifacts/`；`[]` 只选择该目录。 |
| `artifact_collect` | 继承准备命令。 | 替换按顺序执行的命令；`[]` 清空列表。 |

例如，你的 Benchmark 需要 `/app/submission.tar.gz`，而 agent 将提交内容写在 `/app/submission` 下，可以这样准备并保存归档：

```yaml theme={"system"}
execution:
  save_artifacts: true
  artifacts:
    - source: /app/submission.tar.gz
      destination: submission.tar.gz
  artifact_collect:
    - command: "tar -czf /app/submission.tar.gz -C /app submission"
      timeout_seconds: 120
```

命令在 agent 执行后运行，先在任务 Environment 中生成归档，再由 AgentCompass 保存到本地的 `artifacts/submission.tar.gz`。fresh 评测会将其恢复到原来的 `source` 路径。

`source` 使用 sandbox 内的绝对路径，`destination` 使用本地相对路径。可选的 `exclude` 列表按模式过滤文件。准备命令在 Environment 的默认工作目录执行；涉及任务专属位置时，请使用绝对路径或显式 `cd`。缺失的源路径会记录到产物清单，不会使收集失败。

## 限制准备与传输

提交准备或大文件传输超过默认预算时，可以调整这些限制：

```yaml theme={"system"}
execution:
  artifact_collect_timeout_seconds: 300
  artifact_limits:
    timeout_seconds: 1800
    max_mb: 32768
    max_files: 100000
```

这允许整组准备命令使用 300 秒、每次整批传输使用 1,800 秒，并将大小上限设为 32 GiB。每条命令仍使用自己的 `timeout_seconds`，如上面的提交示例所示。

| 字段 | 默认值 | 限制什么 |
| - | - | - |
| `artifact_collect_timeout_seconds` | `null` | 全部准备命令的总时长；`null` 表示不设整组时限。 |
| `artifact_collect[].timeout_seconds` | `60` | 单条准备命令。 |
| `artifact_limits.timeout_seconds` | `600` | 一次整批下载或恢复，所有已声明文件共享该时限。 |
| `artifact_limits.max_mb` | `16384` | 每次收集或恢复的总大小，单位为 MiB；同时限制每个传输归档，包含归档开销。 |
| `artifact_limits.max_files` | `100000` | 每次收集或恢复的文件与目录条目数量。 |

准备命令与整组时限中，先到的限制生效。整批下载和后续恢复分别开始传输计时；默认各可使用 600 秒。跳过的传输不消耗预算。这些限制不会延长[整次评测的总时限](/zh/user_guide/using_agentcompass/timeouts)。

准备或传输失败会保留已验证文件和执行诊断，但跳过本次 attempt 的评分以及可恢复评测 checkpoint 的创建。增大限制前，先检查任务 issues 和传输进度。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.