brain 是一种 Markdown 架构。Dylan Engelbrecht 搭建并打磨过一套,好让代理能保留大量上下文,却仍然只挑出与当前任务相关的信息。
它像一张地图。代理不必背下整座图书馆。它先定向,再打开一条路径。
这个想法有名字:progressive disclosure(Nielsen Norman Group)。它和人类的思考方式很像。你从地图开始,先弄清方位。你不会先把城里每条街的名字读完。
聊天不是那张地图。聊天是此刻的对话。AGENTS.md 也不是那张地图。它告诉代理如何在仓库里干活——构建、测试、别把房子拆了。brain 是代理所处世界的记忆:人、服务、决策、词汇、上周发生了什么。
文件夹名字不是协议。协议是形状:一份索引、每条条目旁边一行说明,以及知识只放在一个地方。
一次走查(简化)
这是一个非常简化的例子,请先跟我走一遍。
任务是:「我最喜欢的食物是什么?」
代理不会加载每一个文件。它从索引开始。索引列出第一级路径。每一行都短到代理能决定「打开这个」或「跳过这个」。
下面这棵树请带着保留来看。把名字改成你的世界。真正重要的是索引、那一行说明,以及知识是连贯的。
一棵请带着保留看的树——请改名字
AGENTS.md — mentions that the user's name is x
INDEX.md — the map
Wiki/
People/
x.md — a page about the user
y.md
代理已经在 AGENTS.md 里看到用户名叫 x。它看索引。它看到 Wiki/People/。它看到名为 x 的文件。这可能相关,于是它打开那一个文件。它不打开 y.md。它不倾倒整个 wiki。
在 x.md 里,它可能会看到一条笔记:最爱的食物是青柠。笔记标成未验证。也许是更早的代理推断出来的。这并未确认。
所以代理不该说「你最爱的食物是青柠。」它该说类似:「我想你最爱的食物是青柠,但那还没确认。对吗?」
这就是缩小版的协议。先地图。一次匹配。一个文件。未确认的事实得到的是提问,不是猜测。
索引必须做到什么
如果代理必须打开文件才能知道文件是否相关,索引就失败了。
好的索引行是路由提示:主题、路径、何时打开。嵌套索引(人、服务、事故)是更多地图,不是更多启动文件。一条事实住在一个地方。别处需要时,指向它。不要复制。副本会漂移。
同样的规则也适用于指令。离正在编辑的文件最近的 AGENTS.md 生效。根目录放默认。例外放在子树旁边。见 The AGENTS.md standard for AI coding agents。
玩具例子之后:三种寿命
你见过一次查找之后,分层就容易了。
有些笔记只属于本周。这次事故。这次上线。过期就归档或删除。
有些页面会在数周内保持为真:人、服务、词汇、架构决策。给这些做版本。
有些记录已经发生,不得就地改写:事故写回、已交付里程碑、审计笔记。实体事实用链接。不要复制。
事实稳定后可以晋升。被确认的猜测变成人物页上的已验证一行。出现两次的聊天指令变成 playbook 一行。反复出现的名字变成 wiki 实体。在代理反复问同一问题或犯同一错误之前,不要发明额外文件夹。
写下你是怎么知道的
Markdown 对人友好。代理还需要一个停车标志。
对每条事实或每个文件,写上:
status — verified、needs-verification 或 deprecated。
source — URL、人、工单、文档。
last-verified — 一个日期。
像青柠例子那样对待 needs-verification。提问或引用。不要编造。未知就保持未知。
这就是出处。它回答:这是否为真、据谁、截至何时?
访问控制是另一份工作。它问谁可以看见这个文件。有的 brain 需要 internal、restricted 或 secret 之类标签。不要把它折进验证字段。
规则放在它所管辖的那一层旁边
每一层配自己的 AGENTS.md。根文件设定全局边界和阅读顺序。wiki 文件说明何时写人物页或服务页。热点上下文文件说明何时归档。代理在最近的目录发现规则。与代码仓库相同的优先级模型。
同样的走查,工作场景
想象一个正在交付账单 API 的团队。任务是:「账单故障切换是什么?」
代理从索引开始,而不是从公开首页。索引说:账单故障切换,打开 wiki/runbooks/billing-failover.md。它打开那份 runbook。它不加载每一张服务页。
那张地图的草图:
INDEX.md — 地图,不是倾倒
# INDEX.md — Agent brain
## Read order
1. working-memory/current.md
2. wiki/INDEX.md
3. governance.md
## Layers
| Layer | Path | Lifespan |
| Hot context | working-memory/ | This week |
| Wiki | wiki/ | Stays true |
| Incidents | incidents/ | Already happened |
## Open when
| Signal | Path |
| On-call or Sev | working-memory/current.md, then incidents/ |
| What is service X? | wiki/services/INDEX.md |
| Billing failover | wiki/runbooks/billing-failover.md |
热点上下文可以长这样——注意来源和日期:
working-memory/current.md — 本周,带出处
---
title: Current focus
status: verified
last-verified: 2026-08-29
source: #inc-1842 retro notes
---
## This week
- Billing retry storm after the card-network timeout change.
- Cut over invoice PDF rendering to the new worker.
## Open threads
- Confirm whether legacy accounts still hit /v1/invoices:finalize.
wiki 文件夹也可以带自己的规则,只有代理走进该文件夹时才会发现:
wiki/AGENTS.md — 最近目录里的规则
# AGENTS.md — Wiki
## Purpose
Durable entities: services, customers, concepts, runbooks.
## When to write here
- Stable facts with a source (ticket, spec, or named owner).
- One file per service or concept.
## Never
- Duplicate SLOs or owner names that live on the service page — link.
- Treat chat summaries as canonical.
这仍然是草图。研究实验室可能保留 papers/ 和 experiments/。运维团队可能到第二次重复才加 incidents/。文件夹名字不是协议。
从小处开始
一份索引。一份热点上下文文件。一个实体模板。一页写着「如果你不知道,就问」。
重复证明有缺口时再加一层。brain 不是 wiki 倾倒。它是一张地图,加上你有意打开的文件,加上不编造青柠的习惯。
小结
不要倾倒语料。先看地图、弄清方位。跟着索引的一行走。打开一个文件。每个存储都有寿命。每条主张都有来源。一个权威位置。规则放在它所管辖的那一层旁边。未确认就提问。
Dylan Engelbrecht 会随代理实践的演进而更新这个知识中心。把这些文章当作活的参考——当前做法,不是冻结快照。