在这里插入图片描述

目录

摘要

第 65 篇把提示词做成了模板,这一篇给它配一个不写代码的测试台。Playground 提供迭代与测试提示词和模型配置的界面,六件可变项是它的核心。从 Playground 还能跑评测打分,并用 Chat 辅助优化提示词。

1. 零代码测试台

1.1 Playground 定位

官方文档给 Playground 的定位原话是:提供迭代与测试提示词和模型配置的界面。同一页还给了用法描述:在一系列输入上测试提示词或模型配置,看它在不同场景下的得分,无需写任何代码。

把这句定位拆成三个词看。

迭代:改一版配置,跑一轮,看结果,再改。这个循环发生在同一个界面里,不用反复运行脚本。

测试:不是只跑一条输入,而是一系列输入。一条输入看着好,换三条就可能翻车。

无需写任何代码:改动本身不经过代码。写代码的人仍然可以从代码里带走结论,但验证动作发生在界面上。

定位里的词白话含义对应的动作
迭代改一版再看一版在界面上改配置并重跑
测试一系列输入而不是一条换不同输入逐条观察
界面不经过脚本与终端鼠标与键盘完成改动
打分看它在场景下的得分从 Playground 跑评测

这张表是理解后面七章的入口。第 2 章讲改动什么,第 5 章讲怎么打分。

作为对照,先看不用 Playground 时做同一件事要写什么。下面这段脚本只覆盖了六件可变项里的两件。

# 来源:自实现 / 演示脚本
# 对照用:不用 Playground 时,测一次提示词要写的最小脚本
from langchain_core.prompts import ChatPromptTemplate
from langchain.chat_models import init_chat_model

# 第 65 篇做好的模板,这里是测试对象
template = ChatPromptTemplate.from_messages([
    ("system", "你是客服助手,回答不超过两句话。"),
    ("human", "{question}"),
])

# 换模型等于改这一行字符串,然后重新运行整个脚本
model = init_chat_model("provider:model")

# 测一系列输入等于自己写循环,自己打印,自己肉眼对比
chain = template | model
for question in ["退货政策是什么", "发票怎么开", "怎么改收货地址"]:
    print(chain.invoke({"question": question}).content)

这段代码做了三件事:定义模板、组装链、循环三条输入。每一处改动都要回到编辑器改代码再重跑。Playground 把这三件事都搬进了界面,这正是"无需写任何代码"的落点。

还有一个隐藏收益:界面上跑的每一次尝试都留在平台里,回看时不用翻终端历史。这对团队协作比对个人更有价值,第 7 章会展开。

1.2 与 Studio 的分工

第 46 篇讲过 Studio。它也是界面化工具,但它调的是 agent 图。具体指节点的编排、边的走向与图的执行路径。

两者面向的对象不同。Studio 的对象是 agent 整体结构,Playground 的对象是提示词与模型配置。一个管骨架,一个管措辞。

同一平台的两类界面

Playground 调提示词

打开提示词或模型配置

换模型换模板换 schema 换工具

跑一系列输入并看输出

Studio 调 agent 图

打开 agent 图

调整节点与边的编排

观察图的执行路径

图里两条链各自独立:左边管结构,右边管配置。它们不共享对象,但共享同一个平台的追踪记录。

分工带来的实际判断标准很简单。问题出在流程走向,去 Studio。问题出在措辞或模型选择,去 Playground。

维度Studio(第 46 篇)Playground(本篇)
调试对象agent 整体图提示词与模型配置
主要动作调节点与边换六件可变项
观察重点执行路径与状态流转输出内容与得分
典型问题流程走错了分支回答跑偏或字段缺失

两者也有交叠:agent 图里的提示词最终也是提示词。先把单点提示词在 Playground 里调稳,再放回 agent 图里跑。这比直接在图里改更快。

这也解释了学习顺序。第 65 篇做模板,本篇在 Playground 里试模板。第 63 篇用评测给模板定型,第 46 篇在 Studio 里看它上线后的表现。

# 来源:自实现 / 演示清单
# 判断该开哪个界面的三问自查
问题一  卡住的是流程还是措辞
  流程卡住走 Studio,措辞卡住走 Playground
问题二  观察对象是路径还是输出
  看执行路径走 Studio,看输出内容走 Playground
问题三  改动会落在哪个文件
  改编排落回图定义,改提示词落回模板库

# 三问答案一致时直接走对应界面,不一致时先拆问题

