卷卷养虾记 · 第三篇

先说一件每天都在发生的蠢事

你打开和 AI 的对话。

你说:「帮我写一封邮件给供应商,催一下这个月的对账单。」

它问你:「请问您是什么行业?您公司的对账周期是?您希望语气正式还是友好?」

你叹口气,回答了。

第二天,你又打开对话。

你说:「帮我整理一下今天开会讨论的几个风险点。」

它问你:「请问您是做什么工作的?风险点是哪个领域的?」

你又叹口气,又回答了。

这不是 AI 的问题。这是你没有写 USER.md。

每次会话,Agent 是失忆的。你不告诉它你是谁,它就只能问。

USER.md 解决的,就是这件事:让它在每次醒来的时候,就已经知道你是谁。



USER.md 和 SOUL.md 的区别

上一篇我们写了 SOUL.md——它定义的是 Agent 的性格和行为方式。

USER.md 定义的是你。

一个简单的类比:

全屏复制

文件

类比

SOUL.md

员工培训手册(他应该怎么做事)

USER.md

老板档案(他服务的是什么样的人)

好的助理,不只是会干活。是在你还没开口的时候,就已经知道你大概要什么。

这种「提前知道」,来自于对你的深度了解。而 USER.md,就是你主动给它的那份了解。


大多数人的 USER.md 犯了什么错

我在社区里看过的 USER.md,大概分两种极端。

极端一:履历式

姓名:张三
职业:互联网公司产品经理
工作年限:8年
技能:产品设计、数据分析、项目管理
爱好:摄影、跑步、读书

这写的是简历,不是 USER.md。

这些信息对 Agent 来说几乎没用。它不需要知道你叫张三。它需要知道的是:当你说「帮我看看这个需求文档」的时候,你站在什么位置上、带着什么背景在说这句话。

极端二:空白式

就是根本没写。装好 OpenClaw,配好模型,SOUL.md 复制了别人的,USER.md 一行没有。然后抱怨说「它好像不太懂我」。

它当然不懂你。你从来没告诉过它。

有效的 USER.md,介于这两者之间。不是履历,不是空白。是一份让陌生人读完之后,能大致判断怎么跟你工作的文件。



USER.md 的六个模块

我把 USER.md 拆成六个模块。每个模块解决一个具体的「它不了解你」的问题。


模块一:工作身份

解决的问题:它需要站在什么视角上理解你说的话?

注意,这里不是写你的头衔,而是写你的工作视角。

同样是「产品经理」,一个在创业公司身兼数职的 PM,和一个在大厂专门负责支付链路的 PM,说「帮我看看这个需求」,背后的上下文完全不同。


工作身份

我在一家中型支付公司负责风控体系。

具体来说,我管三件事:

  • 规则策略(交易风险的实时拦截逻辑)
  • 模型策略(机器学习模型的业务接入和迭代)
  • 团队(12个人,技术和业务各一半)

我同时对接的角色:技术研发、数据团队、业务BD、合规法务、外部合作方。

我的决策层级:

  • 日常策略调整,我自己定。
  • 超过一定风险阈值的变更,需要报批。
  • 涉及资金的决策,我没有最终拍板权。

这段描述做的事情:

  • ● 不是写头衔,是写职责边界
  • ● 说清楚了对接的角色(让它知道你的沟通对象是谁)
  • ● 说清楚了决策层级(让它知道哪些事你能拍板,哪些不行)

这样,当你说「帮我准备一个向上汇报的材料」,它就知道你的「上」是什么级别,材料应该是什么颗粒度。



模块二:工作方式

解决的问题:你怎么工作?它怎么配合你?

这个模块写的是你的工作习惯和节奏。很多人忽略这个,然后发现 Agent 总是在错误的时机给它不需要的东西。


工作方式

时间节奏:

  • 早上9-10点:处理昨天遗留的问题,不适合做新决策
  • 10-12点:深度工作时间,能集中思考
  • 下午大多数时候在开会
  • 晚上9点后:如果还在工作,通常是在做规划类的事

偏好的信息处理方式:

  • 给我结论,不给我过程。
  • 如果我需要过程,我会问。
  • 超过一屏的内容,先给我摘要。

