3.7 节实验:同一个模型(gpt-6.1-sol),按步骤交代 vs 按验收标准交代,整理一场五十五分钟、分成两个文件的会议录音(含会议录音与人名表)
| 文件 / 目录 | 说明 | 大小 |
|---|---|---|
| 📁 ../ | 返回上级目录 | - |
| 📁 fixture_en/ | 子目录 | - |
| 📁 fixture_zh/ | 子目录 | - |
| 📁 harness/ | 子目录 | - |
| 📁 meeting_en/ | 子目录 | - |
| 📁 meeting_zh/ | 子目录 | - |
| 📁 pilot/ | 子目录 | - |
| 📁 prompts_en/ | 子目录 | - |
| 📁 prompts_zh/ | 子目录 | - |
| 📁 trials/ | 子目录 | - |
| 📄 CONTRACT.md | 5.7 KB | |
| 📄 README.md | 7.6 KB | |
| 📄 build_meeting.py | 4.1 KB | |
| 📄 gemini_tts.py | 1.1 KB | |
| 📄 grade.py | 3.6 KB | |
| 📄 grade_simple.py | 1.7 KB | |
| 📄 results.json | 12.5 KB | |
| 📄 run_trial.py | 4.2 KB | |
| 📄 summarize.py | 1.7 KB |
状态(2026 年 10 月):中英文各 12 次(两档难度 × 两种表述 × 3 次)全部跑完。设计和判定规则见
CONTRACT.md。
把一件事交给 AI 有两种说法:
我们想知道的是:任务复杂到事先列不出能保证结果的步骤时,过程式会不会碰到天花板?如果会,这个天花板是不是来自表述,而不是来自模型或步骤写得差。
| 过程式 | 结果式 | |
|---|---|---|
| 五条标准全部满足 | 中文 0/3,英文 0/3 | 中文 3/3,英文 3/3 |
| 两个文件的重叠被发现并去重 | 0/6 | 6/6 |
| 第二个文件的时间戳对应整场会议 | 0/6(交付了文件的 5 次里,第二个文件 98% 以上的段落整体晚了约 40 秒,正是重叠的长度) | 6/6 |
| 电话参会者的 8 段发言全部保留 | 4/6 | 6/6 |
| agent 报告“步骤里有做不到的事” | 4/6 | 0/6 |
| agent 宣布完成,但标准其实没满足 | 2/6 | 0/6 |
过程式没有一次是因为偷懒失败的。逐次看下来,有三件事:
trials/zh_complex_outcome_1/log/transcript.jsonl 第 333 秒那条消息)。| 过程式 | 结果式 | |
|---|---|---|
| 中文全部通过 | 3/3 | 3/3 |
| 英文全部通过 | 1/3 | 3/3 |
中文两种表述都没问题,说明过程式本身不是错的,事先列得出步骤时它照样管用。
英文过程式两次没通过,原因是同一处人名:带着词表转写时,识别接口把 Saoirse 认成了 Xochitl,而步骤里写着“只在音频能确认时才改人名”,执行者就保留了错的名字。这只是一处人名,样本也只有 3 次,不足以说明简单档里两种表述有差别,正文里如实写出即可。
复杂档里,结果式的人名和术语几乎全对(中文 523/525,英文 482/486)。过程式在交付了正式文件的几次里也在 97% 左右。
shell),同样的文件夹。两组只差提示词。trials/*_process_*/plan.md。pilot/):grade.py、grade_simple.py),执行者读不到。一句台词在逐字稿里找得到相似度 ≥70 的对应文字,就算覆盖;在去掉第一次匹配后还能再找到一次,就算重复;段落时间戳落在对应台词起止时间的 ±10 秒以外,就算偏了。“五条标准全部满足”指覆盖、不重复、时间戳都达标,人名另计。CONTRACT.md:实验合同(问题、逆向推导的设计、理想结论与其他可能)。harness/mini_agent.py:最小 agent,一个模型加一个 shell 工具。命令在 macOS sandbox-exec 里执行:只能写工作文件夹,读不到 experiments/ 目录和本机凭据;输出里的 API key 一律替换成 <redacted>。run_trial.py:跑一次试验(建工作文件夹 → 过程式先生成步骤 → 运行 agent → 拷回交付物和日志 → 打分)。prompts_zh/、prompts_en/:任务、验收标准和三种提示词模板(规划者、过程式、结果式)。fixture_zh/、fixture_en/:工作文件夹里的 API.md 和 names.md。meeting_zh/、meeting_en/:台词脚本(script.json,由 gpt-6.1-sol 按 script_prompt.md 生成)、合成配置(config.json)、真值时间轴(truth.json)。音频用 Gemini TTS 的预置声音合成,不涉及任何人的克隆声音,用 build_meeting.py 重建。trials/<语言>_<难度>_<表述>_<次>/:每次试验的提示词、步骤清单、agent 日志(log/transcript.jsonl、log/summary.json)、交付物和打分(grade.json)。agent 放在隐藏目录里的中间文件没有拷回。results.json:summarize.py 汇总的全部结果。都在 textbook 仓库根目录执行。
# 合成会议录音(需要 GEMINI_API_KEY;每句台词的音频有缓存)
op run --env-file <(printf 'GEMINI_API_KEY=op://dev/dev-api-keys/gemini_api_key\n') -- .venv/bin/python experiments/3_7_formulation/build_meeting.py zh
# 跑一次试验:语言 难度 表述 次数(需要 ChatGPT OAuth 登录,见 chat_gpt_oauth skill)
cd experiments/3_7_formulation
op run --env-file ../aib.env -- ../../.venv/bin/python run_trial.py zh complex outcome 1
# 汇总
../../.venv/bin/python summarize.py
执行者和规划者都走 ChatGPT 订阅,不按 token 计费。单次复杂档试验大约读入一百万到两百万 token,用时 7 到 15 分钟。语音识别走 AI Builder Space,每小时音频约 0.1 美元,全部试验加试点不到 5 美元。Gemini TTS 合成两场会议不到 2 美元。
knowledge_working/tmp/3_7_runs/ 下),公开前替换掉。trials/,没有 key(sk_ 开头的字符串为零)。.m4a)和合成中间文件(.wav)不进 git,部署时单独上传 recordings/。