AWR 让多个人——以及与他们协作的 Agent——在一个共享项目上协调:每个人 看到同样的任务、认领自己正在做的工作、随时汇报进展,并把完成的工作交给 独立的评审人。这一切都在你平常的 Agent 对话里完成;不需要在浏览器里 来回复制任务 ID。
可用性说明: 本文描述的是 Team 服务,它仍在开发中。它不属于已发布 的 0.5.0 个人 MCP 服务器。下面描述的能力适用于由你的项目管理员托管的 团队项目,不适用于个人本地部署。
想了解底层概念(工作项、契约、证据、会话),请先读核心概念。 单人的日常循环见你的日常工作流。
协作模型一览
四个概念撑起整个模型:
- 工作流与共享工作。 远程项目是共享工作的权威——任务、依赖、进展和 结果唯一存放的地方。你的本地检出只放代码和测试;不要再初始化一个本地 任务台账来替代远程项目。
- 认领。 Agent 开始执行工作之前,要先在它的会话下取得该任务的活跃 认领。他人的活跃认领绝不能被顶替,因此两个 Agent 不可能悄悄地做同一 件事。
- 评审。 交付和验收是两个独立的事实。提交的工作在被验收之前,由一位 被授权的、独立的人评审。属于你自己的第二个 Agent 不算独立评审人。
- 交接。 会话是持久的:它们在 MCP 重连后依然存活,携带检查点和恢复 状态,可以被再次接手——由休息后的你,或由队友检查——而不丢失上下文。
一次连接
向你的项目管理员索取项目 MCP URL 和你个人的凭证。每位参与者使用自己的 凭证,仓库权限与 AWR 权限相互独立——加入 AWR 项目不授予 Git 访问权, 反之亦然。
在背后,被授权的管理员打开 Inspector 中的 Members,添加你,选择你的 项目角色和工作流,并复制一份一次性的个人连接说明,其中包含端点和你的 凭证。你通过私密渠道收到它。管理员在清空了签发面板之后无法再取回其 明文;如果你丢失了凭证,可以显式更换。
在任何支持 Streamable HTTP 远程 MCP 和 Bearer 认证的 Agent 客户端中添加远程 MCP 服务器:
| 设置项 | 值 |
|---|---|
| 传输方式 | Streamable HTTP |
| 服务器 URL | 你的项目端点,例如 https://team.example/v1/projects/example/mcp |
| 认证方式 | HTTP Authorization 头中的 Bearer token |
| 凭证 | 管理员提供给你的个人凭证 |
这些是连接设置,不是配置文件格式或 shell 命令;每个客户端有自己的设置 方式和版本要求。如果你的客户端只支持本地 stdio MCP,这个 URL 无法直接 使用——请使用支持远程传输的客户端版本或集成。
关于凭证的几条安全规则:
- 使用客户端支持的密钥设置项,或可信的私密 Agent 输入。
- 绝不要把凭证放进 URL、共享对话或仓库。
- 更改配置后重新连接,然后在 Agent 中打开你的本地代码检出。
把结果目标告诉你的 Agent
你在日常开发的同一个对话里工作。描述你想要的结果,让 Agent 去协调, 例如:
使用已连接的 AWR Team 项目实现 issue API。刷新当前任务并恢复我已有的 工作,或认领一个符合这个请求的合格任务。编辑之前先读契约、依赖和最新 检查点。把进展和证据留在 AWR 中,把测试过的变更以 PR 提交,并请求 独立评审。
Agent 读取共享工作、认领合格的任务,并在本地开发的同时保持项目更新。 如果它遇到真实的权限、依赖或所有权冲突,它会向你报告,而不是绕过它。
Agent 为你做什么
Agent 通过两个发现的 MCP 工具与 Team 服务对话:awr_team_query 用于 读取,awr_team_command 用于写入。每次查询和命令都会重新检查你当前的 权限,因此角色变更即时生效,不需要任何人改本地配置。
一个典型的会话流程如下:
- 启动或重连。 Agent 查询
capabilities确认自己的身份和权限,然后 用work.next恢复你自己的会话或发现可见的未完成工作,并跟随返回的next_query。(在没有work.next的旧服务器上,它回退到workstreams.list和限定范围的work.list/work.search。) - 准备。 对选定的任务,
work.prepare返回当前契约、必需的规格说明、 依赖、恢复状态和一个上下文哈希——这是 Agent 在编辑前必须真正消费的 一个快照。work.prepare和work.observe还可能返回一条简短的guidance(它的条件、事实依据、下一步行动和重新评估触发条件);它 是建议,不是执行权限。 - 认领。 Agent 用
claim.inspect检查现有认领,然后在它的会话下 获取或续期一个活跃认领。 - 执行。 凭借
execution.prepare和携带execution_authorized=true的新鲜execution.start响应,Agent 可以在声明的范围内执行一次执行。 代码和工具在你的机器上运行——服务本身绝不执行任何东西。仅有认领不 等于获准执行。 - 汇报进展。 Agent 发送
session.checkpoint,带上已消费的上下文 哈希、下一步行动、未闭合环节和简短的progress摘要,在一个阶段或 测试完成、阻塞发生变化、需要你的输入、或交付就绪时批量更新——而不是 每次工具调用都发。请记住,检查点摘要会与被授权的工作读者共享,因此 原始敏感日志不应出现在其中。 - 完成或停止。
execution.report以绑定版本的证据记录一个终止 结果。只有在活跃工作和未知结果都了结之后,认领才被释放、会话才被 结束。
评审与验收
工作就绪后,Agent 提交证据并通过 delivery.submit_and_request_review 或 review.open 请求评审。被授权 的、独立的人评审交付物,被授权的定稿遵循项目的验收策略。
把这几件事保持为独立的事实:实现、验证、GitHub 合并和 AWR 验收。合并 PR 不等于 AWR 验收该任务,你自己的第二个 Agent 也不算独立评审人。
交接与恢复
交接之所以有效,是因为会话和检查点存放在共享项目上,而不是某个人的 聊天记录里:
- 重连 MCP 不会结束一个持久的工作会话,也不会续期它的租约。
- 恢复状态和已注册的交付优先于旧的检查点指令,因此返回的 Agent 信任的 是实际发生的事情。
- 如果一次写入超时,Agent 会先检查原始命令的结果再精确重试;重放的 回执是历史事实,不是再次执行副作用的许可。
- 如果执行副作用未知(任务中途被中断),则需要检查和被授权的核对。 创建新会话并不能绕过这个要求。
要知道两个实际限制:AWR 无法唤醒空闲的 Agent(租约续期使用你宿主的 调度机制,与检查点无关),而阻塞或等待中的阶段只是一份报告——它不会 自行创建等待项或续期认领。
Inspector:可选的工作区视图
Inspector 是同一个项目的 Web 视图。通过网站登录或认领不是上述任何环节 的前提——Agent 始终是协调的界面。在以下场景使用 Inspector:
- 查看任务关系、所有权、进展和已记录的结果。
- 从 Connect Agent 复制客户端无关的 MCP 设置和项目说明,或复制 单个任务的简报(复制文本不会创建会话或认领)。
- 作为管理员,在 Members 中管理成员和项目级凭证。
- 查看 Activity,它把认证访问记录与已提交的开发历史分开。普通成员 只能看到自己被授权的活动;项目审计员可以按成员或任务过滤。审计记录 不包含凭证值、对话内容和任意的工具输入/输出,且请求元数据有保存 期限上限——它不是永久的合规档案。
管理员和评审权限由中央服务强制执行,与你使用哪个客户端无关,因此无论 有人通过 Agent、Inspector 还是两者一起工作,规则都同样成立。