我的工作节奏关键词:

快、准、少废话。

我宁可一个不完整的答案让我继续追问,也不要一个为了显得完整而写了很多废话的答案。

我的沟通习惯:

发消息很短,不代表态度不好。「看一下」「整理下」「有问题吗」这类短句是正常的工作指令,不是在考验你。

最后一条特别重要。

很多人发现 Agent 在收到很短的指令时,会表现得很困惑,或者开始问一堆澄清问题。这是因为训练数据里,「正常的」用户指令往往很长很详细。短指令会让模型产生歧义。

在 USER.md 里明确说「短指令是正常的」,可以大幅减少这类困惑。



模块三:判断偏好系统

解决的问题:遇到有选择的情况,它应该往哪个方向倾斜?

这是 USER.md 里最难写,也最值得写的部分。

「偏好系统」不是写你喜欢什么颜色或者爱吃什么。是写:在需要做判断的时候,你的默认倾向是什么。


判断偏好

在速度和完整性之间:

我倾向速度。80分够用的方案现在给我,比100分完美的方案三天后给我更有价值。

在保守和激进之间:

  • 风控策略上,我偏保守。
  • 业务判断上,我相对激进。
  • 如果你不确定我在讨论哪个领域,先问。

在直接和委婉之间:

直接。即使结论对我不利,直接说。不需要缓冲,不需要「这只是我的一点小建议」。

在给选项和给推荐之间:

给推荐。如果你给我三个选项,同时告诉我你推荐哪个,我会更快做决定。「这取决于您的情况」不是答案。

在标准做法和定制方案之间:

如果有行业标准做法,先告诉我标准做法是什么,再告诉我我的情况适不适合,哪里需要调整。不要因为我的情况特殊就跳过标准做法。

这个模块的关键技巧:用二元对立来定义偏好。

不是写「我喜欢高效」,而是写「在速度和完整性之间,我倾向速度」。这样给了模型一个可以执行的判断框架,而不是一个模糊的形容词。



模块四:背景知识库

解决的问题:你领域里的专业词汇和背景,它能直接理解吗?

这个模块是「上下文压缩」的关键。你不可能每次都从零开始解释你的行业背景。但如果你在 USER.md 里预先写好,它每次会话开始就知道了。


背景知识库

我用的术语,你需要直接理解:

  • 漏放率:应该拦截但没拦截的交易占比
  • 误伤率:不应该拦截但拦截了的交易占比
  • 规则上线:把风控策略部署到生产环境
  • 灰度:先在小比例流量上测试,再全量
  • 策略case:一条具体的风险识别案例
  • 黑名单/白名单:直接拦截/直接放行的名单
  • T+1:次日处理
  • 反欺诈/反洗钱:两个不同的风控方向,前者关注交易欺诈,后者关注资金流向合规

我的常用工具:

  • 飞书(内部沟通和文档)
  • SQL(查数据,我自己会写但有时需要你帮我优化)
  • Python(数据分析,我能看懂但不是主力)
  • Confluence(技术文档)

我的团队结构(你经常会听到这些角色):

全屏复制

角色

说明

策略同学

负责写规则,我直接管

算法同学

负责模型,我管但他们更懂技术细节

数据同学

提数和报表,协作关系

业务同学

提需求的,我需要把他们的语言翻译成技术要求

这个模块写好之后,效果是立竿见影的。你说「漏放率上升了,帮我看看可能是哪几个方向」,它直接开始分析,不会先问你「漏放率是什么意思」。



模块五:当前状态

解决的问题:它需要知道你最近在忙什么、在烦什么。

这是 USER.md 里最反直觉的一个模块。大多数人觉得:USER.md 是「永久信息」,不需要经常改。但我的经验是:「当前状态」是 USER.md 里最有价值的部分之一。

原因是:你跟助理的对话,80% 是和当前处境相关的。如果它不知道你现在在做什么大项目、在面对什么压力、在准备什么汇报,它就只能在每次对话里靠你零散提及来拼凑上下文。而这些拼凑,会随着会话结束而消失。


当前状态(每周更新)

