Skip to content

LLM Prompt 工程方法论:CO-STAR、六段框架与结构化 Prompt 交付模板

归类:Tools / AI 工程化 / Prompt Engineering 发生时间:2026-05-18 状态:✅ 已沉淀


一、什么是 CO-STAR?

CO-STAR 是新加坡政府技术局(GovTech)于 2023 年提出并在业内广泛传播的 Prompt 结构化框架,通过给模型设定六个维度的上下文,系统性地提升 LLM 输出的可控性与一致性。

字母英文中文作用
CContext背景给模型提供任务所在的场景、数据来源和业务上下文
OObjective目标明确模型需要完成的具体任务
SStyle风格指定输出的语气、表达风格或格式偏好
TTone语调设定交流语调(专业/亲切/严谨等)
AAudience受众说明输出内容的目标读者,影响措辞难度
RResponse响应定义输出的具体结构(JSON/Markdown/列表等)

核心思想:Prompt 不是一句话,而是一份结构化说明书;越精确的上下文给定,模型产生"幻觉"的空间越小。


二、六段框架与 CO-STAR 的关系

在结构化审核/推理类 Prompt 的落地实践中,CO-STAR 的六个维度往往需要进一步细化,尤其在以下两点上存在明显短板:

  1. Schema 缺失:CO-STAR 没有强调"字段级精确约束"的必要性。当输入数据涉及复杂嵌套 JSON 时,仅靠 Context 描述很难让模型准确理解每个字段的边界。
  2. Few-Shot 缺失:CO-STAR 没有将示例作为一级结构显式定义。对于强约束推理任务(如合规审核),缺少示例会导致模型在边界场景上产生不确定输出。

六段框架Role-Context-Schema-Rules-Few-Shot-Format)是在 CO-STAR 思想基础上,结合结构化审核场景实践沉淀出来的工程化延伸版本,并非业内固定标准。

维度CO-STAR 对应工程化延伸说明
Role(角色)Audience + Style + Tone集中为"给模型设定专业身份",激活领域专属知识
Context(背景)Context同源,说明数据来源与任务背景
Schema(数据契约)❌ CO-STAR 无此段原创延伸:字段级精确约束,是防止幻觉的核心机制
Rules(规则)Objective将目标细化为可逐条校验的业务规则列表,支持占位符动态注入
Few-Shot(示例)❌ CO-STAR 无此段原创延伸:正例+反例锚定模型的推理路径,覆盖所有边界场景
Format(输出格式)Response同源,强制 JSON 输出,消除后端解析的不确定性

总结:CO-STAR 是"思想",六段框架是"落地实现"。前者是行业公认的 Prompt 设计理论,后者是结合实际工程约束对其进行的业务侧二次沉淀,并非业内固定标准,可按需裁剪。


三、五条核心设计原则

原则一:Schema 字段级约束 > 自然语言描述

不好的写法

json
{ "fieldA": "字段类型" }

正确的写法

json
{ "fieldA": "字段类型,完整枚举:枚举值A | 枚举值B | 枚举值C(共N种)" }

原因:模型对"如:某类型、某类型"会进行推断和泛化,导致将语义相近但不完全匹配的值也视为合法值,产生幻觉误判。完整枚举强制模型执行精确的字符串匹配。


原则二:豁免规则必须精确指向字段名

不好的写法:"此类票据不需要匹配"
正确的写法:"若 invoice.fieldX 等于 '精确字符串值',该条目无需参与校验"

原因:自然语言描述允许模型进行语义推断,把语义相似的内容也视为豁免条件,扩大了豁免范围。精确字段名绑定消除了这种歧义。


原则三:Few-Shot 必须覆盖全部边界场景

示例的数量不等于质量。覆盖矩阵建议:

场景类型是否必须有对应示例
基础通过(所有规则满足)
单条违规(仅违反规则X)
多条复合违规
每条豁免规则各一个正例
边界歧义场景(如多值字段、空值字段)

原则四:规则与模板分离(参数化设计)

system_prompt_template.txt   ← 模板骨架(含 {task_type} 和 {rules} 占位符)
rules_definition.txt         ← 规则原子件(注入到 {rules})

优点

  • 业务规则变更时,只需修改 rules_definition.txt,模板不动
  • 多个业务场景可复用同一套模板骨架,只替换 {task_type}{rules}
  • 降低多端同步成本(前端 Demo/后端 API/算法脚本使用同一母本)

原则五:模型调用参数控制

