麦式参考 MickerBook Reference

系统提示词

System Prompt

也常被叫作:系统提示初始设定角色设定预置指令

你可能会这么说

「每次开新对话都要重新交代一遍规矩,能不能一次设好,让它一直记住?」

系统提示词 System Prompt

由对话宿主以较高优先级提供的规则;放在哪里、是否每轮保留,要看具体平台怎么实现。

系统提示词是对话宿主交给模型的一组高优先级指令,常用来放固定边界、输出格式和默认文风。重点是宿主怎么注入:有的平台每次请求都会带上它,有的平台只在特定会话生效;「自定义指令」「人格设定」「角色卡」也可能被放在不同位置,不能一概当成真正的 system 消息。

它不是什么抽象概念——我们自己的工作区就靠一份开机自动读取的说明文件活着:身份是什么、协作偏好是什么、哪些事不许做,全在里面,每个新会话开始时自动生效,不用重新交代。这就是系统提示词的活例子。

但它有个容易被忽略的特性:它的规则只对「读它的宿主」生效。同一个文件,换一个不认识它的工具打开,那些规则就一条都不存在了。所以「放哪里、谁加载」和「写了什么」同样重要——写得好不好之外,还要确认你用的平台到底认不认、认多少。

它适合写:不想被轻易违反的规则(不要碰什么文件、不要编数字、先问再动手)、输出格式(回答包含哪几节)、身份和文风(用中文、口语、先给结论)。一次性的具体任务仍应放在当轮消息里,避免固定规则和临时需求互相污染。

最重要的一点:系统提示词不是程序权限。模型可能理解错、执行不稳定,宿主也可能因为长度、缓存或上下文策略截断、改写或重新拼装指令。关键边界要靠文件权限、审批、沙箱和可复验结果兜底;是否持久、什么时候生效,必须在你实际使用的平台上测试,不能只凭名称猜。

长什么样 真实可交互,不是截图

系统提示词

由宿主以较高优先级提供;具体注入与保留方式取决于平台。

你是我的中文技术助手。
规则:
1. 不编造数字和事实,不确定就说“不知道”
2. 删除和覆盖前先问我
3. 先给结论,再给理由
高优先级规则按平台验证不是权限控制

注意它写的是规则,不是任务:任务放进当轮消息,规则才放进系统提示词。最下面那个红色徽章提醒你——它只是文本,不是程序约束。

拆开看,里面有这几块

  1. 1
    身份设定 Identity

    告诉它它是谁、服务谁。决定它默认怎么说话、站在哪个立场。

  2. 2
    硬规则 Rules

    永远不能做的事:不编数字、不动某些文件、先问再动手。这是系统提示词最值钱的部分。

  3. 3
    输出格式 Format

    回答必须长什么样:先给结论、包含哪几节、不用什么词。

  4. 4
    文风 Tone

    用中文、口语、像有经验的人。文风规则省去你每轮纠偏。

  5. 5
    任务上下文 Context

    当前项目、背景情况。帮助它理解你从哪来,但别把一次性任务塞进来。

容易搞混?这样区分

系统提示词 上下文窗口 Context Window

系统提示词是内容和角色,上下文窗口是容量。系统提示词是否计入窗口、如何截断,由宿主和模型接口决定;不要假设它一定永远保留或一定会被挤掉。

看 上下文窗口
系统提示词 普通消息 Regular message

system 消息通常比普通用户消息优先级高,但具体角色、拼装顺序和持久性由平台决定。「自定义指令」可能被转换成 system、developer 或普通上下文,必须查看平台说明并实测。

什么时候用得上

每次开新对话都要重讲规矩

先确认平台是否支持固定指令、作用范围是什么,再把不变规则放进去并新开对话验证。

平台的角色设定

自定义指令、人格设定和角色卡可能用不同消息角色注入;别只看功能名称,要看文档和实际行为。

长对话里它开始违规

不要直接断言规则被挤掉;先复述规则、检查宿主是否仍注入,再用权限和审批兜住关键边界。

你可以这样跟 AI 说

直接复制下面这段,把【】里的换成你的情况。它比一句「帮我加个 X」多说清楚了:改哪里、不许动啥、做完交什么。

【任务】帮我为 [具体平台/接口名称] 写一套固定指令
【目标】在这个平台支持的范围内,让新对话默认遵守这 4 条:
  1. 不编造数字、事实和链接,不确定就说「不知道」
  2. 涉及删除、覆盖、改数据结构前必须先问我
  3. 回答用中文口语,先给结论再给理由,不用「赋能、闭环」这类空词
  4. 我让你复述规则时,原样列出这 4 条
【边界】先说明该平台把「系统提示词 / 自定义指令」放在哪个消息角色、对新旧会话何时生效;不知道就明确说不知道,不要猜;只写指令文本,不改代码、文件或工具配置;不要塞一次性任务细节
【交付】
  1. 可直接粘贴的固定指令文本
  2. 平台名称、放置位置、消息角色、作用范围与已知长度限制
  3. 2 条测试消息和预期结果,用来验证它有没有真的遵守
  4. 哪些结论来自平台文档,哪些只是尚未验证的假设

关键不是把一段话命名为 system,而是先确认宿主如何注入,再用测试消息探测行为。要求区分文档事实和未验证假设,能避免把某个平台的实现当成通用规律。

它说「做好了」,你怎么自己验

这是本站的重头戏。AI 最会的不是写代码,是说「已完成」。这一条,它通常最多做到「测试」这层:有自动检查通过,但不一定是真实入口。

要亲眼看到这些,才算数

  • 先确认目标平台和版本,查看它把固定指令放在哪个消息角色、对新旧会话何时生效。
  • 保存配置后新开一个不带历史的对话,再发一条它不可能知道具体数字的问题,看它会不会明确说不知道。
  • 让它原样复述规则,对照原文;再在较长对话中重复测试,记录结果,不预设失败一定是「被挤掉」。
  • 关闭或移除固定指令后做一次对照测试,确认行为差异确实来自这项配置。
  • 真正危险的删除、覆盖和外部写操作仍要由权限、沙箱或人工批准阻止,不能只验模型口头遵守。

它常这么糊弄你

  • 「自定义指令就是 system prompt」——不同平台可能用 system、developer 或普通上下文注入,先查文档。
  • 「每一轮都会重新读取,所以一定生效」——这是宿主实现细节,必须在目标平台和版本上验证。
  • 「规则失效一定是上下文把它挤掉了」——也可能是宿主没注入、模型理解偏差或工具绕过,不能只猜一个原因。
  • 把删除权限只写进提示词,声称「这样就安全」——提示词不是权限系统,关键操作必须有程序级拦截。

系统提示词最高只能验到「测试」层:确认目标宿主怎么注入,再用行为探测验证。它永远不是程序级约束,真正重要的边界要靠权限设置兜底。

考考你 选一个你觉得对的

想让 AI 在新对话里默认遵守「别编数字」,最可靠的第一步是?