← 返回 Blog

Blog

从 AGENTS.md 到 AI-Friendly Workspace

AGENTS.md 解决入口,但不解决接力。要让 Agent 真能持续干活,还得把进度、决策、工件和 workflow 留在 workspace 里。

我前一阵子判断错了一件事。

我以为把 AGENTS.md 写好,agent 进仓库就能干活。后来才发现,它解决的是开场,不是接力。

开场的问题是:它知道先看什么、用什么命令、什么不能碰。接力的问题是:今天停在半路,明天换一个 agent,它还能不能从仓库本身接上,而不是重新猜一遍。

这两件事不是一回事。

AGENTS.md 当然重要。没有它,agent 一进来就会先猜:这个项目是什么,先读哪个文档,测试怎么跑,什么叫 done,哪些文件是真规则,哪些只是旧草稿。猜错一次,后面就都歪了。

但一个项目能不能持续接力,不主要看入口文件,而要看工作区里有没有几样东西真的落下来了:

  • 当前现实写在哪里
  • 现在做到哪一步写在哪里
  • 为什么这么做写在哪里
  • 功能边界和模块归属写在哪里
  • 启动、验证、发布这些重复动作写在哪里
  • 截图、trace、报告这些工件又落在哪里

这些东西如果不在仓库里,就只能在聊天记录里、在人脑里,或者干脆丢了。

所以我现在更愿意把这件事说得直一点:

AGENTS.md 管入口,current-state / progress / decisions / capability-map / workflows / artifacts 管连续性。两层都立住了,workspace 才开始像样。

我想分享的 skill,不该只管入口

如果要给这个 skill 一个工作定义,我觉得它至少该做三件事:

  • 立住一个 canonical AGENTS.md
  • 把进度、决策、工件、模块边界这些该落盘的东西落下来
  • 写清 execution contract 和常用 workflow,别让 agent 每次都临场发挥

如果一个仓库现在还停留在“各种 AI IDE 文件互相打架、规则分散、done 不明确”的阶段,光做第一步就已经很值。

但如果目标是:

让项目变成一个 agent 可以持续迭代、持续接力、持续演化,而且不容易丢上下文的 workspace

那只做第一步还不够。

仓库会“开机”,和仓库能“续跑”,中间差着一整层工作面。

真正缺的不是更多提示词,而是 durable context surfaces

AI-Friendly workspace 说到底是一个结构问题:先有 AGENTS.md,再有一组真正在时间里能留下来的文件和工件。

它至少应该让下面几类东西有明确落点:

repo/
  AGENTS.md
  docs/
    current-state.md
    progress.md
    decisions.md
    capability-map.md
  .agents/
    workflows/
  artifacts/

关键不在于目录长什么样,而在于每一层到底写什么。

AGENTS.md 管入口。它回答的是:先读什么、遵守什么、怎么证明这次没有胡来。

docs/current-state.md 管现实。里面只能写已经验证过的现状,不能把目标状态、想法、愿景一起倒进去。

docs/progress.md 管接力。上次做到哪、卡在哪、下一步是什么、哪些路已经试过但别再试,这些都该写在这里。

docs/decisions.md 或 ADR 管因果。为什么选这个方案,为什么放弃另一个方案,哪些约束是真的,不是聊天里一闪而过的念头。

docs/capability-map.md 管边界。小仓库不一定非要有,但只要项目开始分成多个子项目、多个部署面、多个服务边界,它就不该省。否则每来一个新 agent,都要先做一轮低价值的目录考古。

.agents/workflows/ 管重复动作。启动、验证、回归、预览、发布这些事,如果每次都重新想一遍,时间就白白烧在重建上下文上。

artifacts/ 管工件。截图、benchmark、trace、临时报告、调试输出没有固定落点,就很容易重新掉回聊天窗口,过一轮 session 基本就等于没了。

如果这些面没有立住,所谓“上下文保留”最后经常只剩两种脆弱方案:

  1. 指望模型自己记住
  2. 指望操作者自己记住

这两种都不太可靠。

所以这个 skill 应该怎么优化

我现在对这个 skill 的要求,反而比一开始简单。

它不用显得很聪明,但至少要把下面几件事做扎实:

  • 只有一个主入口,不要多份规则并行演化
  • 当前现实、运行中进度、历史决策分开写,不要搅在一起
  • 重复动作有 workflow,重要工件有落点
  • 多子项目 repo 要把边界写清,不要每次都重新考古

最后的验收标准也不该是“入口看起来清楚”,而应该更硬一点:

一个全新的 agent,给它 30 秒到 2 分钟,它能不能只靠 workspace 里的持久对象接上旧任务,而不是依赖上一轮聊天历史。

如果做不到,这个 workspace 还不够格。

可直接复制给 Agent 的版本

如果你不想先手工创建 skill 文件,可以直接把下面这段 prompt 发给 Agent。

这件事对新项目和旧项目都成立

它不只是一个“整理旧仓库”的 skill,也应该能拿来初始化新项目。

对旧项目,它应该做的是改造:

  • 收敛入口文件
  • 拆开混杂的 truth layers
  • 补进度、决策、工件、workflow 的持久落点
  • 让“昨天做到哪”不再只存在于聊天记录

对新项目,它应该做的是预埋:

  • 默认一开始就把 AGENTS.md、适配层和 execution contract 立住
  • 一开始就决定 current state、progress、decisions、artifacts 落在哪
  • 如果是多子项目 repo,一开始就决定 capability-map 放在哪
  • 一开始就让 workflow 有明确入口,而不是长到第二周再补

这会让整个项目的 operating model 稳很多。因为你不是在训练某一个 agent 记住项目,而是在让项目本身变成一个更好的外部记忆和协作基底。

我现在的结论

所以如果现在让我给这个 skill 下一个更完整的判断,我会这么说:

  • 它首先要解决入口规范化和执行契约
  • 但它的完成标准不能停在这里
  • 它真正的目标,是把项目变成一个 agent 可以持续接力的 AI-Friendly workspace

最关键的优化方向,不是再往里面塞更多“如何提示模型”的建议,而是把 AGENTS.md 和 durable workspace surfaces 这两层一起立住。

说得再直白一点:

不要把连续性寄托在 agent 身上,要把连续性沉淀到 workspace 身上。

只有这样,agent 才更像一个会不断更替但能持续接力的执行者,而不是每次 session 都重新出生一次。

讨论

评论

直接在本站留言交流。

评论正在加载…