跳转至

提示词工程指南

提示词工程是爱可帮® 智能体平台中构建各种垂直智能体的基础原理,其核心在于通过提示词来引导大语言模型按照预期的逻辑和结构来完成任务。

尽管提示词工程的概念相对容易理解,但其有效实践依然需要掌握结构化的思维模式,以及使用清晰明了的语法结构。

此外,随着例如 MCP (模型上下文协议) —— 这类能让模型更好地调用外部工具的技术 —— 等相关技术的发展,提示词工程的复杂性和重要性也在日益增长。这意味着我们需要更精巧地设计提示词,来更好的和大模型进行更长、更复杂的交互。

提示词的意义

任何人都可以编写提示

在探讨大型语言模型(LLM)的输入与输出时,文本提示(有时伴随图像等其他模态)是模型用于预测特定输出的输入形式。编写提示并非数据科学家或机器学习工程师的专利——任何人都可以进行。

要充分发挥提示词的作用,理解大语言模型的工作原理至关重要:它是一个预测引擎。模型接收顺序文本作为输入,然后基于其训练数据预测下一个应该出现的令牌(token)。LLM 被设计为反复执行此过程,将先前预测的令牌添加到序列文本的末尾作为上下文,以预测下一个令牌。

一个提示词能否高效引导模型产出期望的结果,其有效性主要受到以下几个关键因素的综合影响:

  • 所使用的模型型号
  • 措辞细节的选择
  • 要求的风格语调
  • 包含充足背景的上下文

“工程”的本质

"工程"一词在此处的使用是恰当的,因为它描述了一个涉及"设计"、"优化"、"评估"和"调试"的系统过程。这不仅仅是写作,更是一个针对需求进行系统性改进的过程,类似于传统的工程学科。

提示词工程可以理解为使用自然语言进行编程,因此在很大程度上和传统编程有相似之处:

  • 要求逻辑化和结构化的思维模式
  • 可以借助语法标记呈现清晰的逻辑性
  • 效果的优化是一个持续迭代的过程
  • 不恰当的提示词可能导致模糊、不准确的响应

在爱可帮®智能体平台,基于提示词工程的大语言模型(LLM)展现了其在处理复杂自然语言任务方面的强大潜力。然而,理解其核心优势领域和固有局限性,对于成功构建高效、可靠的智能体至关重要。

核心应用与优势领域

LLM的核心能力在于理解、生成和转换人类语言。因此,在爱可帮®平台,提示词工程主要应用于以下自然语言处理相关的场景,并能发挥显著优势:

  • 内容创作与生成 (Content Creation & Generation):
    • 描述: 利用LLM强大的文本生成能力,根据用户指令创作各类型文本内容。
    • 具体场景示例:
      • 营销文案: 广告语、社交媒体帖子、产品描述、邮件营销草稿。
      • 创意写作: 故事大纲、诗歌、剧本片段、角色设定。
      • 辅助写作: 文章初稿、内容改写与润色、风格转换、标题生成。
      • 代码生成: 根据自然语言描述生成特定编程语言的代码片段或脚本(需谨慎测试)。
  • 信息处理与提炼 (Information Processing & Extraction):
    • 描述: 从大量文本数据中提取关键信息、进行归纳总结或转换信息格式。
    • 具体场景示例:
      • 文本摘要: 自动生成长篇文章、报告或对话的核心内容摘要。
      • 信息提取: 从非结构化文本中识别并提取特定实体(如人名、地名、组织、日期、金额)、关键事件或观点。
      • 问答系统: 基于提供的上下文或背景知识,回答用户提出的具体问题。
      • 数据转换: 将文本信息转换为结构化数据(如从产品评论中提取情感标签和提及的特性)。
      • 文本分类与打标: 自动对文本进行主题分类、情感分析或意图识别。
  • 交互式对话与支持 (Interactive Dialogue & Support):
    • 描述: 构建能够与用户进行自然、流畅对话的智能体,提供信息支持或完成特定任务。
    • 具体场景示例:
      • 智能客服: 解答常见用户咨询、提供产品或服务支持、引导用户完成操作。
      • 虚拟助手: 日程管理提醒、信息查询、任务分配与跟踪(需结合外部工具)。
      • 教育辅导: 扮演特定学科的辅导员,提供解释、引导学习。
      • 角色扮演与模拟: 用于培训、娱乐或特定场景的对话模拟。

不适用的领域

尽管大模型构建的智能体功能强大,但其设计原理和当前技术水平也决定了其在某些领域表现不佳或不应作为主要解决方案:

  1. 高精度数值计算与逻辑推理
  2. 需要绝对事实一致性且无最新知识更新的场景
  3. 涉及高风险决策且缺乏明确指令和监督的场景