三问里第三问最有约束力:改动最终要落回某个文件。先想清楚落点,就不会在错误的界面上白调一轮。

下一章先把这个测试台上的六件可变项数清楚。

2. 六件可变项

2.1 官方清单逐件讲

官方页给 Playground 列了六件可变项。下面是清单原文与中文对照,这张表是全篇的核心。

序号官方清单原文中文含义换它回答什么问题
1Change the model being used换所用模型同一模板换个模型,输出变好还是变差
2Change the prompt template being used换所用提示词模板同一模型换套措辞,是否更稳
3Change the output schema换输出 schema要求结构化输出后,字段是否齐全
4Change the tools available换可用工具工具集增减后,行为是否跑偏
5Enter the input variables to run through the prompt template输入变量喂给模板模板在新输入上是否仍然成立
6Run the prompt through the model and observe the outputs跑提示词过模型并观察输出前面换完之后,结果到底如何

六件可以分成两类。前五件是配置:模型、模板、schema、工具、输入变量。第六件是动作:跑起来并观察。

逐件看一遍。

换模型:同一套措辞在不同模型上的表现差异可能很大。语气、格式服从度、拒答倾向都随模型变。

换模板:第 65 篇做好的模板在这里当资产用。同一个模型配不同版本的模板,比较哪一版更稳。

换输出 schema:schema 一变,模型的注意力就变了。字段名本身就是指令。

换可用工具:工具集决定了模型能做什么。多给一个工具,模型可能就开始用它,哪怕不该用。

输入变量:模板是壳,变量是内容。壳做得再好,遇到没预料到的输入也会露馅。

第六件最容易被忽视。跑提示词过模型并观察输出,重点词是观察。跑完不看等于没跑。

# 来源:自实现 / 演示清单
# 六件可变项的使用顺序建议(前五件配置,第六件验证)
1 换模型       先定模型,措辞问题才可比
2 换模板       模型固定后,比较模板版本
3 换 schema    需要结构化输出时再引入
4 换工具       涉及动作能力时引入
5 输入变量     每轮固定一组输入作为考题
6 运行观察     每轮跑完立刻记录结论

这份顺序不是官方规定,是减少返工的做法。先换模型再调措辞,能避免为弱模型过度补偿措辞。

六件之间还存在耦合关系。schema 一变,模板里可能要补字段说明。工具一变,模板里的角色设定可能要跟着改。遇到这类联动,仍然一次只动一件,动完再观察另一件是否需要跟进。

可变项动它的高频理由动它的错误理由
模型成本与能力权衡换新模型尝鲜
模板输出稳定跑偏单条输入不满意
输出 schema下游要消费结构化字段觉得结构更专业
工具能力边界要扩张工具库里有现成的
输入变量覆盖新场景随手换一条试试

第二列与第三列的分界线只有一条:改动是否由明确问题驱动。没有问题的改动,等于在给归因添乱。

六件里任何一件都可能成为当前实验的自变量。怎么控制变量,是下一节的方法论。

2.2 单变量实验法

六件可变项同时存在,最大的风险是一次改好几件。改完变好了,但不知道是哪件起了作用。

单变量实验法的白话版本:一次只换一件,其余五件全部锁死。这样输出差异只能归因于被换的那一件。

模型 Playground 使用者 模型 Playground 使用者 loop [直到结论稳定] 固定其余五件只换一件 发送模板与输入变量 返回输出 展示输出与结果 记录差异并决定下一轮 再换一件继续对比

时序图里的关键在第一格:动手之前先确认其余五件没动。末尾一格的记录动作决定经验能否积累。

落到执行层面,每轮实验要留下一条记录。下面是记录格式。

# 来源:自实现 / 演示脚本
# 单变量实验的记录格式:相邻两条之间只允许一个字段不同
runs = [
    {"run": 1, "model": "provider:model-a", "template": "v1", "schema": "无", "tools": "无", "note": "基线"},
    {"run": 2, "model": "provider:model-b", "template": "v1", "schema": "无", "tools": "无", "note": "只换模型"},
    {"run": 3, "model": "provider:model-a", "template": "v2", "schema": "无", "tools": "无", "note": "只换模板"},
]

# 校验规则:相邻两条之间恰好只有一个字段变更
for prev, curr in zip(runs, runs[1:]):
    changed = [k for k in prev if k not in ("run", "note") and prev[k] != curr[k]]
    print(curr["run"], "变更字段:", changed)

这个脚本本身不跑模型,只做记录校验。它的价值是强迫实验者把每轮改动写下来,写不出来的改动就是没想清楚。

