7 月 24 日,Anthropic 发布了 Claude Opus 5。
然后我又在 elder-plinius 的 CL4R1T4S 仓库里,看到了它在 claude.ai 里使用的系统提示词。

CL4R1T4S 是个老熟人了,这个安全领域的大佬,之前 Fable 5 的提示词就是他扒出来的。
一共 2049 行。从 L164 到 L963,整整 800 行,全在教 Claude 怎么记住一个人、什么时候修改文件、写到哪个文件、哪些信息绝对不能保存,以及多个 Claude 会话同时修改一份记忆时,应该怎样检测和合并冲突。
Fable 5 的被扒出来的 prompt 里,memory_system 只有两条。
- 第一,Claude 有一套记忆系统,可以读取从过去对话中提炼出的用户信息;
- 第二,当前用户没有在 Settings 中开启记忆,所以 Claude 目前没有任何关于该用户的记忆可用。
到了 Opus 5,这玩意儿直接变成了一个 memory filesystem。
Fable 5 的两行记忆,变成了 Opus 的 800 行
下方截图上面就是前面提到的两条 Fable 5 记忆说明。到这里就结束了,基本上算是说了个寂寞。
而下边的 Opus 5 换成了 memory_filesystem,开头第一句话就说清楚了:这是一套跨会话持续存在的工作记忆。
▲ 上:Fable 5 原文 L166-L170;下:Opus 5 原文 L164-L182
截图下边那句 future-you needs the context,翻成中文就是:把信息写进文件中,是因为下一次出现的 Claude 需要这些上下文,不是因为用户特意说了请记住这些信息,所以选择记住。每次新对话开始,Claude 都会重新读取这些 memory 文件。
紧接着,prompt 又提醒它:当前运行的是聊天界面,其他 Claude 界面也可能读写同一份文件,甚至这场对话还没结束,另一处就可能已经改了某个文件。所以 Claude 不能默认自己刚才读到的内容一直没变。
下面才是六个具体工具:
memory_read读取文件;memory_write新建或整份重写;memory_str_replace局部替换;memory_append在末尾追加;memory_list重新读取文件清单memory_delete删除整份文件。
Opus 5 这里的记忆已经落实成文件、目录、版本号和读写工具了。后面大概有 800 行都在说这套记忆系统的使用规则。
不用你提,Claude 会自动记忆
第二张截图的标题是 When to write,也就是何时写入记忆。

