拆.
提示词——AI 怎么'听懂'你的话 · 第 06

Gemini 是粗心学生

9 个示例 + 量化指标

4400读完约 23 分钟craft:B+发布于 2026-06-21

一、原理:Few-shot 与 zero-shot 的本质差别

如果说 Claude 的病是"价值观偏差"、GPT 的病是"行为习惯",Gemini 的病更像"学习方式不同"。

Gemini 在很多评测里表现都不错——它的"硬实力"(推理、知识、长上下文)在 Google 持续迭代下不输 Claude 和 GPT。但 Gemini 在 Agent 场景里有一种特殊的"粗心"——它经常在细节上出错,不是因为不会,是因为"没真的看"。

具体表现:

  • 你说"用 absolute path",Gemini 第一次用相对路径
  • 你说"按 5 步流程",Gemini 经常跳过第 3 步
  • 你说"先 read 再 edit",Gemini 经常直接 edit
  • 你说"输出 JSON",Gemini 给的 JSON 有时少个引号

这些都不是 Gemini 的能力问题——给它讲一遍它都懂。但它的执行经常"抄近路"——按它对你意图的猜测来做,而不是按你的字面指令做。这是个 SFT 数据问题:Gemini 的训练数据里可能大量"灵活理解用户意图"的样本,导致它学会了"猜意图比按字面执行更受奖励"。

但这个学习方式在 Agent 场景里是灾难。Agent 的工具调用是精确的——参数错了工具就 fail。"灵活理解"等于"经常出错"。

那怎么治这种病?这就引出了 prompt engineering 里一个根本性的话题:few-shot 和 zero-shot 的差别

Zero-shot——你直接告诉模型规则,让它按规则执行。"输出 JSON、用 absolute path、5 步流程"。规则是抽象的,模型需要"理解 + 执行"两步。

Few-shot——你给模型几个具体例子,让它从例子里学规则。"看,这种问题应该这样回答(例 1)、这种应该这样(例 2)……" 模型只需要"模仿",不需要"理解抽象"。

这两种方式哪个效果好?取决于模型。对于擅长抽象推理的模型(Claude),zero-shot 通常够用——它能从规则推到执行。对于"擅长模仿但不擅长抽象"的模型(早期 GPT-3、Gemini),few-shot 显著优于 zero-shot——给例子能让它知道"具体应该长什么样"。

Gemini 是 few-shot 学习者。它能模仿例子里的行为,但单看抽象规则就经常"放松要求"。这是为什么 opencode 的 gemini.txt 是 5 张脸里唯一一份大量用 in-context examples 的 prompt

二、案例:gemini.txt 的 9 个示例 + 量化指标

打开 packages/opencode/src/session/prompt/gemini.txt,扫一遍你会注意到一个特别的现象——它有 9 个完整的对话示例

其他几张脸的示例数量:

  • anthropic.txt:2 个(嵌在 TodoWrite 段落里)
  • gpt.txt:0 个独立示例
  • beast.txt:0 个独立示例
  • default.txt:4 个简短示例("what is 2+2"→"4" 这种)

只有 gemini.txt 有 9 个明确的、完整的示例。每个示例长这样:

<example>
user: 1 + 2
model: 3
</example>

<example>
user: How do I read a file in Python?
model: Use open() with a context manager:
```python
with open('file.txt', 'r') as f:
    content = f.read()
</example> <example> user: list files in current directory model: ls </example> ```

9 个示例覆盖:简单算术、代码片段问答、CLI 命令、工具调用、错误处理、多步骤任务、长上下文、格式遵守、拒绝执行——基本覆盖了 Gemini 在 Agent 场景里会遇到的所有情形。

这种"9 个示例"的策略本质上是用模仿替代规则。Gemini 不再需要"理解我们说的 concise",它看到示例就知道"哦 concise 就是这种样子的"。

gemini.txt 还有第二个特征——量化指标比其他脸更密

对比同一件事在三张脸里的表述:

gpt.txt 关于简洁

Keep responses to the minimum length needed to convey the answer. Brevity is professional.

anthropic.txt 关于简洁

Be direct and concise.

gemini.txt 关于简洁

Aim for fewer than 3 lines of text output. Reserve longer responses for genuinely complex topics.

注意区别——gpt 和 anthropic 用形容词("minimum", "professional", "direct", "concise"),gemini 用具体数字("fewer than 3 lines")。