理解这些优势和局限,有助于您在爱可帮®智能体平台中更明智地选择合适的应用场景,并通过精心的提示词工程设计,最大限度地发挥LLM的潜力,同时规避潜在的风险。

系统设定的组成

系统设定是提示词工程中的核心环节,它通过大模型 API 调用时的 System/Assistant 角色限定了大语言模型在执行任务时的行为和策略。

对于智能体的用户而言,系统设定是在创建智能体预设之后,每次都会发给大语言模型的默认设置,不再需要用户每次都重复发送。通过这种方式,也保障了智能体能够重复、高效、稳定的完成同类型的人物。

系统设定和用户指令的关系

在爱可帮中,系统设定和用户指令会拼接起来发送给大模型,所以需要综合考虑两者的配置,以便实现最好的效果。

事实上,在多轮对话中,之前几轮大模型的回复也会作为上下文的一部分,在下一轮对话中发送给大模型,并影响智能体后续的输出。

为了便于用户能够便捷、有效的创建智能体,爱可帮将系统设定部分拆分为了以下的四个部分:

  • 角色 & 任务
  • 技能 & 规则
  • 参考资料
  • 结果示例

角色 & 任务

“角色 & 任务”是系统设定最关键的部分,它为大语言模型(LLM)扮演的智能体赋予了明确的身份和核心目标。

  • 角色 (Role):
    • 作用: 定义智能体在交互中应扮演的身份或人物画像。这有助于LLM采用特定的语气、风格、视角和知识领域来与用户沟通。一个清晰的角色设定能让智能体的回应更加一致和符合预期。
    • 例如: “你是一位资深的市场分析师”、“你是一个友善且乐于助人的客服代表”、“你是一名精通唐诗宋词的文学导游”。
    • 效果: 角色设定直接影响智能体回应的“性格”和专业性。一个“技术支持工程师”角色的回答会比“日常聊天伙伴”角色在面对技术问题时更为严谨和聚焦。
  • 任务 (Task):
    • 作用: 清晰地阐述智能体被创建出来的核心目的或需要完成的具体工作。任务描述应简洁明了,指明智能体需要实现的主要功能。
    • 例如: “你的任务是根据用户提供的主题创作一首五言绝句”、“你的任务是解答用户关于A产品售后的相关咨询”、“你的任务是帮助用户总结所提供的文章内容,并列出关键信息点”。
    • 效果: 明确的任务指令是LLM理解并执行操作的基础。它限定了智能体的工作范围,确保其行为与创建者的意图保持一致,避免漫无目的地生成内容。

通过精确定义角色和任务,您可以为智能体打下坚实的基础,使其后续的行为和输出都围绕着这个核心定位展开。

技能 & 规则

在设定了智能体的核心“角色 & 任务”之后,“技能 & 规则”部分则进一步细化了智能体应如何行动,以及在行动过程中需要遵循的准则和具备的能力。

  • 技能 (Skills):
    • 作用: 描述智能体为了有效完成其任务所应具备的特定能力或专长。这些技能可以是信息处理能力、特定的知识应用能力,或者是某种交互技巧。
    • 示例:
      • “能够理解并使用Markdown格式进行排版”
      • “精通至少三种语言的互译(中、英、法)”
      • “擅长从非结构化文本中提取关键信息,如人名、地名、组织机构名”
      • “具备多轮对话记忆能力,能够理解上下文关联”
      • “能够调用外部知识库API来获取最新信息”(若平台支持)

定义技能有助于智能体更好地运用其基础能力来完成特定任务,使其表现得更加“专业”和“能干”。

  • 规则 (Rules):
    • 作用: 设定智能体在执行任务时必须遵守的行为准则、限制条件或特定指令。规则是为了确保智能体的输出质量、合规性、安全性以及与用户期望的一致性。
    • 示例:
      • “回应时,语气必须保持客观中立,避免使用任何可能引起情感波动的词汇。”
      • “禁止提供任何形式的医疗、法律或金融投资建议。”
      • “如果用户的问题超出你的知识范围,请明确告知用户你无法回答,并建议用户寻求专业人士的帮助。”
      • “每次回答的长度应控制在200字以内。”
      • “在提供解释时,优先使用简单易懂的语言,避免使用过于专业的术语。”
      • “对于不友善或攻击性的用户输入,应礼貌地结束对话或引导其回到恰当的交流轨道。”

规则是智能体行为的“护栏”,能够有效约束模型的输出,使其更加可靠、安全,并符合特定的业务场景需求。

