Writing · 实操

eval harness 落地续集:给 Prompt 调试搭一个驾驶舱

上周我写了篇《agent eval harness 实操》,讲我给自己那个 AI 设计 agent 搭了把标尺。后台陆续有些私信的童鞋,要让我仔细讲讲,我思考了一下怎样才能用一种比较简单明了的方式讲清楚是怎样思考、怎样调的。当然我也不打算把项目放到 git 或者开源出来,里面有一些 know-how 和专业领域是和朋友一起完成的,并非我个人所有。

上一篇做的是"算分数的引擎"。刚好上周末我又折腾了一下,顺手把它扩成了一个完整的工作台——不光看分数,还能看 AI 一步步怎么想、在哪一步就地改指令重跑、最后把生成的图也拉进来对比。反正我自己是非常满意、用得很是顺手。这周末我打算再搞一搞,再完善一下。

我基于这套 eval 逻辑做了一个本地网页——我的 prompt 调试驾驶舱。直接在这个页面做 prompt 调试对比,哪版变好、哪版变差、贵了多少、图好不好看,全摆在一个页面上。我想了下,这个网页产品还是非常有助于初学者或者新手理解我的思考方式。

prompt-refine-agent 六大模块示意
prompt-refine-agent 六大模块示意——工作台 Workbench、Prompt 版本 Prompts、Run 对比 Compare、生图任务 Tasks、生图对比 Tasks Compare、设置 Settings

这篇文章就是把这个"调 system prompt 的驾驶舱"拆出来分享下,不是什么高精尖的操作,老实说这种交互可能在 agent 和 cli 交互下显得有些笨拙或者不够"AI 原生",但是在一个垂直领域的应用,要达到效果的确定性,我认为这是我自己实践下来最便捷、最清晰、驾驶感最好的一个操作交互。(有其他更好的交互经验的朋友,欢迎留言交流,学习无止境)

这篇文章,我会多贴一些截图,这样会更清晰。没看过上一篇的,可以先看上一篇。

一、上次留下的问题

先说一下我为什么要做这个网页,主要还是之前的交互和操作过于散点、不易于阅读,缺少 global view,作非程序员交互起来也不是特别友好。

二、我的驾驶舱长什么样

先给你看个整体,再拆细节。它就是一个跑在我自己电脑上的网页。本地的、不联网、不上传,数据都待在我自己的文件夹里。上一篇做的是"算分数的引擎"。这周我顺手把它扩成了一个完整的工作台——不光看分数,还能看 AI 一步步怎么想、在哪一步就地改指令重跑、最后把生成的图也拉进来对比。

它串起的是我这条完整流水线:明确要应用的趋势 → AI 给一个款式出好几个配色设计方案 → 批量生图。(一个款式通常要配好几个配色,我们管一个配色叫一个"色号"。)

这里要接一下上一篇的策略:上次我把"AI 出设计方案"那个原本巨大的单条指令,拆成了一串小环节——每个环节 AI 只干一件事(先分析款式、再识别颜色、再规划、再设计、最后自己审计一遍)。

拆开最大的好处:哪个环节出问题,能一眼定位,而不是整条流水线黑乎乎一锅端。这个网页就是给这条"拆开的流水线"配的仪表盘。

主要就是两个闭环:

调试闭环:工作台 → Prompt 版本 → Run 对比,对应"改指令 → 管版本 → 比指标"。
生图闭环:生图任务 → 生图对比,对应"出图 → 比图",再回到 prompt 调试持续优化。

一共有 6 个 tab,后面会分别讲一下基础逻辑。

三、6 个 tab,分别干嘛

【调试闭环 · Tab 1 工作台】:思考节点放出来,观测 AI 一步步想,还能就地改、就地重跑

这是我搞得最久的一页,也是整条管线跑起来的主场。直接解决开头说的两个别扭的体验。

工作台三栏界面
工作台三栏界面——① 输入区·测试入参 ② 实时步骤树·多节点监测 ③ 节点详情·看/改 prompt + Fork

类似做菜,只把改了操作的那道环节重新炒一遍,前面备好的料直接端上来。效果很直接——原来改一句得陪跑整条十几分钟,现在只跑改动那段,几分钟就能有结果出来。

Fork 三步流程
Fork 三步:只改一个节点的 prompt,就重跑它和下游(上游秒级复用)

【调试闭环 · Tab 2 Prompt 版本】:所有指令的"版本仓库"

在工作台里改指令很爽,但改多了会乱,这个 Tab 就是来兜底的。它把流水线里那几段子指令,各自存成 current / v1 / v2 …,一段一段独立管理。

我能随时切回某个旧版本、把两版拉出来 diff(看清到底改了哪句),还能用一个"整组视图"一眼看明白:这一版,用的是哪几段指令、各自的哪个版本号的组合。从第三版开始,基本上人脑就记不清每个节点现在到底用的是哪套指令了。有了版本仓库,才敢大胆改、随时退。

【调试闭环 · Tab 3 Run eval 对比】:改完到底是真变好,还是错觉

这一块,才是上一篇那套 eval 真正长出来的"脸"。勾选两次或更多次跑出来的结果,它自动按 6 大类、30 多个指标算差值——涨的标绿、跌的标红,一整排扫过去就知道这版改动了哪些数。而且它会一并标出:每一次跑用的是哪一组指令版本。改了哪句、对应哪个数变了,对得上号。

它回答的就是调参时最容易自我欺骗的那个问题——这版改完,是真变好了,还是我的错觉,相当于把不同版本的成绩单放在一起看。

