Docs · App Dev Guide

大模型应用开发

从 Prompt 工程到 AI Agent,一站式覆盖大模型应用开发全链路 —— 让你能在 1 周内跑出生产级 MVP。

Prompt · Zero-shot vs Few-shot

Zero-shot(零样本)和 Few-shot(少样本)是 2026 年最常用的 prompt 模式 —— 哪个适用?给几条示例最好?这章讲清楚。

Zero-shot:不给示例,纯靠指令

将下面句子分类为「正面 / 负面 / 中性」:
      "这家店的服务一般,但菜还行"
      
      → 输出:中性

适合场景:

  • 任务通用、模型本身已经会做(如翻译、分类、摘要)
  • 评估模型在某任务上的「天生能力」
  • 快速原型,不想准备示例
# Zero-shot 示例
      from anthropic import Anthropic
      client = Anthropic()
      
      resp = client.messages.create(
          model="claude-sonnet-4-5",
          max_tokens=50,
          messages=[{
              "role": "user",
              "content": "将下面句子分类为「正面/负面/中性」,只输出标签:\n\n这家店的服务一般,但菜还行"
          }]
      )
      print(resp.content[0].text)  # 中性

Few-shot:给 2–5 个示例

通过示例让模型模仿模式、风格、格式,效果远超纯文字描述。

将下面句子改写为更正式的版本:
      
      示例:
      "这玩意儿挺好用的""此工具具有较高的实用价值"
      "搞砸了""出现了重大失误"
      "牛批""表现卓越"
      
      待改写: "这代码烂得不行"

输出:「此段代码质量较为低下」 ← 完美匹配示例的风格。

几个示例最优?

社区共识 + 我的工程经验:

任务类型推荐示例数
简单分类 / 提取2–3 个
复杂格式转换3–5 个
多类别分类(如 10 类)每类至少 1 个,总数控制在 15 以内
创意性任务1–2 个(多了会限制创意)
💡

经验法则:示例数边际收益递减。从 0 → 3 是巨大提升,从 3 → 10 提升变小,从 10 → 20 可能反而过拟合。

选示例的 4 个原则

示例的质量比数量重要 10 倍。

1. 覆盖典型场景

# ❌ 全选一类的示例(模型会以为只有这种情况)
      "今天天气真好" → 正面
      "心情棒棒哒" → 正面
      "超级开心" → 正面
      
      # ✅ 覆盖各类
      "今天天气真好" → 正面
      "心情很糟" → 负面
      "还行吧" → 中性
      "虽然累但很充实" → 正面(含转折)

2. 覆盖 edge case

# 加 1–2 个棘手的示例
      "这服务态度真好(讽刺)" → 负面(隐含讽刺)
      "" → 中性(空字符串)
      "😊😊😊" → 正面(纯 emoji)

3. 示例风格与目标输出一致

如果你想要简短输出,示例就别写长。模型会模仿示例的长度

4. 用最新数据

不要用模型训练时已知的数据当示例(容易过拟合)。用你产品里真实的数据

Few-shot 的常见坑

坑 1:示例顺序影响输出

模型会更倾向最后 1–2 个示例的格式。把最重要的示例放最后。

坑 2:示例之间冲突

# ❌ 互相矛盾
      "今天累死了" → 负面
      "今天累并快乐着" → 正面(按情绪)
      "工作太累了" → 负面
      
      # 模型会困惑:「累」到底正还是负?

修复:给冲突示例加 reasoning

"今天累死了" → 负面(强烈负面情绪)
      "今天累并快乐着" → 正面(有转折,整体正面)
      "工作太累了" → 负面(无正面成分)

坑 3:超长示例占满上下文

每个示例都很长(如全文翻译)→ 几条就把 context 占满。先精简示例再加进 prompt

Anthropic / OpenAI 官方推荐

模型官方推荐示例数
Claude 4.53–5 个,结构化标记示例(用 <example> 标签)
GPT-52–4 个
Gemini 33–7 个(长上下文优势)

Claude 推荐的写法:

你是情感分析助手。请按示例格式分类。
      
      <examples>
      <example>
      输入: 今天天气真好
      输出: 正面
      </example>
      
      <example>
      输入: 心情很糟
      输出: 负面
      </example>
      </examples>
      
      输入: {user_input}
      输出:

<examples> 标签能帮 Claude 更好地区分「示例」和「真实任务」,提升效果约 10–15%。

何时考虑微调而非 Few-shot

如果你发现:

  • 一个任务需要 >20 个示例才能稳定
  • 示例每次都几乎一样
  • 每次调用都要塞这些示例浪费 token

那是时候考虑微调(fine-tuning)prompt caching 了 —— 这是另外的话题,先去 Prompt 工程化 看缓存策略。

下一节:CoT 链式思维 —— 处理推理类任务的杀手锏。