一、明确指令:提示词的核心基石

提示词工程的第一原则,也是最容易被忽略的一点,是清晰、具体地陈述你的需求。许多人习惯于模糊的指令,比如“写一篇文章”,然后对结果感到失望。大模型并非读心术,它严重依赖你提供的上下文和约束。一个好的提示词应该像给一个能力超强但需要明确指令的实习生布置任务:你需要告诉它任务的目标、背景、范围和期望的格式。例如,将“介绍一下Python”优化为“用简洁的要点,向一位有编程基础但从未接触过Python的开发者,介绍Python语言的核心优势和三个最常用的应用领域”。后者显然能得到更聚焦、更有价值的回答。

二、设定角色与场景:让模型进入“状态”

这是提升输出质量的进阶技巧。通过在提示词开头为模型设定一个具体的角色、身份或专家背景,可以显著影响其回答的语气、风格和知识深度。例如,告诉模型“你是一位拥有十年经验的资深后端架构师”,它会倾向于给出更系统、更具架构思维的回答;如果说“你是一名擅长用简单比喻讲解复杂概念的科普作家”,它的语言就会变得生动易懂。这类似于在舞台上为演员设定角色,模型会尝试从该角色的视角和知识库中生成内容。

# 一个简单的角色设定示例
prompt = """
你是一位注重代码简洁性和可读性的Python导师。
请审查以下代码,并从函数命名、循环逻辑和潜在错误三个方面给出具体的改进建议。

代码:
def calc(data):
    s = 0
    for i in range(len(data)):
        if data[i] > 0:
            s += data[i]
    return s
"""
# 发送给模型后,你将得到一份以“导师”口吻提出的、更具教学意义的改进建议。

三、结构化输出:指令的精确制导

如果你对输出的内容结构有明确要求,必须在提示词中清晰地定义它。与其让模型自由发挥,不如直接给出“格式模板”。这能极大地方便后续的程序解析,也保证了回答的条理性。你可以要求模型以JSON、Markdown表格、分点列表、特定标题等形式来组织信息。例如:“请以JSON格式返回结果,包含summary(摘要,50字内)、key_points(关键点列表)和sentiment(情感倾向:正面/中性/负面)三个字段。”

关键提示:在要求结构化输出时,最好提供一个简短的示例(Few-shot),模型模仿示例的准确率会远高于仅靠文字描述。

四、分隔指令与上下文:处理复杂需求

当你的提示变得复杂,同时包含指令、背景数据、示例和问题时,使用明显的分隔符至关重要。这能帮助模型清晰地区分哪部分是它需要执行的命令,哪部分是它需要处理的原料。常用的分隔符包括三重引号"""、三个井号###、XML标签<context></context>或简单的---。一个典型的结构是:先给出明确的###指令###,然后提供###上下文或数据###,最后提出###问题###。这种结构化的提示能有效减少模型误解你意图的概率。

五、思维链与示例:引导复杂推理

对于需要多步推理的任务(如数学题、逻辑分析、复杂代码调试),可以使用思维链技巧。简单来说,就是在提示中给出一个“像人一样思考”的示例,展示如何从问题一步步推导到答案。你可以在示例中写下“首先...然后...因此...”这样的推理过程。这能引导模型在生成最终答案前,先产生一个内部的推理链,从而显著提升其在需要逻辑推理任务上的表现。对于更开放的任务,提供1-2个高质量的输入-输出示例(Few-shot),比长篇的描述性指令更有效。

六、迭代优化与元提示:没有一劳永逸的提示

提示词工程是一个迭代实验的过程,很难一次写就完美提示。我的经验法则是:将你的第一个提示词视为“草稿”,根据模型的输出结果,诊断问题所在(是太宽泛?有歧义?格式不对?),然后有目的地进行修改。更有趣的是,你可以让大模型本身来帮助你优化提示词,这被称为“元提示”。例如:“我想让模型帮我写一份项目周报。以下是我当前的提示词:‘帮我写周报’。请分析这个提示词的不足,并给出一个更具体、更有效的改进版本,并解释你的改进理由。”

终极技巧:当你对某个任务的提示词优化感到棘手时,可以直接问模型:“为了让你更好地完成[某项具体任务],我需要在我的提示中提供哪些关键信息或约束?”

七、常见误区与心法总结