Runs 对比:指标差值绿涨红跌
Runs 对比:不同版本 prompt 跑出来的 eval 分数,横着比;自动算 6 类 30+ 指标差值·绿涨红跌

当对推理出的设计方案满意时,就进入生图环节"应用设计方案生图",直接看图片效果,基于实际图片结果做进一步优化:选方案 → 出图 → 全量归档,接下来就进入生图结果的管理和对比了。

选择不同版本生产任务·应用设计方案生图
应用设计方案生图:选定某一版方案,直接生产生图任务

【生图闭环 · Tab 4 生图任务】

前面三个 Tab 都在调 prompt、出生图方案(文本)考核,从这个 Tab 开始管"出图结果"考核。"成本 + 分数 + 图 + 指令差异"摆在同一个页面里,这个是用起来比较舒畅的地方,终于能"看着图调"了。

我选不同生图任务,直接对比它们生成的设计结果图,图片下方显示这不同任务的 prompt 版本,可以直接判断哪个版本出来结果更好。

生图任务总览
生图任务 Tab:出图 → 归档 → 对比,方案/图/指令永远对得上
查看全部生图任务,支持不同任务看图对比
查看全部生图任务,支持不同任务之间看图对比

以前我只知道"v3 分数更高",但高在哪我看不见。现在我能左右对照:左边这版花纹乱、配色脏,右边这版干净利落;再往下看指令差异——原来右边那版多加了一句"颜色要有系列感以胚衣主色为参考"。分数的涨跌,和我眼睛看到生图结果的变化、具体指令改变就能在这个页面对上了。调指令最大的黑箱,从来不是"分数为什么涨",而是"分数涨了,可我没看见东西到底哪里变好"。把图和指令差异摆在一起,这个黑箱才真的打开。

Prompt Diff 对比及牛仔外套设计图
Prompt Diff 对比及四件牛仔外套设计图——版本差异直接看到

每一张图都配套存着它自己的完整生图指令 + 配色方案 + 子主题。所有生图任务进一个历史列表,点进去能看每个任务的全过程;单张不满意,还能原地重生一张。

查看单个任务下明细
查看单个任务下明细:各环节推理结果和最终效果图
查看单张生图结果的对应明细
查看单张生图结果的对应明细——图与它的完整指令一一对应

后面我打算把这个页面做成一个投票交互,把人的主观判断也作为一路量化结果记录下来。这样图、方案版本、设计指令、成本也不再散落各处,在这个页面 all in 1 全局对比。

【调试闭环"地基" · Tab 5 测试夹具】:把测试打包固定

前面 Run 对比能横着比不同版本,比的两版,喂进去的输入必须一模一样。要是这版用的是"牛仔服 9 色 + 男女 1:1",下一版手滑换了别的款、别的性别比,那分数差异到底是 prompt 改好了,还是输入变了?根本说不清。

「测试夹具」就是来保障这件事的。一个夹具,就是一组冻结的输入快照——趋势报告 + 款号 + 性别比 + 每色方案数 K + 要测的配色范围,打包存成一条,给它起个名字。

以后不管我想用哪一版指令去跑,点一下这条夹具的「✓ 应用」,它就会跳回工作台、把这套输入自动填好,我只管换指令、点跑。说人话就是:像考同一套卷子。换不同的解法(prompt 版本),但卷子必须是同一张,分数才有可比性——这就是做对比实验最基本的"控制变量"。

存也简单:在工作台把表单填好,点一下「存为夹具」,它会提示"将保存当前这几项",确认就进了夹具列表。它是前面"Run 对比"那一切结论能成立的地基。没有固定的测试题,所有版本的分数都是耍流氓。

【系统 · Tab 6 设置:钥匙和开关】

最后这个 Tab 最简单,但少不了:填 API key、调运行参数,都在这一页。我把它单拎出来,是不想让"配置"散落在代码各处——要换 key、改参数,打开这页改完即走,不碰其它任何东西。

四、好玩在哪,要注意什么

先说好的。最大的改变是节奏。调参从"敲命令翻表格"变成了"看图点按钮",像玩游戏,反而愿意多调几版。其次是决策有据。枪毙一版本不再靠感觉,靠的是"它在散点图右下角,而且表里一整列红"。

还有就是复用前作成果。底层没重写,只加了界面,基座半天就搓出来了,不过后面还是花了点时间完善和打磨。

先有标尺,才配有驾驶舱。如果你还没有上一篇那套"算分数的引擎",那请先做引擎——没有数据,再漂亮的网页也是个空壳。

别一上来追求好看。先跑通能用,再调样式。很多人卡在"想做精致",结果第一版都没跑起来。本地够用,别急着上线。这是给我自己调参用的工具,跑在自己电脑上最省事,不用买服务器、不用部署。

它帮你看,不帮你拍板。图好不好、要不要上这版,最后一下还是人按。AI 给我摆好数据和图,按钮我自己按。

最后

这两篇连起来,其实是一件事。先把"判断好坏"变成数字,这是标尺;再把"看数字"变成顺手的动作,这是驾驶舱。普通人用好 AI 最快的方式,就是给自己搭工具,服务自己日常生活工作。一个人,半个周末,就能搓出一个以前得叫上前端加后端才有的小东西。

看看大家手头有没有一堆"每周都要重复看的任务"?看股票、店铺后台、广告投放?留言告诉我,我挑几个有意思的,下篇拆"怎么给它做个仪表盘"。

没看过上一篇《eval harness 实操》的,记得去补——这篇是它的续集。觉得有用就收藏,周末打算动手的时候,对着步骤搭一个。


← 返回全部写作