基于本文回答

播面 播面

文图音视,全方位拆解八股文
0
评论

在 Agent 语境下,Zer-shot、One-shot 和 Few-shot Prompting 有什么区别?

知识点图片

AI Agent(智能体) 的语境下,Zero-shot、One-shot 和 Few-shot Prompting 的核心区别不仅仅在于“给了几个例子”,而在于模型是如何学习“思考路径(Reasoning)”和“工具使用(Tool Use)”的

Agent 的核心通常涉及 感知 -> 规划 -> 行动(调用工具) -> 反馈 的循环。这三种提示策略决定了 Agent 如何理解这个流程。

我们可以用“教新员工做事”来类比这三者:


1. Zero-shot Prompting (零样本提示)

定义:
你不给模型任何具体的示例,只给出任务描述可用工具的定义系统指令(System Prompt)。模型完全依赖其预训练知识和指令遵循能力来推断该怎么做。

Agent 语境下的特点:

  • 依靠通用逻辑: Agent 必须自己“悟”出如何将用户意图转化为工具调用。
  • 测试泛化能力: 用于测试模型是否真正理解了工具的文档描述。

示例 (Prompt):

System: 你是一个天气助手。你可以使用 get_weather(city) 工具。
User: 帮我查查北京的天气。

Agent 的内部反应:

(模型完全靠自己理解) -> “用户要天气,我有天气工具,所以我应该输出:Action: get_weather('Beijing')”

优缺点:

  • 优点: 最节省 Token(成本低),响应速度快,最灵活(不受示例限制)。
  • 缺点: 在复杂任务中容易“幻觉”(比如编造参数),或者输出格式不符合要求(比如忘记输出 JSON 格式)。

2. One-shot Prompting (单样本提示)

定义:
你在 Prompt 中提供一个完整的“输入 -> 思考 -> 行动 -> 输出”的示例。

Agent 语境下的特点:

  • 规范格式: 主要用于告诉 Agent “输出长什么样”
  • 启动引导: 就像给新员工演示了一遍标准操作流程。

示例 (Prompt):

System: 你是一个助手。
Example:
User: 谁是埃隆·马斯克?
Thought: 用户在问名人信息,我需要搜索。
Action: search_wiki("Elon Musk")
Observation: 埃隆·马斯克是 SpaceX 的 CEO...
Final Answer: 埃隆·马斯克是知名企业家...

User: 谁是奥巴马?

Agent 的内部反应:

(模型模仿示例的结构) -> “刚才那个例子是先思考再搜索,那我也照着做:Thought: 用户问名人... Action: search_wiki('Obama')”

优缺点:

  • 优点: 能显著修正 Agent 的输出格式(比如强制要求输出 JSON 或特定的 ReAct 格式)。
  • 缺点: 容易导致过拟合。例如,如果示例是“查天气”,当用户问“算加法”时,Agent 可能会错误地尝试去查天气,因为它以为所有任务都要像示例那样处理。

3. Few-shot Prompting (少样本提示)

定义:
你提供多个(通常 2-5 个)不同场景下的完整示例。这在学术上也被称为 In-Context Learning (上下文学习)

Agent 语境下的特点:

  • 教导复杂逻辑: 通过不同的例子,教会 Agent 如何处理分支情况错误处理多步推理
  • 工具选择能力: 可以展示一个例子用工具 A,另一个例子用工具 B,第三个例子拒绝回答,从而教会 Agent 决策边界

示例 (Prompt):

System: 你是一个全能助手。
Example 1 (简单查询):
User: 你好。
Agent: 你好!有什么我可以帮你的吗?

Example 2 (需要工具):
User: 234 乘以 89 等于多少?
Thought: 这是一个数学计算。
Action: calculator(234, 89, "*")

Example 3 (多步任务):
User: 帮我定个明天去上海的闹钟。
Thought: 我无法直接定闹钟,但我可以查询去上海的航班,或者你需要提醒?
Final Answer: 对不起,我只能查询信息,无法设置手机闹钟。

User: 现在的美元汇率是多少?

Agent 的内部反应:

(模型通过对比学习) -> “这既不是打招呼,也不是拒绝回答的任务,这像 Example 2 需要用工具。所以我应该调用汇率工具。”

优缺点:

  • 优点: 极大提升 Agent 处理复杂任务的稳定性、准确率和推理能力;能有效减少幻觉。
  • 缺点: 消耗大量 Token(成本高),增加延迟(Latency),且如果示例质量不高,会误导模型。

总结对比表

特性 Zero-shot (零样本) One-shot (单样本) Few-shot (少样本)
类比 直接下命令:“去干活” 演示一次:“看我做一遍” 培训课:“这是情况A的处理法,那是情况B的处理法...”
Agent 核心作用 依赖模型智商,测试泛化 规范输出格式 (Format Compliance) 提升推理逻辑 (Reasoning) & 处理边缘情况 (Edge Cases)
Token 消耗
适用场景 简单对话、通用任务、模型能力极强时 (如 GPT-4) 需要特定 JSON 结构、特定语气时 复杂的多步决策、需要使用生僻工具、容易出错的任务
常见风险 格式错误、胡乱调用工具 过度模仿 (Overfitting) 上下文窗口溢出、成本昂贵

在 Agent 开发实战中的建议:

  1. 起步: 先用 Zero-shot 配合强大的模型(如 GPT-4o, Claude 3.5 Sonnet)测试 Prompt。
  2. 规范: 如果 Agent 总是忘记输出 JSON 或者忘记写 Thought:,加入 One-shot
  3. 优化: 如果 Agent 在选择工具时经常选错,或者遇到困难问题就卡住,构建高质量的 Few-shot 示例集(包含正例和反例)。
00:00
00:00