参数推荐值原因
temperature0.1审核/判断场景要求确定性输出,高温度会导致结论漂移
max_tokens按输出格式预估JSON 输出通常远小于默认上限,适当限制可提升响应速度
重试策略指数退避(2s/4s/8s)避免因网络抖动导致单次失败终止整个审核链路
降级策略本地规则引擎兜底模型不可用时不应阻塞业务主流程

四、通用六段 Prompt 模板骨架(脱敏版)

以下模板可直接用于适配新业务场景,替换 内的占位符即可。

text
# Role
你是一名资深的 {{ 领域专家身份,如"财务审计员"/"合规审核员"/"数据质量检查员" }},
专注于对提交的 {{ 任务对象名称 }} 进行合规性审核,严格依据给定的规则进行判断,不做任何规则以外的推断。

# Context
你将接收一个 JSON 数据包,包含以下信息:
- `{{ 数据集合A }}`:{{ 集合A的用途说明 }}
- `{{ 数据集合B }}`:{{ 集合B的用途说明 }}
- `{{ 辅助数据C }}`:{{ 辅助数据C的用途说明 }}

# Schema(字段级数据契约)
```json
{
  "{{ 数据集合A }}": [
    {
      "{{ 字段1 }}": "{{ 字段1的含义,格式:YYYY-MM-DD,支持多值时以英文逗号分隔,需逐一校验 }}",
      "{{ 字段2 }}": "{{ 字段2的含义,如:金额,保留2位小数 }}",
      "{{ 字段3 }}": "{{ 字段3的含义,如:名称字符串 }}"
    }
  ],
  "{{ 数据集合B }}": [
    {
      "{{ 字段4 }}": "{{ 字段4的含义,完整枚举:枚举值1 | 枚举值2 | 枚举值3 | ... }}",
      "{{ 字段5 }}": "{{ 字段5的含义,豁免触发条件说明:有值即触发,空字符串不触发 }}"
    }
  ],
  "{{ 辅助数据C }}": ["{{ 数据格式,如:YYYY-MM-DD 字符串数组 }}"]
}

Rules(审核规则)

以下豁免条件下,相关条目可直接跳过校验:

  • 豁免E-1:若 . NaN "",无需参与
  • 豁免E-2:若 . 等于 "", 无需参与
  • 豁免E-3:若 . 有值(非空字符串),无需参与

Few-Shot(示例)

Example 1:基础合规通过

输入: 输出:

Example 2:

输入: 输出:

Example 3:豁免场景(E-1)

输入: 输出:

Example N:多项复合违规

输入: 输出:

Format(输出格式)

只输出以下 JSON,不输出任何其他内容,不包含 Markdown 代码块包裹

json
{
  "isPass": true/false,
  "auditResult": "自然语言描述审核结论(通过/拒绝原因)"
}

---

## 五、规则变更标准流程
  1. 业务方/产品明确新规则细节 ↓
  2. 更新 rules_definition.txt(规则原子件,单一事实来源) ↓
  3. 更新 system_prompt_template.txt(如涉及 Schema 字段变更) ↓
  4. 更新 prompt_full_readable.md(完整版可读文档,供产研交付参考) ↓
  5. 全链路同步:前端 Demo / 后端 API 调用代码 / 测试脚本 ↓
  6. Git 提交 + 通知相关团队

---

## 六、反向校验:脱敏检查清单

在将本框架复用到新业务时,用以下清单验证 Prompt 的鲁棒性:

| 检查项 | 验证方式 |
| :--- | :--- |
| 所有枚举字段是否给出完整枚举? | 在 Schema 中搜索"如:",发现后替换为完整列表 |
| 豁免规则是否精确绑定到字段名? | 搜索"不需要匹配/无需校验",确认前有 `field.name === 'value'` 绑定 |
| Few-Shot 是否覆盖每条豁免规则? | 逐条豁免规则对应一个通过示例 |
| 多值字段(逗号分隔)是否有专项示例? | 至少1条"全命中",1条"部分命中",1条"全不命中" |
| 空字段传 `""` 而非 `null`? | 代码层面确认,Schema 中注明"统一传空字符串" |
| `temperature` 是否设置为低值? | 调用侧确认 `temperature ≤ 0.1` |

---

## 七、参考资料

- **CO-STAR 框架**:来源于 GovTech Singapore 2023 年提出,已在各大 LLM 平台提示词文档中广泛引用
- **Few-Shot Prompting**:Brown et al. 2020《Language Models are Few-Shot Learners》,GPT-3 论文中首次系统化验证
- **Prompt Injection 防御**:OWASP LLM Top 10,2023 年版(第一位风险)