运行

用插件换 Agent 或环境

装插件,在 profiles 里切一行,同一份 dataset 原样跑。

换 Agent 或环境不必改 dataset:装上对应插件,在 profiles.yaml 里切换。

默认走 ACP(pi / Codex / Claude Code / OpenCode)。dsh、nooa、miniswe、terminus-2、openhands 也是同一类插件。把 environment: docker 换成 e2b / ssh / daytona 时,ACP 的 profiles 只改环境那一行。

安装

ageval plugin install plugins/nooa
# 或:ageval plugin install plugins/dsh
# 或:ageval plugin install plugins/miniswe   # 模型在本机,bash 走 environment.exec
# 或:ageval plugin install plugins/terminus-2  # 模型在本机,tmux 走 environment.exec
# 或:ageval plugin install plugins/openhands  # Attempt 环境内的固定版本 SDK
# 或:ageval plugin install plugins/acp-oneshot  # 环境内一次性 ACP client+server,只要 exec
ageval plugin list

安装只更新 $AGEVAL_HOME/plugins(默认 ~/.ageval/plugins),不会改写 profiles.yaml、ageval.yaml 或 task.yaml。

plugin.yaml 可写 description:一段功能说明,Hub 插件详情画在 Install (CLI) 上方。Markdown 链接([text](https://…))会渲染成可点的链接。

卸载:

ageval plugin uninstall nooa

在配置里切换

# profiles.yaml
format: ageval.profiles/1
environment: local
agent_profiles:
  solver:
    executor: nooa
    extensions:
      - plugin: nooa
        options:
          agent: "lib.agents:JsonlAggAgent"
          method: "run"

executor: 选出这份配置里的 Agent。插件自己的选项写在该插件的 extensions 行上。docker 的镜像层由环境在启动时写入。ACP 的 entry 写在 - plugin: acp / options.entry;该 entry 会写入镜像,换模型不重建。

用另一份 profiles 切换,不必改 dataset:

ageval run examples/datasets/minimal-demo --task terminal-jsonl-agg \
  --profiles examples/datasets/minimal-demo/profiles.nooa.yaml

ageval lock 把解析后的扩展图写入摘要中的 extension_bindings。缺能力或凭证时检查不过,不会开始跑。

ageval run examples/datasets/minimal-demo --task terminal-jsonl-agg \
  --profiles examples/datasets/minimal-demo/profiles.dsh.yaml --probe

--probe 按 environment 检查本机能否开这个环境:host_requires、Docker daemon(docker)、locator 名。缺项则非零退出,这次运行不会开始。

装上不等于能跑

你看到的含义
install / list本机认得这个插件
本机具备条件声明的 host_requires 满足,能在本机构造
profiles 绑定这份配置选了该 executor / environment
写入镜像docker 下 image_layers 存在且已写入

ageval executors.host_ready 不是「已安装」也不是「镜像层已写入」。已安装但未写入 extensions 的插件不会进这次运行的镜像。

和 ACP 的关系

默认 coding-agent 路径仍是 executor: acp + options.entry(parent JSON-RPC,要 attach_stdio)。acp-oneshot 是另一条路径:环境内一次性 client+server,只要 exec。插件是可选的;同一份 dataset 只靠 profiles 切换。miniswe 把模型放在本机,bash 只经 environment.exec。terminus-2 同样把模型放在本机,在环境里开 tmux 窗格;环境里没有 tmux 时由插件安装。缺 exec 则 lock 失败。openhands 在 Attempt 工作区里跑固定版本的 SDK(exec、upload、download)。任务说明放在环境内的文件里。

PASS 仍只来自 evaluator.py。

想自己写一份插件?

npx skills add ZJU-REAL/ageval --skill ageval-plugin

上面各节是使用已有插件。想自己写 ageval.plugin/1(plugin.yaml、README 里的能力表和参数表),装好后把要接的能力和参数说给本机 coding agent 即可;手写也可以,格式约定看 skill。

本页目录