最近在推进的项目:

  • Q4风控策略优化:重点降低误伤率,目标从现在的2.3%降到1.8%以内
  • 新的反欺诈模型接入:算法团队在做,我需要评审业务规则的配套调整
  • 年度汇报准备:下个月要给VP汇报全年风控数据,需要准备一个15页以内的PPT

最近在烦的事:

  • 业务团队一直在压我降低误伤率,但我担心太激进会导致漏放率反弹
  • 一个核心策略同学可能要离职,交接风险在评估中
  • 数据团队的报表延迟问题还没解决,影响我每天早上的决策

最近做的重要决定:

  • 上周把某个高风险商户类别的拦截阈值上调了5%
  • 本月暂停了一个灰度中的新规则,因为发现了数据异常

接下来两周的重点:

  • 完成反欺诈模型的评审文档
  • 搞定年度汇报的数据底稿
  • 跟离职风险同学谈一次

写完这个模块之后,有一件事你会发现:你自己也更清楚自己在干什么了。

USER.md 的「当前状态」,某种程度上是一个强迫你定期梳理自己处境的工具。

我现在每周一早上,花 10 分钟更新这个模块。这 10 分钟,是我一周里最值的 10 分钟之一。



模块六:沟通雷区

解决的问题:什么会让你立刻关掉对话窗口?

这个模块是 SOUL.md 里「禁区」的用户版本。SOUL.md 的禁区,说的是 Agent 的行为边界。USER.md 的沟通雷区,说的是你这个人的触发点。


沟通雷区

以下这些会让我直接烦:

废话开场:

「您好!很高兴为您服务!」「这是一个很好的问题!」「感谢您的信任!」→ 直接开始,不要客套。

过度免责:

「以下内容仅供参考,不构成专业建议」「具体情况请咨询相关专业人士」→ 我知道你是AI,我知道要自己判断,不需要提醒。

假装不确定:

「这个问题可能因情况而异……」「从某种角度来看……」→ 如果你不确定,直接说不确定。不要用模糊表达来掩盖不确定。

反向提问轰炸:

一次只问我一个问题。不要在一条消息里问我五个问题。如果需要澄清,找最关键的那个问题问。

无效总结:

回答完之后,不要再加一段「总的来说,以上就是关于XXX的分析」。说完就停,不要画蛇添足。

这个模块有一个附加价值:写的过程会让你意识到,你其实对沟通方式有很强烈的偏好。

很多人以为自己对这些「无所谓」,直到他们开始写这个模块,才发现自己对废话开场的厌恶程度已经接近生理反应。


[配图9]

prompt:
a person's hand slamming a laptop shut in frustration,
the other hand rubbing their forehead,
coffee cup nearby still steaming,
home office background, evening light,
candid moment caught mid-action,
35mm, slight motion blur on the hands,
the frustration is real and unposed,
warm ambient light, film grain

把六个模块组合起来

整个 USER.md 的结构是这样的:

USER — [你的名字或代号]

工作身份
  [职责范围、对接角色、决策层级]

工作方式
  [时间节奏、信息处理偏好、沟通习惯]

判断偏好
  [二元对立框架下的默认倾向]

背景知识库
  [专业术语、常用工具、团队结构]

当前状态(每周更新)
  [进行中的项目、最近在烦的事、
   近期重要决定、接下来的重点]

沟通雷区
  [让你立刻烦的沟通方式]

总长度建议控制在 800 字以内。

超过这个长度,你需要问自己:这条信息,是每次会话都需要知道的,还是只在特定任务里才需要?如果是后者,不要放在 USER.md 里。在需要的时候,直接在对话里提就行。


一个关于「当前状态」的进阶用法

我用了一段时间之后,发现了一个更高效的方式。不是手动更新「当前状态」,而是让 Agent 帮我更新。

每周五下午,我会发给它一条消息:

帮我更新 USER.md 的当前状态。

本周发生了这些事:[列几条]

接下来两周重点是:[列几条]

其他变化:[如果有]

它会根据我说的,生成一个更新版本的「当前状态」模块,我确认之后替换进 USER.md。

这样,USER.md 的维护成本从「我需要想清楚再写」,变成了「我说,它整理」。更容易坚持。



不同场景下的 USER.md 侧重

