3.Prompt engineering
保持清晰、直接和详细
使用示例(多示例提示)来引导Claude的行为
思维链
好的结构化提示技术
XML结构化提示词
XML提示: 使用像<instructions>
、<example>
和<formatting>
这样的标签来清晰地分隔提示的不同部分。这可以防止Claude混淆指令与示例或上下文。
标签使用最佳实践
- 保持一致性:在整个提示中使用相同的标签名称,并在谈论内容时引用这些标签名称(例如,
使用<contract>标签中的合同...
)。 - 嵌套标签:对于层级内容,你应该嵌套标签
<outer><inner></inner></outer>
。
通过系统提示给Claude分配角色
就是设置系统提示词罢了。
预填充Claude的回复以获得更好的输出控制
import anthropic client = anthropic.Anthropic() response = client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=1024, messages=[ {"role": "user", "content": "你最喜欢的颜色是什么?"}, {"role": "assistant", "content": "作为一个AI助手,我没有最喜欢的颜色,但如果非要选择的话,我会选择绿色,因为"} # 在此处预填充 ] )
预填充就是
Note
要进行预填充,请在Assistant
消息中包含所需的初始文本(Claude的回复将从Assistant
消息结束的地方继续):
链式复杂提示以获得更强的性能
就是大任务划分为小任务,然后使用multiagent(prompt)来解决问题!
在处理复杂任务时,如果你试图在单个提示中处理所有内容,Claude有时可能会出现失误。思维链(CoT)提示很好,但如果你的任务有多个需要深入思考的不同步骤怎么办?
如何链接提示
- 识别子任务:将任务分解为不同的、连续的步骤。
- 使用XML构建清晰的交接:使用XML标签在提示之间传递输出。
- 设定单一任务目标:每个子任务应该有一个明确的单一目标。
- 迭代:根据Claude的表现改进子任务。
链式工作流程示例:
- 多步骤分析:参见下面的法律和商业示例。
- 内容创建流程:研究 → 大纲 → 草稿 → 编辑 → 格式化。
- 数据处理:提取 → 转换 → 分析 → 可视化。
- 决策制定:收集信息 → 列出选项 → 分析每个选项 → 推荐。
- 验证循环:生成内容 → 审查 → 改进 → 重新审查。
Note
优化提示:对于具有独立子任务的任务(如分析多个文档),创建单独的提示并并行运行以提高速度。
长文本提示技巧
https://docs.anthropic.com/zh-CN/docs/build-with-claude/prompt-engineering/long-context-tips