目的:用固定输入检查实际部署智能体是否能接收文件、执行任务、登记产物、恢复观察,并记录可核查结果。它是小规模验收,不是“优于原始 Qwen”的对比实验,也不代表覆盖 125 个科学问题。
| 用例 | 固定输入 | 自动检查 | 必须人工检查 |
|---|---|---|---|
| data | 有重复和缺失值的 6 行 CSV | 行数、去重数、缺失数、组均值、总体均值、实际清洗行与输入逐行比对、独立重算、产物存在 | 处理解释是否合理 |
| qa | 有版本覆盖和未知信息的合成政策 | 当前值、来源版本、未知字段为 null、引文逐字对照来源、产物存在 | 引文是否支持答案,是否正确区分冲突与版本替换 |
| software | 明确的函数行为和四个边界输入 | 输出案例值及源码/测试文件存在 | 审阅后在独立沙箱执行测试;脚本不执行生成代码 |
| research | 含混杂因素、反例和测量规范的合成证据 | 证据 ID、逐字引文、禁止因果夸大/伪称模拟的字段、产物存在 | 假设可证伪性、反证处理、计划可执行性;不是科学真实性证明 |
自动检查逐项记录通过/未通过和分子分母,不生成综合质量总分。它们不等权代表科研质量,也不保证 JSON 声明与报告一致。人工项初始为 not_reviewed;quality_score 保持 null。任务状态、是否取得产物、已报告 tokens/费用、从提交开始的观察墙钟时间单列。费用缺失为 null;服务端报告 0 不足以证明免费。初轮 correction_rounds=0;后续修订需单独保存 run_id、父版本、反馈与评分,不能覆盖首轮并当成首轮成功。
需要本仓库开发依赖、运行中的 PaaS/执行服务、已部署的目标智能体,以及 AGENTPAAS_URL / AGENTPAAS_API_KEY(或已有本机配置)。不要把凭证写进本目录。智能体必须实际具有输入读取和产物写出能力;不要只按名称猜能力。
从 OpenCode 仓库根目录:
# 无网络、无模型调用,查看完整用例与标准
bun script/accept-agentpaas.ts
# 只读实际目录,选定 agent_id
bun script/accept-agentpaas.ts --catalog
# 一次只运行一个用例;output 的父目录必须存在,目标目录必须不存在
bun script/accept-agentpaas.ts --run --case data --agent-id ag_实际ID \
--model-label 部署中实际模型版本 --output /tmp/paas-data-01 --wait-seconds 120
# 未结束、等待审批或观察断开后,只恢复原任务,不重复上传或提交
bun script/accept-agentpaas.ts --resume --output /tmp/paas-data-01 --wait-seconds 120
替换 --case 为 qa/software/research,分别选择适合该能力的智能体和新的输出目录。默认不探测模型;--probe-model 会额外发起小额模型请求,消耗由服务端计量。--model-label 是操作者记录的版本,脚本不会谎称已自动验证它,应先与部署配置核对。
脚本使用实际 OpenCode 桥接工具,先检查资源再上传固定输入,随后后台提交一次任务。--wait-seconds 为 0–900,只限制本轮观察时间,不是模型费用或服务端运行时间上限;停止服务端任务须在 OpenCode 用 agentpaas_task cancel。脚本不会自动批准工具操作;遇到审批,先在 OpenCode 展示材料并作决定,再 resume。第一次响应不明确且 receipt 处于 submitting、没有 run_id 时,--resume 按原请求键只读找回;仍查不到则保留凭据并提示核查,不重新运行 --run。
输出包括:
receipt.json:用例、模型标签、请求键、文件 ID、run_id、恢复信息;仅限本机保存,勿提交。result.json:执行状态、自动检查、未评审项、耗时和服务端已报告用量。result.md:该次快照的结果与下一步提示。.agentpaas-artifacts/:经带鉴权接口下载并校验的真实文件。未结束时 automatic_checks=null,不能计为质量失败或通过。completed 但关键文件缺失时,自动项必须失败。验收需同时报告未完成、审批等待、资源阻断等任务,不能只统计成功产出者。
通过小样例后,再冻结模型版本、采样设置、输入证据、工具权限、预算和案例集,对原始 Qwen 与系统做配对重复实验。按场景分别报告完成率、产物检查、盲评质量、修订收益和成本;先做独立评分,再决定是否需要事先规定权重的总分。本目录不提供未经运行的模型成绩。
运行模式由 cases.json 固定为 iterate,并写入 receipt/result,避免科研入口只返回聊天说明。data 自动检查实际下载的 cleaned.csv,并从原输入重新计算去重、缺失和均值;自报 JSON 正确但 CSV 错误仍不能全通过。qa/research 要求 evidence_quotes,逐字核对指定来源及报告中的引用;这仅验证出处,不能代替人工判断引文是否支持主张。软件的 result_cases 是模型自报值,不能计为代码测试通过。
软件独立测试是 independent-software-check.py 中的 9 个固定案例,与模型生成的 test_solution.py 分开。先审阅 solution.py,然后在已有可信 Python 镜像的隔离容器运行(替换两个绝对路径;镜像必须已在本机,不自动拉取):
docker run --rm --pull=never --network=none --read-only \
--cap-drop=ALL --security-opt=no-new-privileges --pids-limit=32 \
--memory=128m --cpus=1 --user=65534:65534 \
--tmpfs /tmp:rw,noexec,nosuid,size=16m \
--mount type=bind,src=/绝对路径/solution.py,dst=/work/solution.py,readonly \
--mount type=bind,src=/绝对路径/independent-software-check.py,dst=/work/check.py,readonly \
python:3.12-alpine python -B -I /work/check.py /work/solution.py
脚本限制 10 秒执行并输出逐例结果;保留 Docker 退出码和原始输出,异常/超时算执行失败。Docker 未运行、镜像缺失或没有实际执行时填写 not_run,不能填 0/9 或 9/9。本轮开发环境 Docker 未运行,尚未执行该容器验收。主验收不会在宿主机自动执行生成代码。
统计自动检查通过数和人工质量结果时分别展示,不合并成未经校准的总分。usage_complete / cost_complete 缺失或 false 时,只报告已观测用量,费用估算不能当成供应商账单。