262 lines
5.4 KiB
Markdown
262 lines
5.4 KiB
Markdown
# 设计说明
|
||
|
||
更新时间:2026-03-14
|
||
|
||
## 1. 当前产品定义
|
||
|
||
这不是“全局固定团队系统”,而是:
|
||
|
||
- 项目级 `lead`
|
||
- 项目级团队
|
||
- `lead` 对话驱动工作台
|
||
|
||
用户默认只和当前项目的 `lead` 聊。
|
||
团队由 `lead` 先提出草案,用户确认后才创建正式成员。
|
||
团队内正式成员之间允许直接互相发消息,不限制成“执行成员只能找 reviewer”。
|
||
|
||
## 2. 当前已经成立的主工作流
|
||
|
||
当前仓库已经不只是 MVP 骨架,而是已经有一条真实可跑的主链路:
|
||
|
||
1. 创建项目
|
||
2. 生成项目专属团队草案
|
||
3. 确认团队
|
||
4. lead 派发任务
|
||
5. 成员执行
|
||
6. reviewer 接单审查
|
||
7. 打回 / 通过
|
||
8. 成员返工后复审
|
||
9. 结果回到 lead 汇总
|
||
|
||
其中 lead 回复、团队草案生成、成员线程回复、任务启动回执、reviewer 接单、reviewer 审查结论、成员复审回执,已经接入真实 Codex CLI。
|
||
|
||
## 3. 当前核心数据结构
|
||
|
||
服务端类型定义在:
|
||
|
||
- `D:\AI Code\Agents Team\server\src\types.ts`
|
||
|
||
当前比较关键的对象有:
|
||
|
||
- `Project`
|
||
- `LeadProfile`
|
||
- `TeamProposal`
|
||
- `TeamState`
|
||
- `TeamChangeState`
|
||
- `ProjectMember`
|
||
- `RuntimeSession`
|
||
- `MailboxMessage`
|
||
- `MailboxDigest`
|
||
- `SharedMemoryEntry`
|
||
- `TaskItem`
|
||
- `ReviewItem`
|
||
- `TaskActivityEntry`
|
||
|
||
### 3.1 阶段状态
|
||
|
||
项目阶段已经固定为:
|
||
|
||
- `lead_only`
|
||
- `discovery_pending`
|
||
- `team_drafting`
|
||
- `team_pending_confirmation`
|
||
- `team_active`
|
||
- `executing`
|
||
- `reviewing`
|
||
- `blocked`
|
||
- `done`
|
||
|
||
### 3.2 团队变更确认
|
||
|
||
当正式团队已经存在时,再改团队草案,不会直接覆盖正式团队。
|
||
|
||
当前会先生成:
|
||
|
||
- 新增项
|
||
- 移出项
|
||
- 调整项
|
||
|
||
然后再单独确认团队变更。
|
||
|
||
### 3.3 运行态 / 会话身份
|
||
|
||
每个正式角色都会保存:
|
||
|
||
- 当前模型
|
||
- 模型来源
|
||
- 最近 thread id
|
||
- 恢复命令
|
||
- 接管命令
|
||
- 最近输出
|
||
- 错误状态
|
||
- 身份状态
|
||
|
||
身份状态当前分为:
|
||
|
||
- `fresh`
|
||
- `resume_ready`
|
||
- `needs_rebuild`
|
||
|
||
## 4. Codex CLI 接法
|
||
|
||
当前策略是“薄适配层”,不修改 Codex CLI 本体。
|
||
|
||
核心文件:
|
||
|
||
- `D:\AI Code\Agents Team\server\src\runtime.ts`
|
||
- `D:\AI Code\Agents Team\server\src\codexConfig.ts`
|
||
|
||
### 4.1 已经做成的事情
|
||
|
||
- 真实调用 Codex CLI 生成 lead / 成员 / reviewer 关键回复
|
||
- 角色 thread 建立后,后续优先走 `codex exec resume`
|
||
- 原生接管口使用 `codex resume ...`
|
||
- Web 端可以对单个角色覆盖模型
|
||
- 模型列表优先通过 Codex app-server 的 `model/list` 动态获取
|
||
|
||
### 4.2 当前真实模型能力
|
||
|
||
Web 端现在看到的可用模型,不再主要靠 `config.toml` 猜,而是:
|
||
|
||
1. 优先调用 Codex app-server `model/list`
|
||
2. 失败时退回配置文件兜底
|
||
|
||
所以页面里已经能看到:
|
||
|
||
- 模型显示名
|
||
- 模型说明
|
||
- 默认推理档位
|
||
- 支持的推理档位
|
||
- 是否支持 personality
|
||
- 是否是当前默认模型
|
||
|
||
## 5. 存储策略
|
||
|
||
### 5.1 全局索引
|
||
|
||
全局只保留项目索引:
|
||
|
||
- `D:\AI Code\Agents Team\data\db.json`
|
||
|
||
这个文件现在只保存:
|
||
|
||
- `id`
|
||
- `name`
|
||
- `path`
|
||
- `description`
|
||
- `createdAt`
|
||
- `updatedAt`
|
||
|
||
### 5.2 项目级状态
|
||
|
||
每个项目自己的真实状态保存在:
|
||
|
||
- `<项目目录>\.agents-team\workbench\`
|
||
|
||
当前已经落地的文件:
|
||
|
||
- `project-state.json`
|
||
- `mailbox.json`
|
||
- `shared-memory.json`
|
||
- `shared-memory.md`
|
||
- `task-activity.json`
|
||
|
||
这样项目的协作状态会跟着项目走,不会继续把所有项目状态堆在全局一个 JSON 里。
|
||
|
||
## 6. 当前页面结构
|
||
|
||
前端主页面在:
|
||
|
||
- `D:\AI Code\Agents Team\web\src\pages\HomePage.tsx`
|
||
- `D:\AI Code\Agents Team\web\src\pages\ProjectPage.tsx`
|
||
|
||
### 6.1 项目页
|
||
|
||
项目页当前已经是:
|
||
|
||
- 左侧像素办公室 / 成员状态区
|
||
- 中间大面积 lead / 成员对话区
|
||
- 右侧收纳区
|
||
|
||
收纳区当前已经包含:
|
||
|
||
- 团队草案
|
||
- 团队变更确认清单
|
||
- 任务推进
|
||
- Mailbox
|
||
- 共享记忆
|
||
- 项目摸底
|
||
- 运行态 / 接管口
|
||
- 人工接管
|
||
- Git 状态
|
||
|
||
### 6.2 Mailbox 展示
|
||
|
||
Mailbox 现在不是简单平铺消息。
|
||
|
||
当前已经有:
|
||
|
||
- 服务端摘要分组
|
||
- lead 汇总视角
|
||
- 按任务 / 成员往来折叠
|
||
- 参与人信息
|
||
- 建议下一步
|
||
- 高亮重点
|
||
|
||
### 6.3 运行态展示
|
||
|
||
运行态面板当前已经支持:
|
||
|
||
- 当前模型切换
|
||
- 切回继承默认模型
|
||
- 同步恢复入口
|
||
- 重建角色会话
|
||
- 打开原生接管口
|
||
- 复制恢复命令
|
||
- 复制接管命令
|
||
|
||
## 7. 当前 API
|
||
|
||
后端入口:
|
||
|
||
- `D:\AI Code\Agents Team\server\src\index.ts`
|
||
|
||
当前主要 API 已包括:
|
||
|
||
- 项目列表 / 项目详情
|
||
- 创建项目
|
||
- 保存团队草案
|
||
- 确认团队
|
||
- 确认团队变更
|
||
- 发起 / 确认项目摸底
|
||
- lead / 成员消息发送
|
||
- 创建任务
|
||
- 送审
|
||
- 复审
|
||
- reviewer 审查
|
||
- mailbox 发送 / 状态更新
|
||
- 写入共享记忆
|
||
- 会话模型切换
|
||
- 会话恢复
|
||
- 会话重建
|
||
- 打开原生接管口
|
||
- 人工接管记录
|
||
|
||
## 8. 现在还没做完的部分
|
||
|
||
还有这些尾项没有完全收口:
|
||
|
||
- 固定角色虽然已经支持按 thread 恢复,但还没做到“所有长期身份都只靠原生会话驱动”
|
||
- 页内还没有嵌入原生终端
|
||
- mailbox 摘要卡还能继续增强
|
||
- `docs/` 里其它历史文档还没完全同步
|
||
|
||
## 9. 接下来最合理的方向
|
||
|
||
按当前进度,后面最值得继续推的是:
|
||
|
||
1. 继续收口角色长期身份,让更多长期动作都复用同一原生会话
|
||
2. 继续加强 mailbox 的长对话摘要和冲突压缩
|
||
3. 评估是否要做页内原生终端 / 更顺手的接管体验
|
||
4. 同步剩余设计 / 交接文档
|