定义
5C Prompt Contract(5C 提示契约)是由 Ugur Ari 提出的极简提示设计框架,将提示工程精炼为五个直观组件:Character(角色)、Cause(原因)、Constraint(约束)、Contingency(应变)、Calibration(校准)。该框架旨在平衡结构控制与创意自由度,同时实现极高的 token 效率。
核心组件
1. Character(角色)
定义 AI 的身份、专业知识、语气风格和行为特征。
你是一位拥有 15 年经验的科技行业产品经理,擅长将复杂技术概念转化为用户友好的产品说明。
2. Cause(原因/目标)
明确任务的目的、预期成果以及为什么要完成这个任务。
目标:为即将发布的企业级 SaaS 产品撰写产品说明文档,帮助潜在客户理解产品价值和核心功能。
3. Constraint(约束)
设定边界条件、资源限制、执行规则和排除项。
约束:
- 文档长度不超过 800 字
- 避免使用技术术语,使用通俗语言
- 包含至少一个客户成功案例
- 不要提及竞争对手
4. Contingency(应变)
定义备用方案、错误处理机制和安全回退策略。
如果无法获取足够的产品信息,请:
1. 列出需要补充的关键信息点
2. 提供一个通用的模板框架
3. 说明完成文档所需的后续步骤
5. Calibration(校准)
输出优化指令,包括质量标准、验证步骤和迭代要求。
校准:
- 完成后自检:文档是否回答了"这是什么"、"为什么需要"、"如何使用"三个核心问题
- 确保每个功能点都对应一个具体的用户收益
- 使用积极的、以结果为导向的语言
框架优势
Token 效率
5C 框架的核心优势在于极高的输入 token 效率:
| 提示风格 | 平均输入 Token | 相对效率 |
|---|---|---|
| 5C | 54.75 | 基准 |
| DSL | 348.75 | 6.4x 更多 |
| 非结构化 | 346.25 | 6.3x 更多 |
跨模型表现
在 OpenAI、Anthropic、DeepSeek、Gemini 四大模型家族测试中,5C 框架均表现出色:
- Gemini 效果最显著:5C 仅需 54 tokens,而 DSL 需要 1,212 tokens
- 输出质量:在保持创意丰富度的同时,一致性优于非结构化提示
- 创意自由度:相比 DSL 的刚性结构,提供更多语义探索空间
与传统 DSL 对比
| 维度 | 5C Framework | DSL |
|---|---|---|
| 学习曲线 | 平缓,直观易懂 | 陡峭,需学习标记语法 |
| Token 开销 | 极低 | 高 |
| 认知负载 | 低,聚焦核心要素 | 高,需处理多层嵌套 |
| 创意自由度 | 高,LLM 保留”熵预算” | 受限,语法合规消耗创意 |
| 可移植性 | 跨模型、跨平台 | 依赖特定 DSL 实现 |
| 结构化程度 | 中等,平衡灵活与规范 | 高,严格的标记语言 |
适用场景
推荐使用
- Token 敏感的应用(高频 API 调用)
- 需要平衡结构与创意的任务
- AI 工程资源有限的个人/中小企业
- 快速原型设计和迭代
- 多模型部署(需要跨模型一致性)
可能不适用
- 需要严格 schema 验证的场景
- 企业级 templates 标准化需求
- 复杂的多步骤工作流编排
实践建议
- 从 Character 开始:明确定义角色是其他组件的基础
- Constraint 要具体:模糊的限制会产生模糊的输出
- Contingency 不要省略:定义回退策略提升可靠性
- Calibration 用于质量控制:把它当作内置的质检步骤
- 保持简洁:5C 的优势在于极简,避免过度扩展
知识冲突
5C vs 复杂 DSL 之争
5C 立场(Ugur Ari):
- 复杂 DSL 的 token 和认知开销限制了 LLM 的”熵预算”
- 简化结构让 LLM 专注于语义理解和创意生成
- 特别适合资源受限的场景
复杂 DSL 立场(部分企业实践):
- 严格的标记语言提供更好的可预测性和可验证性
- 适合需要精确输出格式的生产环境
- 便于程序化处理和解析
调和观点: 两种方式各有适用场景。5C 适合创意任务和资源敏感场景,复杂 DSL 适合结构化输出和严格验证场景。实际应用中可以根据任务类型选择或组合使用。
关联连接
- Prompt_Engineering — 提示工程总览
- 摘要-5c-prompt-contracts-paper — 原始论文来源
- DSL_Prompting — 域特定语言提示
- Token_Efficiency — Token 效率优化
- Prompt_Design — 提示设计方法论
- 5c-prompt-markdown-note-taking — 5C 在 Markdown 知识笔记中的应用