为什么 gemini.txt 要量化?因为形容词是抽象的,Gemini 对抽象遵守度低。"3 行"是具体的,没解释空间——少于 3 行就是少于 3 行,多了就是违反指令。

gemini.txt 里这种量化指标到处都是:

  • "fewer than 3 lines of text output"
  • "use at most 5 lines for complex explanations"
  • "complete the task in fewer than 10 steps when possible"
  • "respond within 200 tokens for simple questions"

这种量化是给 Gemini 的"标尺"。它有了具体的数字,遵守起来比"应该简洁"容易得多。

gemini.txt 还有第三个特征——5 步工作流的强制结构

For tasks involving code modification, follow this 5-step workflow:
1. Understand - Read the relevant files
2. Plan - Outline the changes  
3. Implement - Make the modifications
4. Verify (Tests) - Run tests if applicable
5. Verify (Standards) - Check lint, format, type-check

这个 5 步流程是给 Gemini 的"步骤刻度尺"。没有这个流程,Gemini 经常会跳过其中某些步骤(比如不 verify 直接结束)。有了明确的编号步骤,它会按顺序走。

这种强制结构对 Claude 可能反而限制——Claude 自己能判断什么时候跳过哪步。但对 Gemini 是必要的——它不会主动按合理顺序做事,需要明确的步骤指引。

把这三个特征合起来——9 个示例 + 量化指标 + 5 步工作流——gemini.txt 形成一种独特的"教科书"风格。它不像 anthropic.txt 那么"姿态化",也不像 gpt.txt 那么"压迫式",它更像一份新员工培训手册:先看例子、再按数字、再按流程。

这正是 Gemini 需要的——一个粗心的学生需要的不是哲学说教(anthropic),不是禁令清单(gpt),是清晰的范例 + 可执行的步骤。

三、设计启示:什么时候用示例胜过规则

这一章的核心论点:模型的"学习方式"决定了 prompt 的策略——规则型 vs 示例型不能互换

如果你做 AI 产品,下面的判断框架有用:

判断 1:这个模型对抽象规则的遵守度高吗?给它 5 条抽象规则,它能不能正确执行?如果失败率 < 10%,它是规则型学习者(Claude 倾向)。如果失败率 > 20%,它是示例型学习者(Gemini 倾向、早期 GPT 倾向)。

判断 2:你的指令本身是抽象的吗?"输出 JSON" 是抽象(什么算 JSON?严格语法?带注释的?)。"输出符合 schema X 的 JSON,例如 {a: 1, b: 'hello'}" 是具体。如果指令本身能写得具体,规则型也能用;如果指令本身就抽象,示例型几乎必需。

判断 3:你的产品是长上下文还是短上下文?示例占 token。9 个示例可能占 1K-2K tokens。在短上下文场景这不算什么,在长上下文场景每 1K token 都很贵。如果是 cost-sensitive 的产品,用规则;不 cost-sensitive 的用示例。

判断 4:你的产品要求严格遵守还是创造性输出?严格遵守的场景示例更有效——示例给了"标杆"。创造性场景示例反而有害——它会限制模型的发挥。

把这些判断用到不同场景:

写代码场景——通常要严格遵守格式和约定,所以示例有效。但如果场景是"按用户需求自由发挥",示例反而限制创意。

问答场景——通常需要根据问题灵活回答,规则更合适。但如果是"按特定格式问答"(比如客服),示例更合适。

多步骤 Agent 场景——通常需要严格按工作流执行,所以"5 步工作流"+ 示例都有效。

翻译场景——通常需要保持原文语义、调整目标语言风格,示例(特别是"原文 → 译文"对照)效果远好于规则。

最后一个观察。Gemini 对示例的依赖在某些场景下是优势。一个产品如果能给 Gemini 提供清晰的示例库,Gemini 的"模仿质量"可以非常高——比 Claude 在同样示例下的输出更稳定(因为 Claude 会"创造性发挥",不严格模仿)。

这意味着模型选择不是简单的"谁更好",是"谁适合你的场景":

  • 需要稳定输出 → Gemini + 示例
  • 需要创造性 + 自主判断 → Claude
  • 需要快速 + 简洁 → 配 prompt 紧的 GPT
  • 需要持续探索 → Beast Mode(详见 1.3 章已讲过)

每个模型都有自己的"最佳搭配 prompt 类型"。理解这一点,你才能把多模型 AI 产品做到位。

下一章 1.7 我们看 default.txt——没有特定模型适配时的兜底,背后藏着的是"最小特化集合"的产品哲学。