实验轮次变更项观察指标记录要求
第 1 轮无,建基线三条固定输入的输出存下完整输出
第 2 轮只换模型格式服从与语气与基线逐条对比
第 3 轮只换模板答案准确性标注改善与退化各几条
第 4 轮只换 schema字段完整率记录缺失字段名

轮次数量没有硬性规定。经验做法是同一改动至少看三条输入,只看一条容易把偶然当规律。

单变量法也有代价:六件全试一遍的轮次会多。这时该优先动哪两件,下一章先讲最常用的两件,模型与模板。

3. 换模型与换模板

3.1 换模型

六件可变项的第一件是换所用模型。这一件的典型场景:模板已经写好,不确定哪个模型跑它最合适。

第 4 篇讲过 provider:model 的写法:一个字符串同时指定服务商与模型名。Playground 里换模型不需要改这个字符串,直接在界面上选。背后的语义是同一个。

换模型这一维的实验设计:其余四件全部锁死,只换模型列。锁死的四件是模板、schema、工具、输入变量。

# 来源:自实现 / 演示数据
# 换模型实验的矩阵:模板固定为 v1,输入固定为三条考题
模型 A    模板 v1    考题 1 2 3    输出记录为 A1 A2 A3
模型 B    模板 v1    考题 1 2 3    输出记录为 B1 B2 B3
模型 C    模板 v1    考题 1 2 3    输出记录为 C1 C2 C3

# 对比方向:格式服从度、语气一致性、答错条数
# 结论格式:模型 B 在格式服从上最好,但在考题 3 上答错,原因记录在旁

矩阵里的每一行是一次完整运行。横向比是同一模型跨考题,纵向比是同一考题跨模型。

换模型时常见的三个观察点。

观察点白话说法翻车表现
格式服从让它两句话它是不是就两句话写成五段长文
指令遵从system 里的约束是否被记住忽略禁止事项
稳定性同一输入多跑几次是否一致时好时坏无法依赖

第三点要特别说明:同一输入跑多次输出可能不同。 Playground 上重复运行同一组配置,本身就是一次廉价的一致性检查。

是

否

是

否

否

是

模板与输入固定

选定模型一跑一轮

记录三条考题输出

差异主要来自格式吗

结论记为格式服从差异

差异主要来自内容对错吗

结论记为准确性差异

结论记为语气与风格差异

进入下一个模型

所有候选模型跑完了吗

按格式与准确性排序得出选型结论

图里的判定顺序有讲究:先看格式再看内容。格式问题常靠改模板就能修,没必要为它换更贵的模型。

一个容易被忽略的关联成本:不同模型的计价不同。若要做成本对比,数字需要标注"示例数据,以厂商定价页为准"。不要引用未经核实的单价。

模型这一维定了之后,第二个要动的是模板。

3.2 换模板

第二件可变项是换所用提示词模板。第 65 篇把提示词做成了带变量的模板,这一篇是那批资产的实验场。

换模板的典型场景:模型已经选定,两三版措辞之间拿不定主意。这时候把模板这一维当作自变量,其余五件锁死。

两维合起来看,模型与模板构成一张对比矩阵。

模板 v1模板 v2模板 v3
模型 AA 跑 v1A 跑 v2A 跑 v3
模型 BB 跑 v1B 跑 v2B 跑 v3
模型 CC 跑 v1C 跑 v2C 跑 v3

九格不必全跑。实际做法是先沿一个维度定标,再沿另一个维度细化。

矩阵解读有一条纪律:不要拿交叉格下结论。如果同时换了模型与模板,那一格的差异无法归因,回到单变量法。

模板版本之间要有版本标记。下面是第 65 篇模板资产在本篇的用法约定。

# 来源:自实现 / 演示清单
# 模板版本约定:相邻版本之间只做一类改动
v1 基线版本    只有角色设定与任务描述
v2 加约束      增加输出长度与格式限制
v3 加示例      增加一个回答示例
v4 调变量      只改变量命名与占位写法

# 每一版在 Playground 里跑同一组输入变量
# 每一版的结论写进模板备注,下一代人不重踩

版本约定的核心是相邻版本只做一类改动。同时加约束又加示例,观察到的提升就不知道该记在谁头上。

是

否

第 65 篇产出的模板 v1

Playground 输入一组固定考题

记录输出与问题

按一类改动出新版

同一组考题重跑新版

输出改善了吗

保留新版并记录原因

回退到旧版并记录原因

