AWR 是一个面向人与 AI 的开源项目交付平台。它把 目标、工作流(workstream)、依赖关系、上下文和验收连接成一条完整的 项目交付流程,让项目能够从一致确认的目标推进到经过验证的交付——即使 工作被拆分在多个 agent、多个会话和多位协作者之间。
AWR 针对的是两个底层问题相同的场景:
- 一个人协调多个 agent 完成一个复杂项目。
- 一个团队交付一个共享项目,首先从复杂的软件项目开始。
在这两种场景中,人负责设定方向和评审结果,agent 负责执行工作。 AWR 通过它的 CLI 和 MCP 服务,把双方的工作连接到同一份项目状态上。
AWR 解决的问题
当你与 AI 编码 agent 协作时,项目的知识通常只存在于 agent 的私有对话里。 一旦会话结束、模型更换,或者换成另一个人或 agent 接手,这些上下文就 消失了。并行的工作逐渐偏离,而"完成"变成了最后一个 agent 说了算。
AWR 的设计围绕的是另一种应该成立的状态:
- 更换会话、模型或协作者,项目依然完整。 目标、约束和已验证的进展 在交接后依然保留。接手者会获得当前任务所需的上下文和它的检查点 (checkpoint),因此项目可以跨会话、跨 agent 延续。
- 并行工作有明确的归属和交接。 相互独立的工作流(例如前端、后端和 测试)各自保有自己的任务、上下文和所有权,同时共享项目级约束。
- "完成"是可验证的。 完成声明必须关联到绑定特定版本的证据。实现、 验证、合并和发布作为相互独立的事实被分别跟踪,而不是被压缩成一句 声明。
- 投入是可见的。 在任何阶段,你都能看清什么已就绪、什么在等待、 什么已被验证,以及精力花在了哪里。
简言之:AWR 在有限的上下文窗口之间保持项目的连续性。agent 的上下文 窗口是有限的,而压缩(compaction,即宿主为腾出空间而缩短对话)是宿主 的职责——AWR 的检查点负责把已记录的项目事实传递下去。
工作方式:你的文件始终是事实的权威来源
AWR 的架构由三部分组成:
- 你的文件承载意图。 项目中的 Markdown 和 YAML 文件描述目标、计划、 工作、约束和决策。AWR 对这些来源建立索引,但绝不会悄悄替换它们。
- AWR 维护连续性。 本地状态(一个 SQLite 项目库)保存这些来源的 投影,以及会话、认领(claim)、检查点和证据。上下文编译——即围绕 当前任务组装相关的目标、规则、依赖和证据——在本地运行,不调用任何 模型。修订版本检查保护写入不被过期状态破坏。
- 人和 agent 执行工作。 CLI 和 MCP 服务把项目事实连接到你使用的 任何宿主。agent 自带模型、工具和对话;经过评审的变更和进展会回流到 项目来源文件中。
因为检查点只承载已记录的事实,它们不会重建 agent 未记录的对话历史—— 那仍然是宿主的职责。
各个组成部分如何协同
你通过两个入口与 AWR 交互,两者来自同一个安装包:
awrCLI——初始化项目、查看状态,并驱动显式的会话工作流:认领 一项工作、获取它的聚焦上下文、在停下之前保存检查点。任何能执行 shell 命令的 agent 都可以使用它。awr-mcpMCP 服务——把同样的项目状态以 MCP 工具的形式暴露出来 (MCP 即 Model Context Protocol,是 AI 客户端调用外部工具的标准协议)。 客户端可以通过 stdio 连接单个项目,也可以连接一个服务多个客户端和 多个项目的共享 HTTP MCP 服务。
在这两者之上,AWR 支持你已经在使用的 agent。集成分为几个层次:
- 通用契约(默认,完整支持)。 任何能运行 CLI 或能说 MCP 的宿主, 都通过共享的会话工作流使用同一份项目状态。这包括 Claude Code、 Cursor、Windsurf 及类似宿主——不需要专门的安装器。
- 宿主说明。 对于部分宿主(Cursor、Kimi Code、Grok Build),AWR 提供了确切的配置合并路径和原生会话参数,并针对注明日期的宿主版本 做了验证。这些说明不增加任何运行时功能。
- 可选的生命周期适配器。 当宿主的原生生命周期钩子足够稳定时, 适配器可以根据宿主事件驱动 AWR 检查点。目前仅 Codex 拥有此适配器。 适配器绝不会把 AWR 变成该宿主的运行时。
对于协调多个 agent 的个人,依赖、评审和核算的纪律与更大的团队完全 一致——这是同一个项目模型,而不是两个产品。
AWR 不是什么
AWR 的边界是刻意划定的。它是一个宿主无关的工作运行时,产品边界是共享 的 CLI/MCP 契约——而不是某一个编辑器或 agent。
- AWR 不是 AI agent。 它不负责选择、启动或配置编码 agent。agent 自带模型、工具和对话;AWR 存储的 provider 和 model 字符串只是展示 标签。
- AWR 不是编辑器、聊天界面或模型提供方。 agent 的界面、原生对话 ID 和压缩机制都属于宿主。
- AWR 不替代你的项目文件。 Markdown/YAML 来源文件始终是权威;AWR 的本地状态只是索引加连续性记录,绝不能悄悄替换你的来源文件。
- AWR 不绑定某一种传输方式。 MCP 走 stdio、HTTP 还是干脆不用,由 宿主选择;如果宿主没有原生钩子,你可以通过 CLI 手动保存检查点。
- AWR 不在物理层面隔离工作流。 工作流隔离覆盖的是项目状态和受支持 的操作;物理进程隔离取决于执行宿主。
当前范围:已发布版本与开发中功能
AWR 对已交付和在建的内容保持坦诚。已发布的 0.5.1 CLI/MCP 包提供:
- 以来源文件为依据的目标和任务,支持依赖导航
- 面向当前任务的聚焦上下文编译
- 会话认领与检查点
- 绑定版本的证据
- 服务多个客户端和项目的共享 HTTP MCP 服务
- 个人工作区(Personal Workspace)文件交换
- 个人工作流基础:本地 SQLite 项目中的显式来源归属、会话归属和限定 范围的上下文
本版本不提供带认证的团队(Team)服务,也不提供完整的多客户端隔离。 以下功能仍在 main 分支上开发:
- 带版本号的跨工作流交付采纳(把下游工作绑定到已验收的制品与契约版本; 当其变化时重新检查消费方)
- 团队协作与交付评审(显式的评审人和批准记录)
- 工作流的用量、工时和 ETA 核算
每个已发布版本的发布说明界定了实际的包边界。
这对你意味着什么
如果你正在评估 AWR:你可以保留当前的 agent 和当前的文件。在项目中 初始化 AWR,给你的 agent 一份工作约定,从那时起,每个会话都从已记录的 目标、规则、依赖和检查点开始,而不是从零开始。你可以随时检查进展。
如果你要在团队中采用它:同样的 CLI/MCP 基础会随着相关能力发布而扩展 到共享交付与评审——已发布的版本已经给了你单用户、多 agent 的核心能力。
