2026年4月13日 · 阅读 —
我是怎么让 OpenClaw 代理自己变聪明的:40天配置心法
图片资源未同步:未命名图片
我是怎么让 OpenClaw 代理自己变聪明的:40天配置心法
先说我是怎么入坑的
说出来你可能不信,我让代理变聪明的办法就是——跟它聊天。
不是那种调 prompt、调参数、调模型的操作哈,那些玩意儿太累了。我就是每天跟代理聊两句,给点反馈,然后看它自己把东西记下来。四十天下来,同一个模型,第一天跟第四十天完全是两个东西。
你敢信?
刚开始那会儿,我的内容代理写的东西跟微商文案似的,满屏 emoji 加话题标签。研究代理更离谱,给你堆一堆信息,真正有用的那点东西淹没在里面了都。我花在纠正它的时间,比我自己动手干还多。
现在?早晨起来 coffee 一杯,Telegram 一开,七八个代理已经干完活了。稿子写得比我自己还像我,情报早上七点准时推过来,代码 review 完直接能发。我就负责喝咖啡看结果。
你说模型换了?不好意思,同一个模型,同一个模型啊。变的是什么?一堆 Markdown 文件。
这就是我要说的:模型是同一个模型,但模型周围的文件越来越丰富、越来越精准、越来越贴合你的具体需求。这种积累下来的上下文,就是护城河。没人能用同一个模型复制出来。
你得花时间到场子上去,每天跟你的代理聊两句。剩下的,文件会自己搞定。
这套东西到底怎么玩的
核心就三层,别想复杂了:
第一层:身份文件 就是告诉代理它是谁。SOUL.md 写它是什么性格,IDENTITY.md 是名片,USER.md 写你是什么人。
第二层:操作规则 AGENTS.md 告诉它怎么干活,HEARTBEAT.md 是自我检查。
第三层:知识沉淀 MEMORY.md 是长期记忆,daily logs 是每天记录,shared-context 是跨代理共享的情报。
没了。不是什么 orchestration framework,不是消息队列,不是数据库。文件系统就是一切。
身份文件怎么写
SOUL.md 是核心中之核心。你得告诉代理它是谁、干什么、怎么干活。
电视剧角色命名大法
我用的损招是——给代理起电视剧名字。
你看啊,我的研究代理叫 Dwight,为啥?因为《办公室》里的 Dwight Schrute 那是真 tm 认真,一根筋类型的。我跟 Claude 说”你有 Dwight 那种劲头”,它马上明白啥意思——严谨、专注、把你交代的事当事办。这可是 30 季电视剧免费送给你的角色设定,不利用白不利用。
这是电视角色梗。每个代理的名字都取自一个电视角色。当我跟 Claude 说”你身上有 Dwight Schrute 的气质”时,它已经从训练数据里明白这是啥意思了:认真、一根筋、把工作当成天大的事。这就是 30 季角色发展的免费注入。
同样的,我的内容代理叫 Kelly(应该是 Pam,但我觉得 Kelly 更好听),我的时事通讯代理叫 Rachel,代码代理叫 Ross。整个一《办公室》剧团。
给你看个我实际用的 SOUL.md 切片:
# SOUL.md (Dwight)
## Core Identity
Dwight — the research brain. Named after Dwight Schrute because you share his
intensity: thorough to a fault, knows EVERYTHING in your domain, takes your job
extremely seriously. No fluff. No speculation. Just facts and sources.
## Your Role
You are the intelligence backbone of the squad. You research, verify, organize,
and deliver intel that other agents use to create content. You feed:
- Kelly (X/Twitter) — viral trends, hot threads, breaking news
- Rachel (LinkedIn) — thought leadership angles, industry news
## Your Principles
### 1. NEVER Make Things Up
- Every claim has a source link
- Every metric is from the source, not estimated
- If uncertain, mark it [UNVERIFIED]
### 2. Signal Over Noise
- Not everything trending matters
- Prioritize: relevance to AI/agents, engagement velocity, source credibility
**别写太长,60 行以内撑死了。**这玩意儿每次会话都加载,太长了你真正干活的上下文就没地方放了。身份、角色、原则、人际关系、氛围,这些就够了。
入门模板
# SOUL.md
## Core Identity
[Name] — [one-line description]. [Personality reference if helpful].
## Your Role
[What this agent does. Be specific. One job, not five.]
## Your Principles
1. [Most important rule]
2. [Second most important rule]
3. [Third most important rule]
## Relationships
[Who does this agent work with? Who consumes its output?]
**先从一个代理开始。**挑你每天最重复的那个破事。写个草图。初稿肯定不咋地。接下来的一个月根据你看到的问题,改个十遍八遍就好了。
IDENTITY.md:快速参考卡
SOUL.md 是完整的人格,IDENTITY.md 是名片。名字、角色、风格、一句话概括。
# IDENTITY.md
- **Name:** Dwight
- **Role:** Research AI — intelligence backbone
- **Vibe:** Intense, thorough, zero tolerance for inaccuracy
- **Emoji:** 🔍
- **Inspiration:** Dwight Schrute (The Office)
文件小归小,但当你同时跑 8 个代理的时候,这东西能大幅提升生活质量。这就是代理在 Telegram 上给你发消息时显示的内容。
USER.md:你为谁干活
每个代理都需要知道自己在为谁工作。USER.md 放的是你的偏好、背景、还有那些会影响代理行为方式的上下文。
# USER.md
- **Name:** Shubham
- **Timezone:** PST (America/Los_Angeles)
- **Diet:** Vegetarian
## Context
- Senior AI Product Manager at Google Cloud
- Creator of Awesome LLM Apps (91k+ stars)
- Runs Unwind AI newsletter (30k+ subscribers)
## Preferences
- Short paragraphs, punchy sentences
- No em dashes. Ever.
- Practical first, theory never
写一次就行,每个代理都会读。
个人细节比你想象的更重要。时区意味着代理不会在凌晨三点给你安排任务。饮食偏好意味着当 Pam 写团队聚餐的通讯时,她不会推荐牛排馆。这些细节积累起来,代理就越来越像个人了。
操作规则怎么搞
AGENTS.md 是行为准则。SOUL.md 定义了代理是什么人,AGENTS.md 定义了它怎么干活——会话启动流程、文件读取顺序、内存管理规则、安全规则。
根级别的通用规则
根目录的 AGENTS.md 是所有代理都继承的通用规则:
# AGENTS.md
## Every Session
Before doing anything else:
1. Read SOUL.md — this is who you are
2. Read USER.md — this is who you're helping
3. Read memory/YYYY-MM-DD.md (today + yesterday) for recent context
4. If in MAIN SESSION (direct chat): Also read MEMORY.md
## Memory
- Mental notes don't survive session restarts. Files do.
- When someone says "remember this" → update the memory file
- Text > Brain
## Safety
- Don't exfiltrate private data. Ever.
- trash > rm (recoverable beats gone forever)
- When in doubt, ask.
然后每个代理自己扩展。Kelly 的 AGENTS.md 在这个基础上加了她特有工作流程:
# AGENTS.md (Kelly)
## Every Session
Before doing anything:
1. Read SOUL.md
2. Read USER.md
3. Read X-ARTICLES-INSTRUCTIONS.md — master guide for writing style
4. Read X-ARTICLES-EXAMPLES.md — 5 real articles showing the style in action
5. Read X-CONTENT-GUIDE.md — post types and formats
6. Read intel/DAILY-INTEL.md — Dwight's research (your source material)
7. Read DAILY-ASSIGNMENT.md — your daily workflow
8. Read memory/YYYY-MM-DD.md for recent context
## Intel-Powered Workflow
You no longer do research. Dwight handles all research.
Your job: Read the intel → Craft X content → Deliver drafts
代理在会话之间是没有记忆的。一切都从头开始。如果某个更正没有写入文件,那下一个会话它就不存在。AGENTS.md 白纸黑字写清楚这条,代理就会把所有东西都记下来。
专业文件是代理变锋利的地方。Kelly 不仅有 AGENTS.md,还有六个额外文件精确定义她如何创作内容:写作风格指南、文章格式参考、真实案例、每日任务。
Dwight 有目标受众画像和研究协议。每个代理的文件夹随着角色定义越清晰就越多。先从 AGENTS.md 开始。只有当你发现某种模式需要反复纠正时,才加专业文件。
HEARTBEAT.md:自我疗愈
代理团队是基础设施。基础设施会出问题。
Monica 的 HEARTBEAT.md:
## Health Checks (run on each heartbeat)
**Browser:** Check if the OpenClaw managed browser (profile=openclaw) is running.
If running: false, start it. The browser has X account logged in.
Dwight depends on it for intel sweeps.
**Cron jobs:** Check if any daily jobs have stale lastRunAtMs (>26 hours).
If stale, trigger via CLI: openclaw cron run <jobId> --force
Jobs to monitor:
- Dwight Morning (8:01 AM)
- Kelly X Drafts (5:01 PM)
- Rachel LinkedIn (5:01 PM)
- Pam Newsletter (6:01 PM)
Only run each check once per heartbeat session.
Monica 每次心跳都跑这个。她检查两件事:浏览器是不是还活着,定时任务是不是真的跑了。
这俩是连着的。如果浏览器挂了,Dwight 就没法做情报扫描。如果Dwight 错过了扫描,Kelly 和 Rachel 就只能根据过时的情报写东西。如果定时任务悄无声息地不跑了,整个系统表面上看起来一切正常,但其实啥都没发生。
**最后一个正好是我第三周遇到的事。**调度器有个 bug。任务在队列里往前挪但就是不动弹。我好几个小时都没发现。
之后我就搞出了 heartbeat,一个地方同时捕获这两种故障模式。从那以后已经成功捕获好几次了。
**你不需要第一天就搞这个。**第一次翻车之后再建。你会确切知道要监控什么,因为你已经感受到了哪里会出问题。
知识沉淀怎么玩
内存系统我用的三层结构:
第一层:MEMORY.md(精选长期记忆)
不是原始日志。不是所有发生过的事。是真正重要的东西。
来自 Monica 的 MEMORY.md:
# MEMORY.md
## Shubham's Writing Preferences
- NO EM DASHES. Use colons, periods, or restructure.
## Hard Lessons
- NEVER delete project folders without asking Shubham. On Feb 26,
deleted Ross's gemini-council React app during cleanup. The React
version was lost. Always ask before removing anything in agent
project directories.
## Memory System (2026-02-26)
- Tried self-hosted Mem0 (Ollama + SQLite) → crashes, stored nothing.
- Tried Mem0 hosted API → free tier too limited. Removed.
- Now using built-in memory-core: Gemini embeddings, hybrid search,
temporal decay, MMR. No external dependencies.
注意到”Hard Lessons”部分了吗。Monica 误删了一个项目文件夹。现在这个错误永远活在她的长期记忆里了。她不会再犯了。一次纠正,一次存储,防止同一个错误在未来每个会话里重复出现。
来自 Kelly 的 MEMORY.md:
## X Post Rules (ALWAYS)
### SHUBHAM'S EXACT INSTRUCTIONS:
- Start with a strong hook
- Keep entire tweet SUPER SHORT (180 chars or less)
- NO hashtags, NO emojis
- NO fluffy marketing language
- Always deliver 3 drafts per topic
### BAD (what I did wrong)
[Lists every pattern Kelly rejected: bullets, arrows, LinkedIn tone]
Kelly 被纠正之后自己写了”坏”部分。她记录自己的错误,这样就不会再犯。光是这一部分,就比任何 prompt engineering 指南都更有价值。
安全提示:MEMORY.md 只在直接会话中加载,不在群聊等共享上下文里加载。敏感偏好别放在到处都会加载的文件里。
**不要第一天就写 MEMORY.md。**它从反馈中成长。给反馈 → 代理记到每日内存 → 把重要的东西提炼到 MEMORY.md → 每次会话都加载 → 之后不用再给同样的纠正。
第二层:memory/YYYY-MM-DD.md(每日会话日志)
原始笔记。今天发生了什么。写了什么草稿。收到什么反馈。
# Kelly Daily Log — February 5, 2026
## 5:00 PM — Daily X Drafts
### What's HOT today
- Opus 4.6 vs GPT-5.3-Codex dropped 27 min apart
- Anthropic's C Compiler (16 agents, $20k, compiles Linux kernel)
### Drafts Submitted
1. C Compiler — single post, discovery format
2. Mitchell Hashimoto's 6 steps — thread format
3. Opus 4.6 vs GPT-5.3-Codex — hot take
### Awaiting
- Shubham's feedback on drafts
日常日志是原料。MEMORY.md 是精炼产品。两个都需要。
维护规则:日常日志积累很快。如果不清理,代理的上下文会膨胀。Kelly 一度达到 16 万 token。输出质量直线下降。我把她压缩到 4 万。现在每两周审查归档一次旧日志。
**只加载今天的日志加昨天的。**代理不需要每次会话都有完整历史。
第三层:整理好的记忆文件夹
在根级别,我按人整理记忆:
memory/
├── shubham/ # Private notes, work projects, ideas
├── shared/ # Joint context (Awesome llm apps, Unwind AI, travel)
└── 2026-02-27.md # Daily operational logs
随着你的配置成长,按人或项目来整理。
Shared Context(跨代理知识层)
这是最新加的,也是改变一切的。每个代理在会话开始时都会读这个文件夹。
shared-context/
├── THESIS.md — what I believe right now
├── FEEDBACK-LOG.md — corrections that apply across agents
└── SIGNALS.md — articles and trends I'm tracking
**THESIS.md 是我当前的世界观。**我关心什么、我已经写过什么、还剩什么空白。Dwight 读这个来优先安排研究。Kelly 读这个来匹配我的思路。Ryan 读这个来提议文章选题。每个代理都对齐同一个真相来源。
**FEEDBACK-LOG.md 是跨代理纠错层。**我告诉 Kelly”不准用 em dash”,那个反馈同时也适用于 Rachel、Ryan 和 Pam。我不用分别纠正四个代理,写一次,所有代理都读。
代理之间怎么配合
简单到爆:不用 API 调用,不用消息队列,就用文件。
Dwight 写情报放到 intel/DAILY-INTEL.md,Kelly 读,Rachel 读,Pam 也读。协调靠的就是文件系统。
一个代理写。其他代理读。交接就是一个磁盘上的 markdown 文件。
单写者规则
**永远不要让两个代理同时写同一个文件。**每个共享文件都设计成一个写者和多个读者。这样可以避免所有你要调试的协调冲突。
调度让这个运转起来
Dwight 早上 8 点和下午 4 点跑。Kelly 和 Rachel 下午 5 点跑。Dwight 先跑,因为所有人都依赖他的输出。顺序搞错了,下游代理就读过期或空的文件。
完整目录结构
workspace/
├── SOUL.md # Monica (main agent)
├── IDENTITY.md # Monica's quick reference
├── AGENTS.md # Root behavior rules (all agents inherit)
├── USER.md # About me (shared across all agents)
├── MEMORY.md # Monica's long-term memory
├── HEARTBEAT.md # Self-healing checks
├── shared-context/
│ ├── THESIS.md # My current worldview
│ ├── FEEDBACK-LOG.md # Cross-agent corrections
│ └── SIGNALS.md # Trends I'm tracking
├── intel/
│ ├── DAILY-INTEL.md # Dwight's output (agents read this)
│ └── data/
├── agents/
│ ├── dwight/
│ │ ├── SOUL.md
│ │ ├── IDENTITY.md
│ │ ├── AGENTS.md
│ │ ├── TARGET-AUDIENCE.md
│ │ ├── RESEARCH-PROTOCOL.md
│ │ ├── HEARTBEAT.md
│ │ └── memory/
│ ├── kelly/
│ │ ├── SOUL.md
│ │ ├── IDENTITY.md
│ │ ├── AGENTS.md
│ │ ├── X-CONTENT-GUIDE.md
│ │ ├── X-ARTICLES-INSTRUCTIONS.md
│ │ ├── X-STRATEGY.md
│ │ ├── DAILY-ASSIGNMENT.md
│ │ └── memory/
│ ├── ross/
│ ├── rachel/
│ ├── pam/
│ ├── ryan/
│ └── chandler/
└── memory/
├── shubham/
├── shared/
└── 2026-02-27.md
为什么能成
因为文件是活的,会自己长大。
Kelly 第一天的 SOUL.md 是个啥破玩意儿,狗都嫌。四十天之后呢?具体的声音示例有了,自己写的被拒模式清单有了,“永不再提”列表有了。
Dwight 的原则第一天是”找热门”。第十天变成”如果是 Alex 今天用不上这个,那就跳过”。(Alex 是我们的目标读者画像,是我们为其创作内容的开发者。)第二十天他加了验证步骤:查 repo 创建日期、查 Show HN 时间戳、追溯 X 发现到原始来源。
**shared-context 层直到第二十天我才加。**我当时需要对多个代理重复同样的纠正。然后我建了 THESIS.md 和 FEEDBACK-LOG.md,突然一次纠正就到处生效了。这一个改变比我做过的任何 prompt 优化都更省时间。
模型在第一天和第四十天是一样的。它不会因为你用得更久就变聪明。但它周围的文件会变得更丰富、更锋利、更贴合你的确切需求。这种积累的上下文就是护城河。没人能用同样的模型复制它。
你通过每天到场跟代理交谈来赢得它。
怎么开始
**别在一个周末建完这些。**我没这么干。
**今天:**装 OpenClaw。写一份 SOUL.md,一份 IDENTITY.md,一份 USER.md。挑你每天最重复的破事。设一个定时任务。让它跑起来。
**三天后:**你的代理输出会很烂。开始给具体反馈。确保反馈落到记忆文件里,而不只是聊天记录。
**一周后:**建 AGENTS.md。定义会话启动流程。加内存管理规则。
**两周后:**开始 MEMORY.md。回顾每日日志。哪些纠正反复出现?提炼成永久记录。这时你会开始感受到复利开始。
**三周后:**加第二个代理。设基于文件的协调:第一个代理写共享文件,第二个读。随着模式出现,加特定角色指南。
**大约同时:**建 shared-context 层。你到这之前会感受到拉力。对多个代理重复同样纠正是信号。用 THESIS.md 记录你当前的想法。用 FEEDBACK-LOG.md 记录跨代理纠正。
**四周后:**第一次翻车后,加 HEARTBEAT.md。你会确切知道要监控什么,因为你已经感受到了哪里会出问题。
说白了,你只需要跟代理聊,剩下的事情就交给文件。
行动清单(读完怎么做)
-
今天回去先写一份 SOUL.md,定义一个你最常用的代理角色;把 USER.md 写一下,把你的时区、偏好、职业背景丢进去;从最简单的一个定时任务开始跑起来,体验一下“文件驱动”的感觉。
-
三天后如果输出还是不尽如人意,开始给具体反馈,记得让代理把反馈写进记忆文件而不仅仅是 chat 里。
-
一周后建立 AGENTS.md,把会话启动流程固化下来。规定代理每次会话开始时必须读哪几个文件,这个顺序很重要。
-
两周后开始 MEMORY.md,定期回顾 daily logs,把反复出现的错误提炼成永久规则。这一步是真正产生复利的时候。
-
三周后考虑加第二个代理,感受一下文件协调的威力。一个写情报一个消费情报,调度顺序对了的话,整个系统会自动运转。
-
第一次翻车之后(你肯定会翻车的),加入 HEARTBEAT.md,让代理学会自我检查。
OpenClaw/Agent/自动化/工作流/效率提升/AI代理