Prompting、模糊与精确
Source: Dev.to

我正在和 Shiry(我们敏锐的产品经理)一起进行一次会话,演示 Claude Code Web 的功能。我们挑选了一个可有可无的特性来实现:在数据表中反映当前的过滤器状态。
产品的表格有数十列。用户可以通过一个或多个列的值来过滤行,也可以随意显示或隐藏列。
问题所在: 用户可能已经启用了过滤器,却根本不知道自己在过滤哪些列。要在列标题中找到过滤指示器,他们必须水平滚动表格,甚至可能需要先把当前隐藏的列显示出来。这简直是一场捉迷藏。
第一次尝试:对问题描述模糊,对解决方案描述精确
我让 Claude Code 在表格上方添加一个已过滤字段的列表:
Add next to the text of "Showing 21 items", the fields we are filter
the items by (if any). e.g. "Showing 21 items, filtered by Name and Country".
它写好了代码,提交并推送。我们等待构建完成,检查预览环境,得到了正是我要求的:一串丑陋的字段名称列表。
第二次尝试:对问题描述精确,对解决方案描述模糊
我们重新开始。
Shiry 是使用 LLM 构建原型的高手,她建议我再试一次。这次她口述了提示词:
On the items table, I want to help the user understand that there is an active filter and what it is.
(without having to look for it on the columns' headers, to scroll, or find hidden column with filter, etc.)
这一次我们对解决方案的描述非常模糊,但对问题的描述却非常精准,和我在本文开头的描述完全一致。
结果让我印象深刻。
Claude Code 没有只给出一段纯文本列表,而是渲染了一行“芯片”。每个芯片显示字段名称以及所选的过滤值。如果选择的值超过两个,则显示数量而不是全部值。每个芯片右侧都有一个小 X,用于移除该字段的过滤。当多个过滤器同时激活时,还会出现一个 “clear all” 按钮。

天壤之别。第二种实现的效果提升了一个数量级。它看起来熟悉、专业且更实用——完全像是设计师的作品。
教训
- 当我描述了解决方案时,模型会构建我所描述的方案。
- 当我描述了问题时,模型会自行解决问题,且常常找到比我想象中更好的方案。
对问题要精准,对解决方案要模糊。