切换 Agent 与模型
用 profile、--agent、--model 或 --set 切换 coding-agent 入口。
同一题可以声明多个 agent_profiles,运行时换「用谁」。
先看本机装了什么
ageval executors -v关注 ACP entry 的 engine_ready / acp_entry_ready。yaml 写对了但本机没装,照样跑不起来。
配置里声明
# profiles.yaml
format: ageval.profiles/1
environment: docker
agent_profiles:
solver:
executor: acp
extensions:
- plugin: acp
options:
entry: pi
model:
id: gpt-5.4-miniACP 的 entry 写在 executor: acp 和 options.entry。包内 id 是下面的内置项。$AGEVAL_HOME/acp-entries.json(未设置时是 ~/.ageval/acp-entries.json)可以再加一个 id,不能替换包内 id。启动的进程是该 entry 钉死的包里的二进制。官方 Attempt 镜像不包含这个文件里的 entry。--agent 仍然只解析包内 id。
Agent 包(--agent)
ageval.agent/1 是 Agent 包(executor、entry、overlays)。省略 --model 时用包里的 model.id,它不是身份。
| 想做 | 写法 |
|---|---|
| 用内置包 | --agent pi。内置 pi / opencode / codex / claude-code / grok-build / openai-http / anthropic-http 随 ageval 提供,不必 install |
| 用定制 overlays 包 | 先 ageval agent install org/name@0.1.0 再绑。install 会顺带安装 binding.extensions[].plugin(contrib 跳过;缺插件或 host_requires 不满足则整条失败,不能进入运行) |
| 只改这次的模型 | --model <名>(配合 --agent;省略则用包缺省。不是 ageval results upload-suite --model,那是上传观测标签) |
--agent 与 --profiles 互斥。
ageval run examples/datasets/minimal-demo --task terminal-jsonl-agg --agent pi --model glm-4.7
ageval agent install examples/agents/dsh-default
ageval run examples/datasets/minimal-demo --task terminal-jsonl-agg --agent local/dsh-default@0.1.0临时切换(不用改文件)
ageval run examples/datasets/minimal-demo --task terminal-jsonl-agg \
--set '/agent_profiles/solver/options/entry="codex"'--set 只允许白名单指针,例如 /agent_profiles/solver/model/reasoning/effort="high"。允许的指针列在 CLI 页的 --set 表里。
api_key 永远写环境变量名,不要写密钥本身。可选 profile 字段还有 model.reasoning.effort(思考档位)、options.idle_timeout_seconds(静默上限)与 base_url。
非 ACP 的 Agent 运行时(nooa / dsh / miniswe / terminus-2 / openhands)用 --profiles 整份替换。它们以插件提供:ageval plugin install plugins/<名> 装好后,profiles 里 executor: 写对应名字,并挂上同名 plugin: 行。openhands 在 Attempt 工作区里跑固定版本的 SDK,任务说明从环境内的文件读取。