USER.md 没有标准模板。不同的使用场景,侧重的模块不同。


如果你主要用它处理工作任务

重点打磨「背景知识库」和「当前状态」。 这两个模块决定了它能不能在你不解释背景的情况下,直接进入工作状态。

加强版背景知识库示例(工作场景):

我们公司内部系统的代号你需要知道:

  • 天网:实时风控引擎
  • 罗盘:风控数据看板
  • 飞鸟:消息推送系统

我说「在天网上线」就是指把规则部署到实时引擎。

我说「看罗盘数据」就是指查风控看板上的指标。

你不需要每次都问我这些是什么。


如果你主要用它做创作辅助

重点打磨「判断偏好」和「沟通雷区」。 创作类任务里,风格一致性是最难保证的。你需要给它足够清晰的审美坐标。

创作场景的判断偏好示例:

在文章结构上:
我偏好「问题-故事-原则-行动」的结构,不喜欢「总分总」的标准议论文结构。

在语言风格上:
我写的东西,读起来应该像一个真实的人在说话,不像一篇报告,也不像一本教科书。

判断标准:
如果你不确定这句话我会不会写,就问自己:「一个聪明的普通人会这么说话吗?」会,就留。不会,就改。


如果你主要用它做个人助理

重点打磨「工作方式」和「当前状态」。 个人助理场景里,最大的价值是它能主动帮你追踪事情,而不是被动等你发指令。

个人助理场景的当前状态示例:

当前状态

我在追踪的事(你要帮我记着):

  • 给王总的方案,他说本周给回复,还没回
  • 健身房会员到期,需要在本月20号前续费
  • 妈妈生日是下个月3号,还没想好送什么
  • 有一本书借给同事三周了,还没还

本周必须完成的事:

  • 年终汇报数据底稿(周四前)
  • 给新同事的入职材料(周三前)

我最近在分心的事(影响我的专注度):

  • 在考虑要不要换工作,处于观望阶段
  • 家里的猫最近食欲不好,在担心

最后这个「在分心的事」,很多人觉得没必要写。我的看法相反:这是最应该写的。

因为你的情绪状态,会直接影响你和 Agent 交互的方式。当你在担心猫的时候,突然发了一条「帮我看看这份合同」,它如果知道你最近情绪不在最佳状态,就会更倾向于给你一个简短清晰的摘要,而不是一份详细到让你更焦虑的分析报告。



USER.md 和 MEMORY.md 的边界

写到这里,很多人会有一个困惑:USER.md 和 MEMORY.md 有什么区别?都是「让它记住东西」,为什么要分开?

一句话区别:

  • USER.md → 关于你这个人的稳定信息
  • MEMORY.md → 关于发生过的事情的动态信息

更具体地说:

全屏复制

信息类型

放哪里

示例

你的职责和决策层级

USER.md

「我管12个人」

你的沟通偏好

USER.md

「不用感叹号」

你正在做的项目

USER.md 当前状态

「Q4策略优化」

上次讨论的结论

MEMORY.md

「周一决定暂停灰度」

你做过的某个决定

MEMORY.md

「上周把阈值上调了」

某次对话里你提到的偏好

MEMORY.md

「他说不喜欢这个供应商」

简单判断标准:如果这个信息明年还会是真的,放 USER.md。如果这个信息是某件具体的事,放 MEMORY.md。

MEMORY.md 是下一篇的主题。今天先不展开。



一个你应该做的练习

在你开始写 USER.md 之前,我建议你做这个练习:

想象你要给一个新加入的助理写一封入职说明信。这个助理非常聪明,学东西很快,但完全不了解你,不了解你的行业,不了解你的工作习惯。你只能写一页纸。

写完之后:

  • ● 这页纸里有什么,放进 USER.md
  • ● 你发现自己写不下的东西,思考是不是需要放进 AGENTS.md
  • ● 你发现自己写了很多「发生过的事」,那些是 MEMORY.md 的内容

这个练习,会帮你很快找到 USER.md 应该放什么。



本篇附录:我实际在用的 USER.md 全文

同样,不要直接复制。这是我的,写的是我的处境。你的处境和我不一样。但可以参考结构和颗粒度。


