Skip to main content
自定义 Sandbox Agent 需要声明 CLI 的名称、版本和安装方式。NiceEval 会先检查 Sandbox 里的 CLI。版本不匹配时,NiceEval 会安装指定版本,然后再检查一次。

声明 CLI 身份和安装方式

Node.js CLI 可以使用 createNpmCliInstaller。下面的代码把 npm 包 my-agent@1.0.0 接入自定义 Adapter:
这个示例约定 my-agent run --json 输出一个 OpenAI Responses 兼容的 JSON 对象。turnFromResponses 会把其中的 output 项与 usage 转成 NiceEval 的 Turn;如果 CLI 输出的是另一套 schema,就把这一行替换成对 eventsstatususage 的显式映射。 identity.version 是 CLI 的精确版本。同一版本的安装步骤变化时,同时更新 identity.revision。不要在这里使用 latest setup 只写鉴权和运行配置。CLI 安装由 installer 负责,因此每个 Attempt 都会先完成版本检查。

在实验中运行

把 Agent 和 Sandbox Provider 放进实验:
普通 npm 包要求 Sandbox 提供 Node.js 与 npm。createNpmCliInstaller 在宿主机打包、上传,再在 Sandbox 内执行 npm install -g。Sandbox 如果已有正确版本,NiceEval 会直接使用它。只有真正自包含的 platformPackage 才能省掉这项运行时前置条件。

检查安装失败

安装或复检失败时,Attempt 会在 agent.ensure 阶段变成 errored。终端会给出 Attempt 定位符。
先检查错误里的包名、版本和目标平台。修正 identity、npm 包或安装步骤后,重新运行原命令。

选择其他安装模式

AgentInstaller 还支持两种模式:
  • sandbox-network 允许 Sandbox 使用自己的网络安装 CLI。只在题目明确允许这种网络访问时使用。
  • verify-only 只接受预装的精确版本。检查失败时,Attempt 会直接报错。
这两种模式需要自己提供 AgentInstaller。完整字段见 defineSandboxAgent 参考