System/User Prompt

维度 System Prompt (系统提示词) User Prompt (用户提示词)
定义与提供者 由开发者或系统设计者预先设定,用于定义模型的"角色"或"人格",设定对话的全局规则和约束。 由最终用户在每次交互时输入,用于提出具体的问题、请求或提供上下文信息。
主要目的 设定框架与规则。它塑造模型的"世界观"和行为模式,确保模型在整个会话中保持一致性、安全性和专业性。 执行具体任务。它向模型发出明确的行动指令,是驱动模型产生特定输出的直接原因。
作用范围 全局性、持久性。在单次对话或整个应用生命周期内持续生效,影响模型对所有User Prompt的理解和回应方式。 局部性、临时性。仅影响模型对当前这一次请求的回应。
内容示例 "你是一位资深Java开发专家,回答应专业、准确。请用中文回答,并优先提供代码示例。" "请用Java编写一个快速排序算法,并添加详细注释。"
灵活性 相对固定,通常在对话开始或应用初始化时设定,不频繁更改。 高度灵活,用户可以自由输入任何问题或指令。
优先级 更高。它为模型提供了基础的行为准则,User Prompt的解读和执行都在此框架下进行。 较低。其执行不能违背System Prompt设定的核心规则(如"不回答非法内容")。

协同

1. System Prompt:模型的"宪法"与角色扮演指南

System Prompt的核心在于定义边界和塑造身份。它不仅仅是一个简单的指令,更是模型在本次交互中的"行为准则"或"角色设定"。例如,它可以用来:

  • 设定角色:让模型扮演特定专家(如医生、律师、代码审查员)。
  • 规定格式:要求回答必须包含要点列表、代码块,或遵循特定的结构化模板(如RTF框架:Role, Task, Format)。
  • 施加约束:限制回答长度、禁止讨论某些话题、要求引用来源等。
  • 提供上下文:注入领域知识、公司规范或对话历史摘要,使模型在特定语境下工作。

2. User Prompt:具体的任务指令与交互触发器

User Prompt是用户意图的直接表达,其质量直接决定输出结果的好坏。一个优秀的User Prompt应具备清晰、具体、有上下文的特点。例如:

  • 模糊的User Prompt:"给我讲讲Python。"
  • 优秀的User Prompt:"我是一名有JavaScript基础的新手,想学习Python进行数据分析。请对比Python和JavaScript在数据处理语法上的主要差异,并给出一个使用Pandas库读取CSV文件的Python代码示例。"

3. 协同工作流程

在实际交互中,两者协同工作,形成"框架-指令"的配合模式。模型的处理逻辑可以抽象为以下伪代码流程:

python 复制代码
# 伪代码示意 System Prompt 与 User Prompt 的协同处理流程 [结合 ref_2, ref_4, ref_5]
def model_inference(system_prompt, user_prompt):
    """
    模拟大模型接收并处理提示词的过程。
    system_prompt: 系统提示词,设定全局角色和规则。
    user_prompt: 用户提示词,提出具体请求。
    """
    # 步骤1:加载并内化System Prompt,建立响应基线 
    internal_context = initialize_model_with(system_prompt)  # 模型根据System Prompt设定内部状态和角色
    
    # 步骤2:在System Prompt设定的框架下,解析User Prompt的意图 
    if violates_constraints(system_prompt, user_prompt):  # 检查用户请求是否违反系统设定(如安全规则)
        return generate_refusal_response(system_prompt)  # 若违反,则按系统要求拒绝回答
    else:
        task_intent = parse_intent(user_prompt)  # 解析用户的具体任务
        
    # 步骤3:结合两者,生成最终响应 
    final_response = generate_response(
        context=internal_context,  # 基于系统设定的角色/规则
        task=task_intent,          # 基于用户的具体指令
        format=get_format_requirement(system_prompt)  # 遵循系统要求的格式
    )
    return final_response

# 示例调用
system_msg = "你是一位乐于助人的编程助手,擅长Python。回答请简洁,并优先提供代码。"
user_msg = "如何用Python反转一个字符串?"
answer = model_inference(system_msg, user_msg)
print(answer)
# 预期输出将是一个包含Python代码(如`"hello"[::-1]`)的简洁解释,而不是一篇关于字符串历史的长篇大论。

示例

场景一:构建专业客服Agent

  • System Prompt:"你是XX公司的AI客服,态度热情、专业。你的知识截止于2023年12月。对于产品问题,请依据提供的知识库回答;对于未知问题,请引导用户联系人工客服。回答需用中文,并分点说明。"
  • User Prompt:"我的订单#12345显示已发货,但一周没收到,怎么办?"
  • 分析:System Prompt设定了客服角色、知识边界、回答格式和兜底策略。User Prompt则提供了具体的查询案例。模型会在"客服"角色下,调用相关知识(如果知识库中有物流查询流程),并可能以分点形式回复操作步骤。

场景二:代码生成与审查

  • System Prompt:"你是一个严格的代码审查专家。请检查用户提供的代码,首先指出潜在bug、性能问题和风格不符(PEP 8)之处,然后给出修改后的优化版本。使用Markdown代码块。"
  • User Prompt:(粘贴一段存在缩进错误和低效循环的Python代码)
  • 分析 :System Prompt将模型锁定在"代码审查专家"角色,并规定了结构化的输出格式(先问题,后优化代码)。User Prompt提供审查对象。这使得输出高度结构化、专业化,远超一个通用模型对同一段代码的简单评价。

sum

  • System Prompt是战略层的设定,它塑造了模型的"人格"和对话的"游戏规则"
  • 而User Prompt是战术层的指令,负责在既定规则下完成具体动作

在实际开发中,往往需要通过迭代优化System Prompt来约束模型行为,同时精心设计User Prompt(或通过Few-shot示例在System Prompt中提供)来精准触发所需能力

相关推荐
程序员老猫1 小时前
vide coding 个人产品,那就从博客开始吧
人工智能·程序员·全栈
geo搜搜果数据2 小时前
实测5大AI平台品牌排名:复现GEO监测流程
人工智能·langchain·搜搜果
minge00013 小时前
【世界杯中的AI】(2026-07-05)当足球遇见AI:7月5日世界杯的“人机共舞”与冷门之夜
人工智能·科技·世界杯
IT_陈寒3 小时前
闭包陷阱让我加了两天班,JavaScript你真行
前端·人工智能·后端
wumingxiaoyao3 小时前
从 0 开始学 AI:第 2 课,AI、机器学习、深度学习和大模型是什么关系?
人工智能·深度学习·机器学习·ai·大模型·llm
2601_962683893 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
踩着两条虫3 小时前
可视化 vs 终端 vs 云端:VTJ.PRO、Claude Code、Codex 三强横评
前端·vue.js·人工智能·低代码·架构
字节跳动视频云技术团队3 小时前
Agentic 范式下的视频画质优化:火山引擎的新路径
人工智能·音视频开发
东方佑4 小时前
临界分词的存在性与最优性:从统计临界态到神经语言模型的双语实证检验
人工智能·算法·语言模型