更新模板库标记版本

图里两条出口都通向记录:改好要记原因,改坏也要记原因。只记成功会让模板库变成幸运集合。

这一章的两件是六件里最常用的组合。下一章看另外两件配置:输出 schema 与工具。它们改的不是措辞,而是输出的形状与模型的能力边界。

4. 输出 schema 与工具

4.1 换输出 schema

第三件可变项是换输出 schema。schema 在这里指结构定义:规定输出必须是哪些字段、每个字段什么类型。

第 18 篇讲过结构化输出:让模型按给定 schema 返回结构化数据。这里的 schema 指结构定义,规定输出必须包含哪些字段、各是什么类型。Playground 提供了这件事的界面化试错场。

换 schema 这一维的观察点与换模板完全不同。换模板看内容质量,换 schema 看字段完整率。

schema 变化观察点常见结果
从无到有输出是否仍可读长度变短,内容收敛
加一个字段新字段是否总被填上偶发留空
删一个字段剩余字段是否变详细内容回流到其他字段
改字段名语义是否被理解名称贴近业务则更准

第三行值得展开:删字段不会让输出变短,内容会挤到剩下的字段里。这在做摘要类任务时经常反直觉。

下面这个 schema 变体实验的记录格式,延续第 2 章的单变量法。

# 来源:自实现 / 演示脚本
# schema 变体记录:相邻版本只动一处字段定义
schemas = {
    "v1": {"topic": "str", "summary": "str"},
    "v2": {"topic": "str", "summary": "str", "risk": "str"},
    "v3": {"topic": "str", "summary": "str", "risk": "str", "risk_level": "str"},
}

# 检查项:每轮统计留空字段出现的次数
# 留空多说明模型对字段含义不确定,优先改字段名而不是加解释
# 相邻版本差异:v2 只加 risk,v3 只加 risk_level

字段名本身就是指令。留空率高的字段,第一反应是改名字,第二反应才是加说明文字。

六件里的第 6 件在这里的作用最明显:换了 schema 之后必须实际跑一遍并观察。字段齐全与否,只有跑了才知道。

schema 变体之间的对比也有记录格式。沿用第 2 章的规则:相邻版本只动一处。

# 来源:自实现 / 演示清单
# schema 变体的观察记录模板
版本 v1    无 schema    记录  输出长度与可读性
版本 v2    加 topic 与 summary    记录  两个字段的留空次数
版本 v3    再加 risk    记录  risk 的留空次数与内容质量

# 每一版跑同一组三条输入,留空次数直接对比
# 结论写法示例:v3 的 risk 在考题 2 留空,改名后留空消失

记录里的"改名字后留空消失"这类结论,正是 Playground 上最便宜的收获。它不需要评测跑全量数据集,三条考题就能暴露。

4.2 换可用工具

第四件可变项是换可用工具。工具集决定了模型能做什么动作,增减一件工具都会改变行为。

第 2 篇讲过工具选择:工具不是越多越好,而是越贴合越好。这一节把那个结论放进 Playground 里验证。

工具集变化的三个典型实验。

实验设计工具集变化预期观察
减法实验从五件减到两件不该调工具的问题不再乱调
加法实验加一件易混淆工具调用错工具的频率上升
替换实验换成同名不同实现行为差异体现在参数上

第一行对应最常见的坑:工具太多导致误调用。减掉几件后误调用是否消失,是 Playground 上一眼能看出来的。

没有

有

是

否

准备一组固定输入

工具集全量跑一轮

有误调用吗

工具集保持不变

移除最可疑的一件工具

同一组输入重跑

误调用消失了吗

记录该工具被移除的原因

再移除下一件可疑工具

得出最小可用工具集

图里每一轮只移除一件工具,这是单变量法在工具维上的应用。一次移三件,消失的原因又说不清了。

六件可变项里的第 6 件在工具实验里有个细节:观察对象不只是文字输出。还包括工具是否被调用、以什么参数调用。只看最终回答会漏掉中间的动作。

工具与 schema 还会互相影响。加了搜索工具之后,模型可能把不确定的字段留空,因为它想先查再填。遇到这类联动,回到单变量法,一次只动其中一件。

工具实验同样要留记录。记录的对象比 schema 实验多一栏:调用参数。

# 来源:自实现 / 演示清单
# 工具集减法实验的记录模板
轮次 1    工具五件    记录  误调用出现在哪条考题
轮次 2    移除工具甲  记录  该误调用是否消失
轮次 3    移除工具乙  记录  新出现的误调用

