> ## Documentation Index
> Fetch the complete documentation index at: https://docs.veadk.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 运行评测实验

`eval run` 是串联评测闭环的核心命令：它以一个评测集、一个或多个评估器，对一个已部署的运行时（评测目标）提交一次实验。评测集、评估器与目标均可用 ID 或名称指定，字段映射默认自动完成。

```bash lines theme={null}
agentkit eval run --dataset qa-set --evaluator 相关性 --target my-agent
```

## 标志与参数

| 标志/参数 | 说明 | 默认值 |
| - | - | - |
| `--dataset <id\|name>` | 评测集 ID 或名称（必填） | 无 |
| `--evaluator <id\|name>` | 评估器 ID 或名称，可重复指定多个 | 无 |
| `--target <runtime name\|id>` | 被评测的已部署运行时，即评测目标（必填） | 无 |
| `--name <name>` | 实验名称 | `<数据集>-<时间戳>` |
| `--concurrency <n>` | 并发执行的用例数 | `5` |
| `--map <spec>` | 覆盖字段映射，可重复，语法见下 | 自动 |
| `--dry-run` | 仅打印将提交的请求，不真正发起实验 | `false` |
| `-p, --project <name>` | 项目名称 | `default` |
| `--json` | 输出原始 JSON | `false` |

## 自动字段映射

一次实验中有三层数据需要对齐：评测集字段 → 目标输入与输出 → 评估器输入。`eval run` 会按约定自动连接：

* 目标运行时约定以 `user_input` 为输入字段、`actual_output` 为输出字段；评测集的主输入字段（如 `input`）会传入目标的 `user_input`。
* 评估器中表示模型答案的字段（如 `output`）取自目标输出 `actual_output`；其余字段（如 `input`、`reference_output`）按同名从评测集取值。

多数场景无需手动映射。当字段名不一致时，用 `--map` 覆盖。

### `--map` 语法

| 形式 | 含义 |
| - | - |
| `评估器字段=数据集字段` | 评估器输入取自数据集字段 |
| `评估器字段=target:目标输出` | 评估器输入取自目标输出字段 |
| `target:目标输入=数据集字段` | 目标输入取自数据集字段 |

```bash lines theme={null}
agentkit eval run --dataset qa-set --evaluator 相关性 --target my-agent \
  --map "output=target:actual_output" \
  --map "target:user_input=question"
```

## 提交前先核对

建议首次运行前加 `--dry-run`，确认解析出的评测集版本、目标与字段映射无误：

```bash lines theme={null}
agentkit eval run --dataset qa-set --evaluator 相关性 --target my-agent --dry-run
```

<Note>
  实验要求评测集有一个已提交的版本。若评测集只有未提交的草稿，`eval run` 会在提交前自动发布一个版本，版本管理无需手动介入。
</Note>

提交成功后返回实验 ID，可用 [`eval experiment get`](/productions/agentkit-cli/archives/0.50.1/zh/commands/eval/experiment) 跟踪：

```bash lines theme={null}
agentkit eval run --dataset qa-set --evaluator 相关性 --target my-agent --json
# → { "experimentId": "75901...", "name": "qa-set-2026-07-03-12-16-21" }
```
