词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
batch_runner.py)处理一个由 prompt 组成的 JSONL 数据集,将每条 prompt 通过完整的 agent 会话(含工具访问权限)运行一遍。每条 prompt 都拥有独立隔离的环境。输出为结构化轨迹数据,包含完整对话历史、工具调用统计信息以及推理覆盖率指标。hermes setup --portal 完成配置,然后将 --model 指向 Nous 模型。prompt 字段:{"prompt": "Write a Python function that finds the longest palindromic substring"}
{"prompt": "Create a REST API endpoint for user authentication using Flask"}
{"prompt": "Debug this error: TypeError: cannot unpack non-iterable NoneType object"}image 或 docker_image:用于该 prompt 沙箱的容器镜像(适用于 Docker、Modal 和 Singularity 后端)cwd:任务终端会话的工作目录覆盖值| 参数 | 默认值 | 说明 |
|---|---|---|
--dataset_file | (必填) | JSONL 数据集路径 |
--batch_size | (必填) | 每批处理的 prompt 数量 |
--run_name | (必填) | 本次运行的名称(用于输出目录和断点续跑) |
--distribution | "default" | 采样所用的工具集分布 |
--model | claude-sonnet-4.6 | 使用的模型 |
--base_url | https://openrouter.ai/api/v1 | API 基础 URL |
--api_key | (环境变量) | 模型的 API 密钥 |
--max_turns | 10 | 每条 prompt 的最大工具调用轮次 |
--num_workers | 4 | 并行工作进程数 |
--resume | false | 从断点恢复 |
--verbose | false | 启用详细日志 |
--max_samples | 全部 | 仅处理数据集中前 N 条样本 |
--max_tokens | 模型默认值 | 每次模型响应的最大 token 数 |
| 参数 | 说明 |
|---|---|
--providers_allowed | 允许的供应商,逗号分隔(例如 "anthropic,openai") |
--providers_ignored | 忽略的供应商,逗号分隔(例如 "together,deepinfra") |
--providers_order | 首选供应商顺序,逗号分隔 |
--provider_sort | 按 "price"、"throughput" 或 "latency" 排序 |
| 参数 | 说明 |
|---|---|
--reasoning_effort | 推理力度:none、minimal、low、medium、high、xhigh |
--reasoning_disabled | 完全禁用推理/思考 token |
| 参数 | 说明 |
|---|---|
--ephemeral_system_prompt | 执行时使用但不保存到轨迹中的系统 prompt |
--log_prefix_chars | 日志预览中显示的字符数(默认:100) |
--prefill_messages_file | 包含 few-shot 预填充消息的 JSON 文件路径 |
--list_distributions 查看所有可用分布。data/<run_name>/:data/my_run/
├── trajectories.jsonl # 合并后的最终输出(所有批次合并)
├── batch_0.jsonl # 各批次结果
├── batch_1.jsonl
├── ...
├── checkpoint.json # 断点续跑检查点
└── statistics.json # 汇总工具使用统计trajectories.jsonl 中每行是一个 JSON 对象:{
"prompt_index": 42,
"conversations": [
{"from": "human", "value": "Write a function..."},
{"from": "gpt", "value": "I'll create that function...",
"tool_calls": [...]},
{"from": "tool", "value": "..."},
{"from": "gpt", "value": "Here's the completed function..."}
],
"metadata": {
"batch_num": 2,
"timestamp": "2026-01-15T10:30:00",
"model": "anthropic/claude-sonnet-4.6"
},
"completed": true,
"partial": false,
"api_calls": 3,
"toolsets_used": ["terminal", "file"],
"tool_stats": {
"terminal": {"count": 2, "success": 2, "failure": 0},
"read_file": {"count": 1, "success": 1, "failure": 0}
},
"tool_error_counts": {
"terminal": 0,
"read_file": 0
}
}conversations 字段使用类 ShareGPT 格式,包含 from 和 value 字段。工具统计信息经过规范化处理,所有可能的工具均以零值默认填充,确保各条记录的 schema 一致,兼容 HuggingFace 数据集格式。--resume 时,运行器扫描现有批次文件,通过实际文本内容(而非索引)匹配已完成的 prompt,即使数据集顺序发生变化也能正常恢复trajectories.jsonlbatch_*.jsonl 文件,通过内容匹配找出已完成的 prompt<REASONING_SCRATCHPAD> 或原生思考 token)的样本将被丢弃statistics.json,便于程序化分析。{"prompt": "Install numpy and compute eigenvalues of a 3x3 matrix", "image": "python:3.11-slim"}
{"prompt": "Compile this Rust program and run it", "image": "rust:1.75"}
{"prompt": "Set up a Node.js Express server", "image": "node:20-alpine", "cwd": "/app"}