通过清晰地列出智能体的技能和必须遵守的规则,您可以更精细地控制智能体的行为模式,使其在各种交互场景下都能表现得既有能力又有分寸。

参考资料

“参考资料”部分允许您为智能体提供特定的背景知识、数据源或上下文信息,这些信息将作为智能体在执行任务时的重要依据。这对于需要基于特定、非通用知识进行回答或创作的智能体尤为关键。

  • 作用:
    • 提供领域知识: 您可以上传或指定与智能体任务相关的专业文档、产品手册、公司政策、FAQ列表、行业报告等。这使得智能体能够基于这些特定的、可能未包含在其通用训练数据中的信息进行回应。
    • 确保事实准确性: 对于需要高度准确性的任务(如回答特定产品规格、解释公司内部流程),提供权威的参考资料可以显著减少模型“幻觉”(即编造不实信息)的风险。
    • 定制化输出: 使得智能体的回答能够紧密贴合特定业务或个人需求,而非泛泛而谈。
    • 处理动态信息: 虽然LLM的训练数据是截止到某个时间点的,但通过参考资料,可以为智能体提供相对较新的信息(尽管这不完全等同于实时联网搜索,但能弥补一部分时效性不足)。
  • 如何有效利用:
    • 结构化数据: 如果可能,提供结构化或半结构化的参考资料(如问答对、带有清晰章节的文档)能帮助模型更有效地检索和利用信息。
    • 相关性与简洁性: 提供的资料应与智能体的核心任务高度相关。避免提供大量无关信息,这可能会干扰模型的判断。资料内容也应尽可能简洁明了。
    • 明确引用指示(可选): 在某些情况下,您可以在“技能&规则”中指示智能体在回答时,如果引用了参考资料中的内容,需要进行标注或说明来源。
  • 示例:
    • 为“公司产品客服智能体”提供最新的产品说明书、价格表和常见问题解答文档。
    • 为“企业内部政策查询助手”提供公司的人力资源政策手册、IT使用规范等。
    • 为“特定法律领域咨询助手”提供相关的法律条文和判例摘要(请注意,这仍需专业人士监督,不能替代真实法律咨询)。

通过精心准备和配置参考资料,您可以显著提升智能体回答的准确性、相关性和深度,使其成为一个真正了解特定领域的“专家”。

结果示例

“结果示例”部分通过提供具体的“输入-输出”范例(或仅提供理想的输出范例),来直观地向大语言模型展示您期望的成果形式和质量标准。这是一种非常有效的“情景教学”或“范例引导”方法。

  • 作用:
    • 明确输出格式: 如果您希望智能体的输出遵循特定的格式(如JSON、Markdown列表、特定段落结构),提供示例是最直接的方式。
    • 校准语气和风格: 单纯的文字描述可能难以完全捕捉到期望的语气(如“专业且略带幽默”),而一个好的示例能让模型更好地“感受”并模仿。
    • 设定质量标杆: 示例展示了您认为“好”的回答应该是什么样的,包括信息的详尽程度、逻辑的清晰度、语言的流畅性等。
    • 处理复杂或模糊指令: 对于一些难以用规则精确描述的细微要求,示例能起到“只可意会,不可言传”的补充作用。
    • 提升一致性: 通过多个相似输入但期望输出风格一致的示例,可以训练模型在处理同类任务时保持较高的输出一致性。
  • 如何有效利用:
    • 少而精 (Few-shot): 通常不需要大量的示例,几个高质量、有代表性的示例往往就能起到很好的引导作用。
    • 覆盖典型场景: 示例应尽可能覆盖智能体可能遇到的主要输入类型或任务场景。
    • 展示变化性(如果需要): 如果希望模型能根据输入的细微差别给出有变化的合理输出,示例也应体现这种期望的灵活性。
    • 与指令对应: 提供的示例应该与您在“角色&任务”和“技能&规则”中设定的指令相符,共同作用。
  • 例如:
    • 任务: 总结新闻文章。
      • 输入示例: (一篇长新闻文章)
      • 输出示例:
        ## 核心摘要:
        [用一句话概括新闻核心内容]
        
        ## 主要观点:
        * 观点一:[xxx]
        * 观点二:[yyy]
        * 观点三:[zzz]
        
        ## 后续影响:
        [简述可能的后续发展或影响]
        
  • 任务: 生成产品描述。
    • 输出示例(风格:活泼生动): “✨快来看看我们全新的SuperWidget!它不仅颜值爆表,功能更是强大到让你惊呼!有了它,你的生活将变得如此轻松有趣!🚀”

通过提供清晰、恰当的结果示例,您可以极大地提升智能体输出的质量和可预测性,使其更贴近您的实际需求,减少后续的人工调整成本。