Press "Enter" to skip to content

从入门到进阶:Anthropic 1P 提示工程互动教程(中文整理)

一份面向实战的 Claude 提示工程学习笔记。涵盖基础结构、角色设定、变量模板、输出格式化、思维链、Few-shot、降低幻觉、复杂提示编排,以及提示链、工具调用与检索增强等进阶主题。

0. 教程使用指南

  • 使用 Messages API(推荐)进行对话,基本参数:modelmax_tokensmessages,可选:systemtemperature
  • 建议设置 temperature=0 以获得更稳定输出。
  • 函数封装:建立 get_completion(prompt, system_prompt="", prefill="") 便于统一调用。
  • 运行顺序:从上至下执行单元;跨 Notebook 使用 %store 共享变量,如 API_KEYMODEL_NAME

1. 基础提示结构(Basic Prompt Structure)

  • 最小调用格式:messages=[{"role":"user","content": "..."}]
  • 规则:
    • 会话轮次必须严格交替:user / assistant
    • 第一个消息必须是 user
    • 可用 system 传入全局指令,例如语气、角色、边界。
  • 示例要点:
    • 错误示例:缺少 role/content 字段;不按角色交替。
    • system prompt 可强力提升规则遵循度(如要求用提问式输出)。

2. 清晰直接(Being Clear and Direct)

  • 核心准则:像指导一位新同事一样,直截了当、具体明确。
  • 常见技巧:
    • 直接要求“跳过前言”、“只输出一个名字且无其他字符”。
    • 明确“若必须二选一,请给出你唯一的选择并直答”。
    • 对长度或风格做硬性约束(如 800+ 字、严禁解释)。

3. 角色设定(Assigning Roles / Role Prompting)

  • 为模型设定“身份+受众+任务”能显著改变风格与表现。
  • 应用场景:文风控制、逻辑/数学提升、面向特定行业(法务/金融/客服)。
  • 技巧:
    • systemuser 中写清:你是谁、对谁说、以什么方式做题。
    • 针对推理任务可设定“逻辑机器人”“数学批改员”等角色。

4. 数据与指令分离(Separating Data and Instructions)

  • 用变量与模板复用提示骨架;把“指令”和“数据”清晰分隔。
  • 强烈建议用 XML 标签包裹可变输入,避免歧义:
    • 例如:<email>...</email><sentences>...</sentences>
  • 小细节很重要:错别字、误导性标点会影响解析效果。

