System Prompt
System Prompt给 AI 定人设的规则
系统提示词(System Prompt)是在对话开始前由开发者或部署方预先注入的系统级指令,用于规定大语言模型的角色身份、能力边界与响应风格。它是目前主流 LLM 应用中最基础的行为控制手段,决定了模型在整个会话中「是谁、能做什么、怎么回答」,对终端用户通常不可见。
概述
系统提示词在技术层面是对话上下文的第一段文本,与用户消息共享同一个上下文窗口,但享有更高的语义优先级。
- 角色定义:明确模型在本次对话中扮演的身份,如「你是一名专业的客服助手」。
- 能力边界:限定允许或禁止讨论的话题范围,以及拒绝策略。
- 输出格式:要求模型以特定格式响应,如 JSON、Markdown 列表、固定字数等。
- 行为准则:设定语气、语言风格、回答深度等产品层面的要求。
- 不可见性:终端用户通常看不到系统提示词内容,开发者可借此保护业务逻辑。
工作原理
系统提示词不是写死在模型参数里的内容,而是推理阶段动态拼接进输入序列的文本。
- 消息角色分离:主流 API(OpenAI、Anthropic、Google)将消息分为 system、user、assistant 三种角色,系统提示词对应 system 角色,采用 ChatML 格式组织。
- 上下文注意力:模型在 Self-Attention 计算时同时看到系统提示词与后续对话,从而将约束内化为当前会话的行为偏好。
- SFT 强化:部分模型(如 Claude、GPT-4)在 监督微调(SFT) 阶段被显式训练为优先遵从 system 角色指令,而非仅依赖上下文学习。
- 动态注入:生产环境中系统提示词常为模板化文本,在每次调用时填入用户 ID、权限级别、当前日期等动态变量。
- Token 消耗:系统提示词计入上下文窗口 Token 配额,过长会压缩用户可用的有效对话空间。
类型与变体
实践中系统提示词的形式随应用复杂度而演化。
- 静态系统提示词:最简单形式,固定的一段角色描述与规则文本,适合功能单一的小应用。
- 模板化系统提示词:主体固定,关键字段(如用户权限、当前时间)在调用时动态填充,企业级应用最常见。
- RAG 增强上下文:在 RAG 架构中,检索到的文档片段拼接在系统提示词之后,使模型具备实时知识。
- 多智能体系统提示词:Multi-Agent 框架为每个子 Agent 配置独立的系统提示词,明确职责分工。
- 元提示(Meta-Prompt):让模型根据任务动态生成下游任务的系统提示词,用于自动化提示词优化流程。
应用场景
系统提示词是构建垂直领域 AI 产品的核心工具。
- 客服机器人:限制模型只回答产品相关问题、禁止讨论竞争对手,保护品牌形象。
- 代码助手:指定编程语言偏好、代码风格规范与注释要求。
- 教育类应用:要求模型用苏格拉底式问答引导学生,禁止直接给出答案。
- 安全过滤:作为第一道防线,要求模型拒绝生成有害内容(但不可单独依赖,需结合 Guardrails)。
- 结构化输出控制:强制模型返回结构化 JSON,供下游程序解析,广泛用于 Function Calling 与 Tool Use 场景。
与相邻概念的区别
系统提示词与几个近邻概念常被混淆,需要明确区分。
- System Prompt vs User Prompt:前者由开发者在后端设置,后者由终端用户在运行时输入;系统提示词语义优先级更高,但二者共享同一上下文窗口。
- System Prompt vs 微调(Fine-Tuning):微调修改模型权重,效果持久且稳定;系统提示词仅在推理时注入,成本低但可能被用户指令覆盖或被攻击绕过。
- System Prompt vs 提示词模板:提示词模板是编写系统提示词的工程手段(含占位符),系统提示词是最终传入模型的实体,二者是手段与结果的关系。
- System Prompt vs Guardrails:系统提示词是自然语言层面的约束,Guardrails 是外挂的规则引擎或分类器;后者更可靠但需额外部署成本。
局限与安全风险
系统提示词并非安全护栏的可靠替代,存在若干已知局限。
- 越狱攻击(Jailbreak):攻击者通过精心设计的用户输入诱导模型绕过系统提示词限制,如角色扮演、编码混淆等手法。
- 提示词注入(Prompt Injection):恶意内容经由外部数据源(被检索的网页、文档)混入上下文,伪装成合法指令,在 Agent 场景中风险尤为突出。
- 提示词泄露(Prompt Leakage):攻击者可诱导模型输出完整系统提示词内容,早期 ChatGPT 曾被轻易触发此类泄露。
- 「迷失在中间」现象:当上下文窗口接近饱和时,模型对系统提示词(尤其是中间段落)的遵从度显著下降。
- 内部矛盾导致失效:系统提示词过长或存在逻辑矛盾时,模型可能出现选择性遵从,只执行部分规则。
发展脉络
系统提示词的概念随对话式 LLM 的演进而逐步确立。
- 2020:GPT-3 以纯补全(Completion)模式工作,无 system/user 角色之分,开发者只能将指令前置于同一段文本。
- 2022 年初:InstructGPT 引入 RLHF,使模型具备遵循指令的基础能力,为系统提示词奠定训练基础。
- 2022 年底:ChatGPT 发布并大规模普及,OpenAI Chat Completions API 正式引入 system/user/assistant 三角色结构,系统提示词成为行业标准实践。
- 2023:Claude、GPT-4、Gemini 相继发布;「提示词注入」与「越狱」攻击研究兴起;OpenAI 将部分模型由「system」角色改为「developer」角色以明确层级。
- 2024–2025:Agent 与多模态应用爆发,系统提示词承载信息密度持续增加;Anthropic 公开 Model Spec,将核心价值观对齐从纯系统提示词迁移至训练层面;MCP 协议将工具描述标准化,减少手工拼接工具说明的需要。
常见误解
日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。
- 「给 AI 定人设的规则」
- 「提示词工程」
- 「跟 System Prompt 是一回事吗」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 初级概念查看详解 →
Chat API 的 system / user / assistant 角色如何正确使用?
system 设定全局指令/人设(优先级最高),user 是输入,assistant 是历史回复,多轮需保留上下文。
- 初级概念查看详解 →
角色提示与系统提示如何影响模型输出?
系统/角色提示设定模型的人设、语气与约束,引导而非硬性保证行为,优先级高于普通用户消息。
- 初级概念高频查看详解 →
什么是提示工程(Prompt Engineering)?为什么重要?
提示工程是通过设计模型输入(指令、示例、格式、思维链)来引导 LLM 产出更准确、更可控输出的方法,能在不改模型权重的前提下显著提升效果。
- 初级场景查看详解 →
怎么让大模型输出更简洁 / 更详细 / 符合特定风格?
在 prompt 里明确字数/格式/语气/受众,配示例和模板,迭代时对照评测。
延伸阅读
从知识库精选 2 篇文章,帮助深入理解该术语。
- 1
Prompt Engineering 最佳实践
系统学习 CoT、Few-shot、ReAct 等 Prompt 设计模式与技巧
- 2
高级 Prompt 工程技术:Chain-of-Thought、Few-Shot 与结构化提示词的深度实践
从基础的提示词编写到高级推理策略的系统性进阶。深入解析 Chain-of-Thought(思维链)、Few-Shot Learning(少样本学习)、Self-Consistency(自一致性)、ReAct 推理框架、Tree of Thoughts 等高级 Prompt 技术,配以 Python 可运行代码和实战对比实验,帮助开发者构建生产级 Prompt 系统。
外部参考
维基百科:查看「System Prompt」词条本页内容为本站原创撰写;维基百科链接仅作延伸参考。