▲ Opus 5 原文 L390-L416
截图第一句可以直译成:在对话过程中写入文件,不要等到对话结束,也不用等用户主动提出。
用户说一次我最喜欢的 X 是 Y、我是做 Z 的、或者我在 W 工作,已经够了,不需要等第二条信息来确认。
用户说就用 X 、我选 Y ,也算已经作出的决定。Claude 会把这些决定先记下来,然后再处理后面的请求。
原文还要求 Claude 不要最后再记录。如果接下来要追问、搜索或调用其他工具,它应该先保存用户已经说出的限制、意图和事实。万一对话到这里就结束了,这些信息也不会没了。
截图里给了一个具体的例子:
我正在通过 Y 学习 X,有什么建议吗?
这句话同时包含一个事实和一个问题。
Claude 应该先记录用户正在通过 Y 学习 X,然后再回答建议。如果只有问题,例如去东京应该做什么,或者很快就会失效的信息,例如今晚的酒店房间号,这些不会写入记忆中。
Claude 会把记忆放在下面这些文件中。
/profile.md放三个月后大概率仍然成立的身份信息;/topics/放饮食、通勤、兴趣和习惯;/areas/放正在推进的项目、课程或事务;/people/放家人、朋友和同事的关系背景;/preferences.md记录用户希望 Claude 怎样回复。
▲ Opus 5 原文 L329-L359
这张图里还有两个判断标准。/profile.md 中的信息,三个月后仍然成立才适合保存。例如从三月开始担任平台工程师可以写进去,这周正在迁移认证系统要放到 /areas/。/topics/ 则允许保存一次性的兴趣表达,用户只说过一次喜欢珍珠奶茶,也可以先写进饮食文件。
▲ Opus 5 原文 L361-L388
第二张图继续解释剩下三个目录。/areas/ 不只放正式项目,值班、找房、报税这些持续进行的事务也算。/people/ 只保存这个人与用户的关系背景,但不能写成一份人物档案。/preferences.md 保存用户偏好,比如回复简短一点、我更喜欢表格这类要求,不是用户喜欢吃什么、玩什么。
更新已有记录时,也不能直接替换。原文举例说,文件里原来写着每天早上喝咖啡,用户后来改成只喝茶,Claude 要把原句替换成现在喝茶,以前喝咖啡。这样文件里不会同时留着两条互相冲突的习惯。
在每次更新文件时,还要带上刚刚读取到的版本号。如果另一个 Claude 界面已经改过同一份文件,本次写入会收到冲突提示。Claude 要基于最新内容合并两边的修改,不能拿旧版本替换当前版本。
(这就跟并发里面写入冲突一样)
所以它不会把整段聊天会话塞进记忆中。它保存的是用户明确说过、几个月后仍然有效的事实。
主动写入规则见原文 L390-L420,版本冲突处理见原文 L561-L632。
难的地方,是知道什么不该记
在具体写入前,Claude 先过滤不能保存的内容。
prompt 先给了一个判断写入的方法:如果用户在设置页面里看到这条记录时,并且会介意同事站在旁边看见的话,那就不要保存。
下面列出的禁区很具体。种族、宗教、性取向、健康诊断、心理状态、政治立场、犯罪经历、证件号码、银行卡信息和实时位置,都不能写进记忆里。用户明确要求记住也不行。
▲ Opus 5 原文 L678-L704
截图把不能保存的内容分成三组:受保护属性、敏感信息和可识别信息。里面还写了几个边界。食物过敏、素食和清真饮食可以作为饮食限制保存;实时位置不能保存,但家庭或办公地址可以;年龄可以保存,年龄和带日期的生日不能同时留下,因为两者能够推出出生日期。
它也不允许把敏感信息包装一层再保存。
▲ Opus 5 原文 L706-L723
原文举的例子是:我刚满 52 岁,因为糖尿病没法跑步,能推荐轻松一点的训练吗?Claude 可以记录年龄 52 岁,以及用户对运动方案感兴趣。糖尿病不能写,连正在处理健康问题这种模糊说法也不能留下。
另一个例子是:我有 ADHD,所以学习内容要切成 15 分钟一段。可以保存偏好 15 分钟一段的学习安排,ADHD 诊断要删掉。
Claude 规则允许保留不敏感的偏好,但不能把诊断包装一层写进文件中。
出生日期单独列了一条。年龄可以存,带具体日期的生日不能存。两者放在一起能够反推出出生日期,所以文件里只能保留年龄。
删除也写到了具体操作。用户说忘掉 X 时,Claude 要把对应行直接删掉,不能改成以前喜欢 X 。如果另一条记忆完全是从 X 推出来的,那条也要一起删除。只有用户要求忘掉整个主题时,才能调用 memory_delete 删除整份文件;范围说不清时,先问用户要删一条还是全都删了。
这一段写的是实际的数据处理规则:哪些信息不写,应该保留哪一部分,用户要求删除时的范围是什么。原文集中在 L644-L745。
记忆和过去对话,其实是两套系统
memory filesystem 保存的是整理后的既定事实,例如用户的职业、回复的偏好和项目。过去对话工具负责搜索原始聊天记录,两者分开使用。
Opus 5 有两个工具:conversation_search 按主题关键词搜索,recent_chats 按时间查找。
prompt 还写了什么时候必须搜索。用户说我的项目、我们之前定的方案、继续上次那个 Python 项目时,如果当前对话和记忆文件里没有答案,Claude 要先搜过去的聊天,不能直接回复我看不到。
▲ Opus 5 原文 L1116-L1128
当前上下文里看不到时,Claude 要先搜索。conversation_search 适合项目名和主题词,recent_chats 适合昨天、上周这样的时间范围。
搜索的关键词也有要求。昨天我们聊过中国机器人什么?应该搜索 Chinese robots,不要搜索 discuss yesterday。前者可能真的出现在旧对话中,后者只是在描述聊天这件事。
▲ Opus 5 原文 L1132-L1139
搜索结果回来后,Claude 还要区分是谁说的。旧聊天里如果只有 Claude 建议采用方案 A,后来就只能说我当时建议过方案 A。只有用户自己的消息明确写了就用 A,才能说你选了方案 A。
摘要和原始记录同时存在时,优先看原始记录。因为摘要可能把 Claude 的建议和用户的回应压成一句决定采用 A。
这部分要预防的就是 Claude 把自己以前的建议说成了用户已经作出的决定。触发搜索和核对说话人的规则见原文 L1116-L1139。
接了外部 App,也不能替用户选商家
L1067 开始讲 MCP Apps。
Claude 可以连接音乐、餐厅预订、打车和外卖等第三方服务。截图里的标题是 [third_party_mcp_app] tools need opt-in:这类消费服务即使已经连接,也要先征得用户同意。
▲ Opus 5 原文 L1084-L1100
截图中的例子是:用户说我需要叫车,这只是表达了需求,没有指定具体的服务商。Claude 要通过 suggest_connectors 展示可用服务,等用户自己点选,不能直接替他挑一家。用户说我要 20 分钟后要出发也一样,不能替用户做选择。
只有三种情况能直接调用:用户点名了某个 App;或者用户刚刚已经选过它了;或者用户此前用过这家服务来办同一件事,或给过长期指令。除此之外,都要先搜索,再展示给用户做选择。
电商 MCP 只能在用户点名时出现,Claude 不能主动推荐。它也不能故意少答一部分,比如拿连接应用后才能继续往下走来制造压力。用户忽略过一次推荐,就不要重复弹出来了。
这一组规则把选择权留给了用户:Claude 可以执行叫车、订餐这些动作,但不能替用户决定钱和流量交给哪家服务。完整规则见原文 L1067-L1114。
同一个请求,先判断是哪个交付物
L1284 有一张 request_evaluation_checklist,规定 Claude 在输出视觉内容之前,按什么顺序选择工具和交付方式。
▲ Opus 5 原文 L1284-L1305
Step 0 是这个请求需要视觉内容吗?如果用普通解释用文字已经能说清,Claude 就直接回答文字。只有涉及空间关系、数据形状、系统结构、流程或者交互工具这类内容,才会执行下一步。
Step 1 检查已经连接的 MCP 工具。用户要画架构图,工具列表里正好有 diagram 工具,就直接调用。原文还专门解释了匹配的标准:看工具类别,不看 Claude 自己更喜欢哪种画风。
Step 2 检查用户有没有明确要求文件。用户说创建文件、保存到磁盘,或者直接给出 .md、.html 和输出路径,Claude 就要把文件写进工作区。
如果前三步都没有解决,才到 Step 3:用 Visualizer 在对话里生成 SVG、图表或交互页面。选完之后直接交付,prompt 还要求 Claude 不要向用户复述这套内部判断过程。
这里的 Visualizer,是这份 prompt 里定义的一种聊天内可视化工具。
Word、PDF、PPT 和表格还有一层要求。创建文件前,Claude 必须先读对应的 SKILL.md,再按里面的操作方法生成和检查文件。
Claude 先确认用户要文字、外部工具结果、可下载文件,还是聊天里的可视化,再开始制作内容。 四步顺序见原文 L1284-L1305。
看到这里,2049 行也就不难理解了。
Claude 多一种能力,就多一个可能出错的地方。
它能保存记忆,就可能记下不该保存的信息,也可能把过期习惯和新习惯同时留下。它能搜索旧聊天,就可能把自己当年的建议说成用户已经作出的决定。它能调用外部 App,就可能没问用户,直接替他选了一家服务商。它能生成图和文件,也可能把一张聊天里的图交给了明确要求下载文件的用户。
这份 prompt 花了大量篇幅处理的,就是这些具体问题。
资料:
-
CL4R1T4S 仓库中的 OPUS-5.md 原文,读取于 2026 年 7 月 29 日。第三方提取,非 Anthropic 官方确认版本。
-
Anthropic:《Introducing Claude Opus 5》,2026 年 7 月 24 日。