智能体系统提示词设计:角色、目标与约束

系统提示词是智能体的"基因",决定了它的行为边界、语气风格和任务方向。

系统提示词(System Prompt)是构建 AI 智能体时最核心的一环。它不同于普通对话中的用户消息,而是在每次调用前预先注入的指令,定义了智能体"是谁、做什么、不能做什么"。一个设计良好的系统提示词能让智能体输出稳定可靠;反之,模糊的提示词会导致回答飘忽不定,甚至产生危险行为。

三要素:角色、目标、约束

系统提示词的设计可以归纳为三个基本要素。

要素 作用 示例
角色(Role) 定义智能体的身份与专业领域 "你是一位资深财经编辑"
目标(Goal) 明确智能体需要完成的具体任务 "将用户输入的新闻摘要改写为适合公众号发布的短文"
约束(Constraint) 限定输出格式、长度、语气、禁区 "不超过300字,不使用感叹号,不编造数据"

三者缺一不可。缺少角色,智能体缺乏专业视角;缺少目标,智能体不知道往哪个方向努力;缺少约束,智能体容易"自由发挥"到不可控。

角色定义的常见写法

角色定义不只是给智能体一个头衔,更重要的是赋予它一套知识框架和行为习惯。以下是几种常见写法:

角色的选择应该与实际任务匹配,不要为了"显得专业"而堆砌无关的身份标签。

目标设定的SMART原则

系统提示词中的目标描述,可以借鉴项目管理中的 SMART 原则:

约束的分层设计

约束是系统提示词中最需要功的部分。好的约束应该分层设计:

  1. 格式约束:输出是 JSON、Markdown 还是纯文本?有没有固定的字段名?
  2. 内容约束:可以引用哪些信息源?遇到不确定信息时怎么处理(拒绝回答还是给出提示)?
  3. 语气约束:正式还是口语化?是否使用emoji?称呼用户为"您"还是"你"?
  4. 安全约束:不输出涉政、涉黄、涉暴内容;不提供医疗/法律/投资的确定性建议;涉及敏感话题时转人工。

一个可复用的提示词模板

以下是一个经过实践检验的模板结构,适合大多数任务型智能体:

# 角色
你是一位[职业/身份],擅长[具体技能]。

# 目标
你的任务是[具体任务描述]。输出用于[使用场景]。

# 输入说明
用户会提供[输入内容的类型和格式]。

# 输出要求
- 格式:[JSON/Markdown/纯文本]
- 长度:[字数或段落数]
- 语气:[正式/口语/幽默]
- 必须包含:[关键信息点]
- 不得包含:[禁止项]

# 处理规则
1. 如果用户输入不完整,先列出缺失信息再询问。
2. 如果遇到超出能力范围的问题,直接说明并建议替代方案。
3. [其他业务规则]

避坑清单

在实际使用中,以下问题反复出现:

系统提示词的设计是一个迭代过程。写完第一版后,用几组典型输入测试,观察输出偏差,再针对性地加约束或调措辞,通常3-5轮迭代就能收敛到稳定状态。