第一轮实测记录:剧本类 skill · 开放题
这一页把第一轮实测的全过程摆出来:给了 agent 什么、每次运行它做了什么、评审看到了什么、怎么判的。每一步都能点开看原始的输入和输出。页面上的数字都是生成网站时从仓库里的原始数据现算的。
结论和逐个点评见实测页。这里只放过程和证据。
- 1. 需求一份开放题:只写篇幅和三项交付,不给题材、人物和情节
- 2. 运行 33 次10 个 skill 加 1 个不装 skill 的对照组,各跑 3 次,同一个模型、同一条开场指令和固定回复,按 API 价格折算共 $352.97
- 3. 找出三项交付每次运行可能写出很多文件,先认出哪个是人物小传、分集大纲、剧本,人工核对
- 4. 匿名打包 99 份每次运行拆成小传、大纲、剧本三份,随机三位编号,抹掉 skill 名、仓库名和作者名
- 5. 故事卡 33 张,分组每份稿子抽一张故事卡,再按「换个名字就是同一个故事」分组:Opus 分 21 组,GPT 分 25 组
- 6. 盲比 60 对每个 skill 的第 n 次运行和对照组的第 n 次比,剧本和人物大纲两项,甲乙对调各比一次:Opus(主评) 120 次,GPT(复核) 120 次
- 7. 汇总两种顺序都判它赢才算赢,都判对照组赢才算输,其余算平
- 8. 评审体检换序是否一致、偏不偏甲、偏不偏长稿、引文找不找得到、两位评审合不合
- 9. 过程记录试点、自检、中途改过什么,按时间排,附原始日志
给 agent 的全部输入
每次运行都在一个新建的空目录里,目录里只有这份需求(premise.md)和装好的 skill。
需求原文(premise.md)
# 001 · 开放题 写一部竖屏短剧。 - 篇幅:全剧 60 集,每集 1–2 分钟 - 交付(写成文件,放在当前目录): 1. 主要人物小传 2. 60 集分集大纲,标出付费卡点 3. 第 1–3 集完整剧本
开场指令
- 对照组:
我要写一部短剧,要求在 premise.md 里。 - 有入口 skill 的:
/入口skill名 我要写一部短剧,要求在 premise.md 里。,入口写在 contestants.toml - 工具箱型、没有单一入口的:
我要用已安装的 skill 写一部短剧,要求在 premise.md 里。
之后每一轮的固定回复
如果要我在几个题材或故事方案里选,就选第 n 个(没有第 n 个就选最后一个);其他要我定的,都按你推荐的来,不用再问我。请继续,直到 premise.md 列出的三项交付都写成文件。
n 是运行编号:第 1 次运行选第 1 个方案,第 2 次选第 2 个,第 3 次选第 3 个。skill 不给方案就自己定。
什么时候停
一轮结束后,如果 agent 没在提问、这一轮也没再改文件,而且目录里已经有产出,就算写完;连续三轮没改文件也停;最多 12 轮。代码见 evals/run.py。
环境和权限
- agent
- Claude Code 2.1.302,无头模式(claude -p),模型 claude-opus-5-5,推理强度 high
- 设置来源
- 只读工作目录里的项目设置(--setting-sources project),不连任何 MCP,不读运行者本机的个人指令和记忆
- 权限模式
- dontAsk:不在允许清单里的工具一律拒绝,不会停下来问人
- 允许
Bash、Skill、TodoWrite、Agent、Edit(/<工作目录>/**)、Write(/<工作目录>/**)- 拒绝
WebFetch、WebSearch、Read(~/**)、Edit(~/**)、Write(~/**)、Read(/<其他参赛者的工作目录>/**)、Read(/<克隆的仓库>/**)、Read(/<日志目录>/**)- 命令行
- python3 3.14、node 26 可用,没装 matplotlib 之类的第三方库;沙箱里不能联网,装不了包
Bash 全部放行,但每条命令都关在系统沙箱(macOS Seatbelt)里:不能联网,不能读运行者的主目录,不能读别的参赛者的目录,只能写自己的工作目录。沙箱设置(尖括号是每次运行的实际路径):
{
"sandbox": {
"enabled": true,
"failIfUnavailable": true,
"autoAllowBashIfSandboxed": true,
"allowUnsandboxedCommands": false,
"network": {
"allowedDomains": [],
"allowLocalBinding": false
},
"filesystem": {
"denyRead": [
"~/",
"<所有工作目录的上一级>"
],
"allowRead": [
"<工作目录>"
]
}
}
}这套设置是怎么定下来的、试过哪些不行,见过程记录。
33 次运行
点进去能看到这次运行的每一轮、每一次工具调用和它的返回、写出的全部文件。
| 参赛者 | 第 1 次 | 第 2 次 | 第 3 次 |
|---|---|---|---|
| 对照组 不装 skill | 《别让他们烧了我》 2 轮 · 11 分钟 · $3.22 | 《来自明天的我》 4 轮 · 18 分钟 · $10.46 | 《《扫尘》(投放名:《保洁阿姨竟是药企创始人》)》 2 轮 · 10 分钟 · $3.05 |
| shuohao-skills | 《掌眼》 2 轮 · 17 分钟 · $6.89 | 《闪婚老公藏不住了》 5 轮 · 11 分钟 · $20.97 | 《签字之前》 3 轮 · 17 分钟 · $21.24 |
| drama-skills | 《七格药盒》 3 轮 · 17 分钟 · $9.44 | 《掌眼》 3 轮 · 21 分钟 · $11.65 | 《停炉》 5 轮 · 19 分钟 · $18.10 |
| manju-laoli-skill | 《重生清算日》 5 轮 · 35 分钟 · $32.77 | 《重回高考前夜》 5 轮 · 24 分钟 · $27.77 | 《冷静期三十天》 3 轮 · 22 分钟 · $12.39 |
| screenwriting-skills | 《哑妻》 2 轮 · 14 分钟 · $5.27 | 《别在她面前说秘密》 2 轮 · 12 分钟 · $5.30 | 《擦痕(投放备用名:保洁妈妈)》 2 轮 · 18 分钟 · $7.89 |
| shanyin-screenwriting-master | 《顶替》 4 轮 · 22 分钟 · $11.57 | 《替身入殓师》 2 轮 · 25 分钟 · $8.85 | 《末班代驾》 4 轮 · 33 分钟 · $17.15 |
| short-drama-factory | 《这碗狮子头,你们不配吃》 2 轮 · 17 分钟 · $7.49 | 《离婚那天,我只带走了一坛老汤》 2 轮 · 21 分钟 · $9.41 | 《六十大寿,我把账本拍在了桌上》 2 轮 · 25 分钟 · $11.51 |
| emma-screenwriting-skills | 《我没死,我要离婚》 2 轮 · 22 分钟 · $7.27 | 《遗物会说话》 3 轮 · 19 分钟 · $9.64 | 《被结婚的登记员》 3 轮 · 25 分钟 · $12.88 |
| hongguo-shortdrama-screenwriting | 《离婚当天,我把婆家的账查穿了(短名:账本太太)》 2 轮 · 14 分钟 · $6.11 | 《离婚后,婆家招牌菜做不出来了》 2 轮 · 18 分钟 · $7.08 | 《这个家的账,我算了十五年》 2 轮 · 14 分钟 · $6.21 |
| qianqianwriting | 《叮,他在撒谎》 2 轮 · 16 分钟 · $5.29 | 《她妈来了》 3 轮 · 15 分钟 · $7.29 | 《五十岁,我从这个家辞职了》 2 轮 · 12 分钟 · $4.15 |
| ai-short-drama | 《账不会忘》 3 轮 · 22 分钟 · $11.19 | 《老卤》 2 轮 · 19 分钟 · $6.44 | 《《老卤》(投放标题:《离婚那天,我只带走了一口锅》)》 2 轮 · 21 分钟 · $7.03 |
汇总:和对照组比
每格是三次运行的「赢-平-输」。一次运行算赢,要两种先后顺序都判它赢;都判对照组赢算输;其余算平。主结果以 Opus 为准,GPT 是复核;两位评审结论不同的对子在盲比列表里标「有争议」。
| 参赛者 | 剧本 Opus(主评) | 剧本 GPT(复核) | 人物大纲 Opus(主评) | 人物大纲 GPT(复核) | 有争议 |
|---|---|---|---|---|---|
| shuohao-skills | 0-0-3 | 2-1-0 | 0-1-2 | 0-0-3 | 4 |
| drama-skills | 3-0-0 | 3-0-0 | 3-0-0 | 3-0-0 | |
| manju-laoli-skill | 2-1-0 | 3-0-0 | 3-0-0 | 2-1-0 | 2 |
| screenwriting-skills | 3-0-0 | 3-0-0 | 3-0-0 | 3-0-0 | |
| shanyin-screenwriting-master | 3-0-0 | 3-0-0 | 3-0-0 | 3-0-0 | |
| short-drama-factory | 2-0-1 | 1-0-2 | 0-2-1 | 2-0-1 | 4 |
| emma-screenwriting-skills | 3-0-0 | 3-0-0 | 2-1-0 | 3-0-0 | 1 |
| hongguo-shortdrama-screenwriting | 2-1-0 | 2-1-0 | 0-3-0 | 1-1-1 | 4 |
| qianqianwriting | 2-1-0 | 2-1-0 | 1-0-2 | 2-1-0 | 2 |
| ai-short-drama | 3-0-0 | 2-0-1 | 3-0-0 | 3-0-0 | 1 |
按参赛名单的顺序排列,不是名次。
误差有多大
每个 skill 只跑了 3 次。三次全赢,95% 置信区间也只能说到 44%–100%:能看出方向,分不出名次,所以这里不排名。把 10 个 skill 合在一起看:
- Opus(主评),剧本:30 对里 skill 赢 23 对,赢的比例 77%(95% 区间 59%–88%),平 3,输 4
- Opus(主评),人物大纲:30 对里 skill 赢 18 对,赢的比例 60%(95% 区间 42%–75%),平 7,输 5
- GPT(复核),剧本:30 对里 skill 赢 24 对,赢的比例 80%(95% 区间 63%–90%),平 3,输 3
- GPT(复核),人物大纲:30 对里 skill 赢 22 对,赢的比例 73%(95% 区间 56%–86%),平 3,输 5
怎么核对
- 全部原始数据在 GitHub:每次运行的产出、问答记录、原始日志(logs/)、评审看到的匿名稿(blind/)、编号和出处的对应表(blind_key.json)、故事卡、分组和每一场比较的判决。
- 原始日志公开前用 clean_logs.py 清理过:去掉本机路径、用户名、额度用量和 Claude Code 的内部记录,其余原样保留。删了什么写在脚本开头。
- MANIFEST.sha256 记着这一轮每个文件的 sha256 指纹。运行
python3 evals/verify.py 001-open-brief会逐个核对指纹,重建每一场评审的提示词,和 GPT 调用时记下的提示词指纹比对,再把本页的数字重算一遍。 - skill 作者如果觉得自己的 skill 装错了、跑错了或者记录有误,可以在 GitHub 提 issue,我们会对着原始日志核对,公开答复。