5. 输出格式化与“代说”(Formatting Output & Speaking for Claude)

  • 让 Claude 用你希望的格式输出:XML/JSON/自定义标签。
  • Prefill(代说):在 assistant 放入起始输出(如 <haiku>{),模型会从此处继续生成,更稳更贴合。
  • 可结合 stop_sequences(如闭合标签)提前停采样,节省 Token。

6. 先思考再作答(Precognition / Thinking Step by Step)

  • 指示“先在某标签内思考,再给最终答案”可显著提升复杂任务正确率。
  • 注意顺序敏感:在对立选项时,模型常倾向第二项;可通过结构与引导减小偏置。
  • 适用:情感判定、常识/事实检索、复杂指代、多步问题。

7. 用示例引导(Few-Shot Prompting)

  • 通过“好/坏示例”快速对齐风格与格式,比纯口头指令更高效。
  • 实践要点:
    • 示例与目标任务尽量贴近,格式完全对齐(含标签、大小写)。
    • 可用 assistant prefill 提供结构起点(如 <individuals>)。

8. 降低幻觉(Avoiding Hallucinations)

  • 原则:
    • 给“台阶”:不确定时要明确说“不知道/证据不足”。
    • 先抽取证据/引用,再基于证据作答;答案需与证据一一对应。
    • 对缺失信息,要求“指出缺口并给出收集方法”,而非编造。
  • 正确性工程:
    • 结构化链路:<relevant_quotes><answer>
    • 明确引用样式与证据对应关系。

9. 从零构建复杂提示(Complex Prompts from Scratch)

  • 推荐结构(可按需增减):
    1. 任务/身份背景(Task/Tone Context)
    2. 详细规则与出错兜底(“不知道就直说”)
    3. 示例(包含边界/异常)
    4. 输入数据(XML 包裹)
    5. 即时任务重申(底部再强调要做什么)
    6. 先思考再回答(思维链/草稿区)
    7. 输出格式(统一标签/JSON)
    8. Prefill(可选,给出开头)
  • 行业范式:法务 Q&A、税务解析、代码导师等都可沿用该骨架。

10. 附录

10.1 提示链(Chaining Prompts)

  • 通过多轮对话让 Claude“二次检查/润色/改写”,通常能提升质量。
  • 把上一步的 assistant 输出直接作为下一轮的“已知上下文”输入。
  • 给“不需要更改”的出路,减少过度修改。

10.2 工具使用(Tool Use / Function Calling)

  • 思想本质:让 Claude 产出“函数调用请求”,由外部执行,再把结果回填,继续对话。
  • 两要素:
    • 系统提示:交代工具清单、参数、调用格式、何时调用与何时不调。
    • 编排逻辑:检测 </function_calls>,解析参数,执行函数,构造 <function_results> 回注。
  • 用例:计算器、简易“数据库”CRUD、天气/检索等。

10.3 搜索与检索增强(Search & Retrieval, RAG)

  • 借助外部资料提高时效性与准确度:Wikipedia、自有知识库、向量数据库等。
  • 关键点:切片与召回、引用与证据、再写作(总结/整合/转述)。

实操速查清单

  • 系统指令(全局约束)
    • 明确身份、语气、边界与“不会就说不知道”。
  • 输入模板(复用+可维护)
    • 指令与变量分离;变量用 XML 包裹;小心错别字与标点。
  • 输出格式(结构化)
    • XML/JSON;必要时用 Prefill 起手;可设置 stop_sequences
  • 思维链与示例
    • 先思考后回答;给 1-3 个贴近任务的高质量示例。
  • 可信度与反幻觉
    • 先抽取证据再作答;严格对齐证据;不确定就拒答。
  • 复杂提示骨架
    • 背景 → 规则 → 示例 → 输入 → 即时任务 → 思维链 → 格式 → Prefill。
  • 进阶编排
    • 提示链:复核/润色/改写;工具使用:函数调用-回填-继续。

常见坑与规避

  • 忽略角色与轮次交替 → 严格 user/assistant
  • 指令与数据混杂 → 用 XML 清晰分隔。
  • 口头化要求太模糊 → 给示例,给格式。
  • 让模型“只给答案不思考” → 思维链必须外显,否则难以生效。
  • 长提示信息量过载 → 结尾处再次明确“现在要做什么”。

可直接复用的微模板

  • 清晰直答(无前言):
    • “请直接回答问题本身,省略任何前置说明或客套话。”
  • 唯一选择:
    • “如果必须二选一,请只输出你的唯一选择的名称,不要任何其他字符。”
  • 变量模板:
    • “请基于以下输入生成结果:{VAR}。除结果外不输出其他内容。”
  • 思维链+证据:
    • “先在 内列出与问题相关的原文要点,再在 内作答;若证据不足,请在 明确说明不知道。”
  • 输出 JSON:
    • Prefill assistant{,指示键集合与值类型;设置 stop_sequences} 后的自定义终止项(可选)。

结语

这套 Anthropic 1P 互动教程覆盖了从基础到进阶的完整提示工程方法论。建议以“可运行的最小闭环”为目标:先用足元素拿到稳定正确,再逐步瘦身优化。结合提示链、工具调用与检索增强,你可以把 Claude 打造成可靠的行业助手与生产力伙伴。

如需,我可以把本文转成 README.md 并推送到你的项目中,或生成一版含最小可复制代码片段的“速用手册”。

参考资料

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注