# 每轮同时记下被调用工具名与传入参数
# 结论写法示例:移除工具甲后考题 2 不再误调用,参数里曾出现空字符串

第三栏的新误调用容易被忽略。减掉一件工具,模型可能改调另一件更不合适的工具,这不是改善而是转移。

到这里,六件里的前四件讲完了。界面上的单点尝试有局限:样本只有几条,结论靠肉眼。下一章把它升级成在数据集上打分的评测。

5. 从 Playground 跑评测

5.1 数据集上测试并打分

官方页对这一步的定位是:要在数据集上测试提示词或模型配置并给结果打分,从 Playground 跑评测。细节见 run-evaluation-from-playground 页,以该页为准。

这句话把第 2 章的肉眼观察升级成打分。肉眼观察的三个局限,评测逐一补上。

局限肉眼观察在数据集上评测
样本量三五条输入全数据集逐条
判断方式主观印象按评估器打分
结论可比性靠记忆结果沉淀可对比

第三行是关键差异。肉眼比较两轮输出靠记忆,评测比较两轮结果靠记录。记录不会记错,也不会换人之后就失效。

第 63 篇已经核实过一个关联事实:离线评测可以服务端经 Playground 跑。这条来自官方 evaluation-types 页的原话。它意味着 Playground 不只是手工试验台,也能承接正式评测。

是

否

在 Playground 调好一组配置

选定目标数据集

从 Playground 发起评测

服务端在数据集上逐条运行

评估器给每条结果打分

分数与明细落到平台

是否与历史实验对比

对比得出进退结论

把本轮作为基线留存

决定配置是否定稿

图里的分叉在 F 之后:一轮评测的价值一半在自身分数,一半在与历史的对比。只看单轮分数容易误判波动为进步。

与第 30 篇讲过的三层测试对上位置:Playground 里的评测属于 evals 层。它不需要本地环境,适合没有代码环境的角色。

打分的具体机制,包括评估器怎么配、有哪些类型,本篇不展开。这些属于 run-evaluation-from-playground 页的内容,以官方页为准。

从肉眼到打分的分界线也可以用一张表说清。什么时候留在界面里试,什么时候发起评测。

判断需求用肉眼观察够吗建议动作
方向性判断,改了是否更差够界面里跑三五条
要给团队交付结论不够发起数据集评测
要与上一版正式对比不够发起评测并对比实验
要看字段留空率不够,样本太少发起评测统计

界面上试是免费的,评测要跑全量数据集,成本与时间都更高。分界线的意义就在控制这笔开销。

5.2 创建实验

官方 See also 区给了另一个入口:run-evaluation-from-playground 页的 Create an experiment in the Playground,即从 Playground 创建实验。

实验这个词在上一章出现过。第 30 篇与第 63 篇都讲过:一次评测跑完即成为一个实验。实验之间可以横向比较。

从 Playground 创建实验的流程要点有三个。界面里的配置就是被测对象,选好数据集后发起,跑完得到一份可命名的实验记录。

# 来源:自实现 / 演示清单
# 从 Playground 创建实验前后的自检清单
发起前
  1 配置是否已冻结:六件可变项都记下当前值
  2 数据集是否选对:覆盖目标场景而不是顺手那个
  3 实验名是否可读:包含模板版本与关键改动
发起后
  4 结果是否与上一实验可比:数据集是否同一个
  5 进退结论是否写进实验备注
  6 赢的配置是否已同步回模板库

第 1 条来自第 2 章的教训:实验发起前不记录配置,事后无法归因。第 6 条来自第 7 章要讲的工作流闭环:赢的配置不回写,实验就白做了。

阶段动作常见遗漏
发起前冻结六件可变项的取值没记工具集
发起时选数据集并命名实验沿用默认名事后认不出
发起后对比历史实验只看本轮绝对分
收尾赢的配置回写模板库停在看到分数

创建实验的界面步骤与可配项细节,以 run-evaluation-from-playground 页为准,链接在外部引用。

实验命名的价值值得单说。三个月后翻实验列表,能认出哪个是"v2 加长度约束"的只有命名。

# 来源:自实现 / 演示清单
# 实验命名的三段式写法
第一段  模板版本号    例如 v2
第二段  关键改动      例如 加长度约束
第三段  数据集标识    例如 客服问答集

# 组合示例:v2-加长度约束-客服问答集
# 反例:test-01  事后完全认不出改了什么

