Blog›Guides

如何为AI代理编写系统提示词

学习为AI代理编写有效的系统提示:结构、语气、约束、示例及常见陷阱。

如何为AI代理编写系统提示词

如何为AI代理编写系统提示词

系统提示词是塑造AI代理行为的隐藏指令。与一次性用户查询不同,系统提示词为每次交互奠定基础,定义代理的角色、目标、语气和边界。无论你是在构建客户支持机器人、编程助手还是创意工具,掌握系统提示词都至关重要。

本指南将带你了解核心原则、实用框架以及需要避免的常见错误。你还会找到真实示例和相关资源的链接。

什么是系统提示词?

系统提示词是在任何用户输入之前给语言模型的初始指令。它告诉模型它是谁(例如,“你是一位乐于助人的法律助理”),它应该做什么,以及它应该如何表现。它在整个对话中持续存在,作为代理目的的持久记忆。

把它想象成代理的职位描述和行为准则合二为一。一个写得好的系统提示词可以将通用模型转变为专业工具。

为什么系统提示词对AI代理很重要

AI代理不仅仅是简单的聊天机器人。它们可以使用工具、调用API并执行多步骤任务。系统提示词至关重要,因为它:

  • 定义代理的范围:防止它偏离主题。
  • 设定期望:告诉模型如何处理模糊请求。
  • 控制语气和风格:确保一致的品牌形象或个性。
  • 提高安全性:设定边界以避免有害输出。
  • 增强可靠性:通过将模型锚定在上下文中减少幻觉。
  • 例如,一个预订航班的代理需要一个系统提示词来指定航空公司政策、用户偏好以及如何处理取消。没有它,代理可能会编造规则或忽略约束。

    有效系统提示词的关键原则

    1. 具体且明确

    模糊的指令会导致模糊的输出。不要用“乐于助人”,而要说“提供解决常见问题的分步说明”。你越具体,模型就越能遵循。

    示例:

  • 弱:“你是一位旅行代理。”
  • 强:“你是一位专注于欧洲经济旅行的旅行代理。始终推荐最便宜的航班选项,提及行李费用,并在建议路线前询问旅行者的出发城市。”
  • 2. 定义角色和人设

    给代理一个清晰的身份。这会影响词汇、语气,甚至它生成的响应类型。例如,“友好的图书管理员”会以不同于“严肃的数据分析师”的方式回答。

    你可以从现有的系统提示词中汲取灵感,比如以Naval Ravikant声音编写的转型架构师系统提示词,它展示了人设如何塑造整个交互。

    3. 设定边界和约束

    告诉代理它不能做什么。这对安全性和可靠性至关重要。例如:

  • “不要提供医疗建议。”
  • “如果你不知道答案,请说‘我不知道’并建议联系人类专家。”
  • “永远不要分享个人用户数据。”
  • 约束还包括格式要求,比如“以JSON格式响应”或“使用项目符号”。

    4. 提供示例(少样本学习)

    在系统提示词中包含示例可以显著提高输出质量。向模型展示一个好的响应是什么样的。这对于具有特定格式或风格的任务特别有用。

    示例片段:

    用户:东京的天气怎么样?

    助手:东京目前天气为22°C,晴朗,微风。预计最高25°C,最低18°C。晚上请带一件薄外套。

    5. 使用清晰的结构和格式

    用章节、项目符号或编号列表来组织系统提示词。这使模型更容易解析和遵循。你也可以使用像###这样的分隔符来区分指令和上下文。

    6. 迭代和测试

    系统提示词不是一劳永逸的。你必须用各种输入进行测试,并根据结果进行优化。注意边缘情况并相应调整。这是提示工程的核心部分,正如OpenAI提示工程指南所强调的。

    编写系统提示词的分步框架

    以下是一个你可以适应的实用框架:

  • 定义代理的目的:它的主要功能是什么?最终用户是谁?
  • 选择人设:它应该扮演什么角色?什么语气?(例如,专业、友好、简洁)
  • 列出关键能力:它必须处理哪些任务?它可以访问哪些工具或数据?
  • 设定约束:哪些是应该做的和不应该做的?有任何法律或道德边界吗?
  • 提供上下文:包括代理需要的任何背景信息。
  • 添加示例:展示2-3个示例交互。
  • 指定输出格式:如果需要,定义响应结构。
  • 包含回退行为:当代理不确定时应该做什么?
  • 让我们为一个客户支持代理充实一个示例:

    你是TechGadgets公司的客户支持助理。

    你的目标是快速且礼貌地解决用户问题。

    你可以访问我们的FAQ数据库和订单系统。

    规则:

  • 如果用户提供了姓名,始终用姓名问候。
  • 如果问题涉及有缺陷的产品,提供更换或退款。
  • 除非FAQ中明确说明,否则永远不要承诺折扣。
  • 如果你不知道答案,请说:“我不确定,但我会为你连接一位人类专家。”
  • 语气:友好、富有同理心且简洁。

    示例:

    用户:我的笔记本电脑无法开机。

    助手:很抱歉听到这个消息。让我们来排查一下。首先,尝试按住电源按钮10秒。如果那不起作用,充电器是否已连接?

    这个框架是多功能的。对于创意任务,你可以类似地调整它。例如,用于图像生成的Red Veil Register系统提示词展示了如何用特定美学约束图像生成器。

    需要避免的常见错误

    1. 过于模糊

    避免像“乐于助人”或“回答问题”这样的通用短语。它们没有给模型足够的指导。

    2. 信息过载

    过多的上下文可能会混淆模型。坚持必要的内容。如果你需要更多,考虑使用检索增强生成(RAG)而不是把所有内容塞进提示词中。

    3. 忽视安全性和偏见

    系统提示词应明确处理安全性。例如,“不要生成仇恨言论”或“避免刻板印象”。这对于面向公众的代理尤其重要。

    4. 不测试边缘情况

    你的代理会遇到奇怪的输入。用拼写错误、模糊措辞和超出范围的问题进行测试,看看它如何响应。

    5. 忘记更新

    随着你的产品发展,你的系统提示词也应该更新。对提示词进行版本控制并定期审查。

    针对代理特定提示词的高级技巧

    AI代理通常可以访问工具和外部数据。你的系统提示词应该考虑到这一点:

  • 工具使用:指定何时以及如何使用工具(例如,“对于数学问题使用计算器。”)
  • 多步骤推理:鼓励代理分解复杂任务(“在回答之前逐步思考。”)
  • 记忆:如果代理有记忆,定义要记住什么和忘记什么。
  • 错误处理:告诉代理当工具失败时如何响应。
  • 例如,一个编程代理可能有这样的系统提示词:

    你是一位Python编程助手。你可以访问代码解释器。当被要求编写代码时,首先解释你的方法,然后编写代码,最后通过运行来测试它。如果代码有错误,调试并重试。

    这比通用的“帮助编写代码”提示词更有效。

    真实世界示例和灵感

    查看现有的系统提示词可以激发想法。以下是我们wiki中的一些:

  • 用于安全教学代理设置的交互式课程系统提示词 - 演示如何指导用户完成设置过程。
  • 系统提示词:将提示词重写为Aperture Geometry / Velvet Trace场景 - 展示创意转换任务。
  • 适用于任何目的地的双世界水彩旅行海报提示词 - 用于图像生成的模板。
  • 电影感微型世界广告海报提示词 - 另一个创意示例。
  • 这些例子说明了系统提示词如何针对特定领域进行定制。

    进一步阅读和资源

    为了加深你的理解,请查看这些权威指南:

  • Anthropic的提示工程概述 - 涵盖Claude的最佳实践。
  • Google Gemini提示策略 - 专注于Gemini模型。
  • 提示工程指南 - 一个全面的社区资源。
  • 学习提示 - 适合初学者的教程。
  • Google Vertex AI提示设计 - 面向企业的实用技巧。
  • Anthropic的面向业务的提示工程 - 如何将提示词与业务目标对齐。
  • 这些资源提供了对链式思维、少样本学习和评估等特定技术的深入探讨。

    下一个系统提示词的检查清单

    在最终确定之前,请运行此检查清单:

  • [ ] 目的已明确定义
  • [ ] 人设和语气已指定
  • [ ] 关键能力已列出
  • [ ] 约束和边界已设定
  • [ ] 示例已包含(如果有帮助)
  • [ ] 输出格式已指定(如果需要)
  • [ ] 回退行为已定义
  • [ ] 已用边缘情况测试
  • [ ] 已审查安全性和偏见
  • 结论

    编写系统提示词既是一门艺术也是一门科学。它需要清晰、具体和持续迭代。通过遵循上述原则和框架,你可以创建使AI代理可靠、有用且安全的系统提示词。

    记住,最好的系统提示词是隐形的,它们如此有效地引导代理,以至于用户永远不会注意到背后的指令。从简单开始,经常测试,并根据真实交互进行优化。

    如需更多灵感,请浏览我们的系统提示词集合或探索与生产力相关的提示词。祝你提示愉快!

    Tags
    system prompt·AI agent·prompt engineering·LLM·chatbot·automation·guide