角色任务上下文与约束
角色、任务、上下文和约束是 Prompt 的四个核心部件。角色决定回答视角,任务决定目标,上下文提供依据,约束控制边界。
# 1. 四要素模型
角色 Role
-> 你以什么身份回答
任务 Task
-> 你要完成什么
上下文 Context
-> 你基于什么信息回答
约束 Constraint
-> 你必须遵守什么边界
# 2. 角色
角色可以影响模型的表达风格和关注重点。
| 角色 | 输出倾向 |
|---|---|
| 技术文档编辑 | 清晰、结构化、重视准确 |
| 架构师 | 关注边界、取舍和演进 |
| 面试官 | 关注考点和表达 |
| 代码审查者 | 关注缺陷、风险和测试 |
角色不要写得太虚,例如“你是世界顶级专家”通常不如“你是负责后端系统设计的架构师”有效。
# 3. 任务
任务要写清楚动作和结果。
差:
分析一下这个问题。
好:
请分析这个接口超时问题,输出可能原因、排查顺序、需要补充的日志和临时止血方案。
# 4. 上下文
上下文是模型回答的依据。上下文不足时,模型容易猜。
常见上下文包括:
- 业务背景。
- 目标读者。
- 输入数据。
- 现有约束。
- 已经尝试过的方法。
- 期望输出格式。
对于事实型任务,要明确“只能基于给定资料回答”。
# 5. 约束
约束用于减少跑偏。
| 约束类型 | 示例 |
|---|---|
| 范围约束 | 只讨论 Java 后端,不讨论前端 |
| 格式约束 | 输出 Markdown 表格 |
| 长度约束 | 控制在 300 字以内 |
| 风格约束 | 面向初学者,避免术语堆砌 |
| 安全约束 | 不输出敏感字段和真实密钥 |
| 事实约束 | 不添加资料中没有的信息 |
# 6. 优先级设计
复杂 Prompt 中可能有多个指令,建议明确优先级:
优先级:
1. 安全和权限约束最高。
2. 必须基于给定资料回答。
3. 输出格式必须符合 JSON Schema。
4. 如果资料不足,返回“不确定”并说明缺失信息。
# 7. 常见坑
- 角色很夸张,但任务不明确。
- 上下文太多,关键信息被淹没。
- 约束互相冲突,例如“必须简洁”又“详细展开所有细节”。
- 没有说明资料不足时怎么办。
- 把业务权限和安全规则只写在 Prompt 中。
# 8. Tips 快问快答
Q:角色设定真的重要吗?
A:有用,但不是最重要。任务、上下文、约束和示例通常更直接影响质量。
Q:约束越多越好吗?
A:不是。约束要服务任务,过多且冲突的约束会让输出变差。
Q:上下文应该放在哪里?
A:关键资料要放得清晰,并用标题或分隔符隔开。RAG 场景还要把来源和优先级标明。
上次更新: 2026/06/25, 17:53:09