命名的成本只有十秒,收益在整个实验历史里。反例那种默认名,等于把对比工作全部推给未来的自己。

评测解决的是配置定稿问题。定稿之前的草稿工作,还有一件帮手:Playground 里的 Chat。下一章讲它。

6. Chat 辅助

6.1 AI 帮你优化提示词

官方页的原话:用 Playground 里的 Chat 借 AI 辅助优化提示词、生成工具、创建输出 schema。细节见 chat 页。

这句话给 Chat 划了三条能力边界。本节先讲第一条:优化提示词。

白话版本:写提示词卡住时,让 AI 看着当前的模板与输出给建议。相当于结对编程里的另一双眼睛。

Chat 辅助能力官方原话含义适合的时机
优化提示词改进现有模板的措辞输出稳定跑偏
生成工具帮忙产出工具定义需要新能力
创建输出 schema帮忙产出结构定义字段设计没把握

这个边界也划出了 Chat 不做的事。Chat 给建议与草稿,验证仍然要靠六件可变项里的第 6 件:跑起来观察。跳过验证直接采纳,等于把判断外包。

是

否

当前模板与若干输出

在 Chat 里描述问题

Chat 给出改写建议

把建议落到模板新版本

同一组输入重跑对比

输出改善了吗

采纳该版本并记录原因

把退化现象反馈给 Chat 再迭代

进入下一轮优化

图里从 E 到 F 的验证环节不能省。Chat 的建议是假设, Playground 的运行才是证据。

向 Chat 描述问题的方式影响建议质量。给出现象比给出方向更有效。

# 来源:自实现 / 演示清单
# 向 Chat 描述问题的两种写法对比
低质量提问
  帮我把提示词写好一点
  问题:没给现象,Chat 只能泛泛给套路

较好提问
  模板要求两句话内回答,考题 3 的回答一直是五段长文
  system 里已有长度限制,请针对这条考题改进模板
  问题:给了现象、给了已尝试的约束、给了改进目标

# 规则:现象、已尝试、期望,三样至少给两样

6.2 生成工具与创建输出 schema

Chat 的另外两条能力:生成工具与创建输出 schema。官方原话同样来自定位句。

生成工具的场景:第 4 章做减法实验时发现缺一件能力。工具定义的初稿可以交给 Chat。它给出的字段与描述是否合理,仍要在 Playground 里验证。

创建输出 schema 的场景:第 4 章的 schema 变体设计。字段名、类型、是否可空的初稿可以交给 Chat,留空率要靠实际运行统计。

两条能力的共同点:Chat 负责初稿,实验负责裁决。工具与 schema 都会改变模型行为,改了就必须重跑。

产出物Chat 的贡献必须人工验证的点
工具定义字段与描述的初稿是否被误调用
输出 schema字段名与类型的初稿留空率与语义偏差
模板改写措辞候选三条考题上的实际差异

三条产出物里,模板改写的验证成本最低,工具定义的验证成本最高。工具一旦误调用,影响的是后续动作链,不只是输出文本。

# 来源:自实现 / 演示清单
# Chat 三条辅助能力的使用次序建议
第一步  用 Chat 优化提示词    成本低见效快
第二步  用 Chat 创建输出 schema    字段初稿很快
第三步  用 Chat 生成工具    影响动作链,谨慎引入

# 每一步产出都必须回到第 2 章的单变量法里跑一轮
# 禁止把 Chat 的产出直接标记为已验证

次序建议的依据是影响范围。措辞只影响输出文本,schema 影响下游解析,工具影响真实动作。影响范围越大的产出,验证轮次要越多。

Chat 产出的初稿还有一道人工必查项:字段名与工具名是否与现有系统一致。Chat 不知道团队里已有的命名约定,它起的名字可能撞上现有关键字。

# 来源:自实现 / 演示清单
# Chat 产出的三道人工必查项
必查一  命名冲突    新字段名是否与现有 schema 撞名
必查二  语义偏差    工具描述是否暗示了不存在的行为
必查三  冗余字段    是否生成了没人消费的字段

# 三道必查项都在 Playground 里跑一轮才能确认
# 其中冗余字段最隐蔽,下游没人读的字段会拖累输出质量

三道必查项的共同点是机器看不出来,只有熟悉系统的人能判断。这也是 Chat 辅助不能替代人工的边界所在。

Chat 界面的具体操作、入口位置与可用选项,以 chat 页为准。链接在外部引用一章。