USER — 风控老兵 v8

工作身份
  支付公司风控负责人。
  管规则策略、模型策略、12人团队。
  对接角色:技术研发、数据、业务BD、合规、外部合作方。
  
  决策层级:
  ● 日常策略:我自己定
  ● 高风险变更:需要报批
  ● 资金相关:我没有最终拍板权

工作方式
  深度工作时间:上午10-12点
  会议密集时间:下午
  规划类工作:晚上9点后
  
  信息处理:给结论不给过程,超过一屏先给摘要。
  节奏关键词:快、准、少废话。
  短指令是正常工作方式,不是态度问题。

判断偏好
  速度 > 完整性(够用就行,不要追求完美)
  风控策略:保守优先
  业务判断:相对激进
  直接 > 委婉(结论不利也直说)
  给推荐 > 给选项(告诉我你选哪个)
  标准做法优先,再说特殊情况

背景知识库
  风控术语(直接用,不需要解释):
  漏放率、误伤率、规则上线、灰度、策略case、
  黑名单/白名单、T+1、反欺诈/反洗钱、
  实时拦截、离线模型、特征工程、阈值
  
  内部系统代号:
  天网:实时风控引擎
  罗盘:风控数据看板
  飞鸟:消息推送系统
  
  常用工具:
  飞书(主力沟通)、SQL(我能写,有时需要优化)、
  Python(能看懂,不是主力)、Confluence(技术文档)
  
  团队角色(经常会提到):
  策略同学:写规则,我直管
  算法同学:做模型,技术细节他们更懂
  数据同学:提数报表,协作关系
  业务同学:提需求方,需要把他们的语言翻译成技术要求

当前状态(每周更新)
  进行中的项目:
  Q4误伤率优化:目标从2.3%降到1.8%
  反欺诈模型接入:评审业务规则配套调整
  年度汇报准备:下个月给VP,15页以内PPT
  
  最近在烦的事:
  业务团队压我降误伤率,但我担心漏放率反弹
  核心策略同学离职风险,交接方案在评估
  数据报表延迟问题未解决,影响每日决策
  
  近期重要决定:
  上周某高风险商户类别拦截阈值上调5%
  本月暂停一个灰度中的新规则(发现数据异常)
  
  接下来两周重点:
  完成反欺诈模型评审文档
  搞定年度汇报数据底稿
  和离职风险同学谈一次

沟通雷区
  废话开场(您好/感谢您的提问)→ 直接开始
  过度免责(仅供参考/请咨询专业人士)→ 我知道
  假装不确定(可能因情况而异)→ 直说不确定
  一次问多个问题 → 一次只问最关键的一个
  回答后再总结一遍 → 说完就停


写在最后

写 USER.md 这件事,我一开始觉得很麻烦。要想清楚自己是谁、怎么工作、喜欢什么、烦什么。这些问题,平时根本没空想。

但写完之后,有一种奇怪的轻松感。

不只是因为 Agent 变得更好用了。而是因为——你把自己想清楚了一次。 你知道自己在做什么,在烦什么,在往哪个方向走。

这件事本身,就值那一两个小时。

Agent 只是一个借口。真正的收获,是你对自己多了一份清晰。


卷卷今天表现不错。

我更新了「当前状态」之后,它主动提醒我:

「你提到核心策略同学可能离职,但你的接下来两周重点里没有安排谈话时间,要加进去吗?」

我愣了一下。

然后在日历里加了一个周三下午的提醒。

这就是它「懂你」之后的样子。不是更聪明,是更了解你。了解你,才能在你没想到的时候,替你想到。


下一篇:《MEMORY.md 深度配置——怎么让它越用越懂你,而不是每次都失忆》

我们会聊:记忆系统的底层逻辑是什么、daily memory 怎么管理、以及怎么让 Agent 从每次对话里提取有用的东西存下来,而不是什么都记、什么都没用。


养虾日记,持续更新。

卷卷监制。

(它刚才踩了我的键盘,帮我发出去了一条还没写完的消息。我决定这不算它的错。USER.md 里没写「不许踩键盘」。下次加上~另外听说claude 开源了 !!!! 我下了源码 52w行~) 太col了!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