把三条能力放到一起看,Chat 的价值是缩短草稿时间,而不是缩短验证时间。验证环节的不可压缩性,正是第 2 章方法论的立足点。

到这里,单个界面的能力讲完了:六件可变项、评测、Chat。下一章把它们串进提示词的完整工作流。

7. 工作流闭环

7.1 提示词工作流全链

前面几篇各管一段。把它们的先后关系摆出来,Playground 的位置才清楚。

第 65 篇做模板:把提示词整理成带变量的资产。第 63 篇做评测定型:在数据集上打分决定哪一版留下。第 46 篇 Studio 做上线观测:看它在真实 agent 图里的表现。

本篇的 Playground 在做与评之间,充当试验台。

第 65 篇 做模板

本篇 Playground 试配置

第 63 篇 数据集评测定型

第 46 篇 Studio 上线观测

线上发现新问题

图是环形的。线上观测发现的新问题,回到 Playground 里重新开始一轮试验。不要直接改生产配置。

每一段的职责与不越界是这套流程能转起来的前提。

环节承担的事不承担的事
做模板定义变量与措辞不做最终选型
Playground 试六件可变项的单点对比不下批量结论
评测定型数据集打分与实验对比不再改措辞细节
上线观测看真实流量下的表现不做配置改动

第二行的"不下批量结论"值得强调。Playground 上的输入是手挑的几条。这类结论只配指导下一步实验,不配直接定稿。定稿要走评测。

# 来源:自实现 / 演示清单
# 一处改动走完全链的完整路径示例
1 第 65 篇侧:模板升到 v2,只加一条长度约束
2 本篇侧:v2 在 Playground 里跑固定考题,确认约束生效
3 评测侧:v2 与 v1 在同一数据集上对比,看分数进退
4 观测侧:v2 上线,观察真实输入下的表现
5 回流侧:发现新问题,回到第 2 步开始下一轮

# 纪律:任何一步跳过,改动就没有留痕

路径里的第 3 步是必经关卡。只走第 2 步就上线,等于用手挑的输入代表全部流量。

7.2 跨职能场景

第 65 篇讲过一个协作观点:懂业务的人应该能直接改提示词。这一节是那个观点的落地。

Playground 的价值不只是省代码,而是换人。PM 或领域专家可以在界面上直接迭代提示词,不必把意图翻译给工程师再等回包。

角色在 Playground 里做什么原来要经过谁
领域专家判断回答的准确与得体要口述给开发复现
PM试不同措辞下的表现提需求排队
工程师定 schema 与工具集自己写脚本试
测试挑边界输入喂给模板自己写脚本试

第一行收益最大:判断"这个回答对不对"的人,原来恰好是离运行环境最远的人。

协作分工的边界也要清楚。非工程角色负责判断与措辞,工程角色负责 schema 与工具的实现正确性。两边在同一个界面里看到同一份输出,争议就少一半。

模板库 模型 Playground 领域专家 模板库 模型 Playground 领域专家 alt [判断为改善] [判断为退化] 提出措辞修改想法 跑一组固定考题 返回新输出 展示新旧对比 判断是否更贴近业务 建议合入新版本 再提下一轮想法

时序图里专家全程不碰代码,判断动作发生在看到真实输出之后。alt 块收在 end,两条出路都通向下一轮迭代。

这套流程能跑的前提是模板资产化:措辞存在模板库里而不是散在代码里。这正是第 65 篇做的那件事,也是本篇能"不写一行代码"的原因。

闭环讲完了。接下来这一章把本篇里最容易踩的坑列成对照表与决策流程。

8. 边界与坑

8.1 失败模式对照表

把本篇各章埋过的坑集中列一次。

失败模式白话描述后果对应章节
一次换多件变量同时换模型又改模板差异归因不了第 2 章
只试不存好配置没进数据集与模板库下次从头再试第 5 章
当生产环境用在 Playground 跑大量真实流量界面与流程都不合适本章
忽略关联页不看 See also 的入口重复走弯路本章

第二行展开一下:只试不存的代价最隐蔽。当时觉得结论显然,三个月后换人接手,又要把同样的实验重跑一遍。

第三行来自 Playground 的定位。它是迭代与测试的界面,不是面向真实用户的服务。真实流量该走第 46 篇那条链路,观测用观测工具。

第四行也值得说:官方 See also 区给了五条关联入口,都与本篇直接相关。跳过它们容易在细节上自己猜。

不止一件

一件

能且只是方向性

不能或要定稿

是

否

想改提示词配置

改几件可变项

拆成多轮单变量实验

Playground 跑固定考题

肉眼能下结论吗

记录结论与配置

发起数据集评测

按实验对比结果定稿

是否还要批量跑请求

走评测与观测链路而不是界面

配置回写模板库收尾

收尾并记录

图里三个菱形对应三道闸门:变量数、结论类型、请求量。任何一道闸门判断错,后面就会踩表里的坑。

# 来源:自实现 / 演示清单
# 收尾前一遍核对
1 本轮实验的六件可变项取值是否已记录
2 结论是否写明数据来源:几条考题还是整个数据集
3 赢的配置是否已回写模板库或数据集
4 未决问题是否标注为待验证而不是已验证
5 涉及评测与 Chat 的细节是否标注以官方页为准

# 核对方式:
# 第 1 条翻本轮实验记录逐项对
# 第 3 条以模板库或数据集里能检索到为准
# 第 5 条检查文中是否留了官方页链接

第 4 条最常被违反:界面上看了一眼觉得会更好,记录里就写成了"已验证"。把猜测与验证分开记,是这一篇反复出现的纪律。

8.2 评测与 Chat 细节以官方页为准

本篇有两个话题刻意停在入口处。

评测细节:评估器的配置方式、可用类型、从 Playground 发起评测的具体步骤,本篇没有展开。这些内容在 run-evaluation-from-playground 页,以该页为准。

Chat 细节:入口位置、对话可用的具体操作、三条辅助能力的完整边界,本篇同样没有展开。这些内容在 chat 页,以该页为准。

不展开的原因与写作纪律有关。这两页的界面细节更新较频繁,转述容易过期。入口与定位已经足够支撑工作流决策,细节以官方页为唯一来源。

话题本篇给出的需要查官方页的
从 Playground 跑评测定位与用途评估器配置与操作步骤
创建实验入口与自检清单界面步骤与可配项
Chat 辅助三条能力清单对话操作与完整边界

官方 See also 区还给了另外几条关联入口。分别是 prompt-engineering-concepts 的 Playground 小节、manage-datasets 的 From the Playground、observability-studio 的 Playground 小节。它们对应提示词方法、数据集沉淀与观测视图三个方向,链接都在外部引用一章。

三条 See also 入口各自指向一件本篇提到的收尾动作。逐条看一遍就知道去哪补齐。

See also 入口对应本篇的哪件事
prompt-engineering-concepts 的 Playground 小节第 65 篇的提示词方法延续
manage-datasets 的 From the Playground第 5 章把好输入沉淀成数据集
run-evaluation-from-playground 的创建实验第 5 章发起评测的入口
observability-studio 的 Playground 小节第 7 章上线后的观测视图
chat 的 Playground 小节第 6 章 Chat 辅助的操作细节

第二条值得单独强调。Playground 里试出来的一组好输入,只有进了数据集才能长期复用。不存进去,就是第 8.1 节说的只试不存。

# 来源:自实现 / 演示清单
# 查官方页之前的定位三问
问题一  我要的是定位还是操作步骤
  定位本篇已给,操作步骤去官方页
问题二  这个细节会不会随版本变
  会变的界面细节一律以官方页为准
问题三  不查这个细节能否推进工作流
  能推进就先推进,细节留到要用时再查

# 目的:避免在细节上空转,把时间留给实验本身

三问的意图是控制查文档的时机。入口知识够用就先跑实验,等真要配评估器时再精读官方页。

一句话收束:本篇能用界面说清的事已经说完,剩下的事以官方页为准。

总结

这一篇把第 65 篇做好的模板接进了一个不写代码的测试台。Playground 的官方定位是提供迭代与测试提示词和模型配置的界面,用法是在一系列输入上测试并看得分,无需写任何代码。

六件可变项是全篇的骨架:换模型、换模板、换输出 schema、换工具、输入变量、跑起来观察输出。方法论只有一条:一次只换一件,其余五件锁死,跑完记录结论。

从 Playground 能在数据集上跑评测并给结果打分。这是肉眼观察升级为可比结论的关卡。Chat 辅助提供优化提示词、生成工具、创建输出 schema 三条能力。它给初稿,实验给裁决。

工作流的位置也清楚了。第 65 篇做模板,本篇试配置,第 63 篇评测定型,第 46 篇上线观测。线上问题回流到本篇,开始下一轮。评测与 Chat 的界面细节,以 run-evaluation-from-playground 页与 chat 页为准。

外部引用

Logo

一站式 AI 云服务平台

更多推荐