199 lines
6.3 KiB
Markdown
199 lines
6.3 KiB
Markdown
# edict 适配 sanguo_quant 多agent组织架构方案
|
||
|
||
## 当前现状对比
|
||
|
||
### 我们 sanguo_quant 现有架构
|
||
|
||
```
|
||
你 (丞相/总军师) → 诸葛亮 (总军师) → 拆解任务 → 分配给 庞统/司马懿/张飞/关羽/赵云/姜维 → 各将军执行 → 回报丞相 → 汇总交付
|
||
```
|
||
|
||
| 角色 | 职责 | 对应三省六部 |
|
||
|------|------|--------------|
|
||
| 你 | 皇帝/最高决策者 | 皇上 |
|
||
| 诸葛亮 | 总军师 | 太子 + 中书省 |
|
||
| 庞统 | 副军师/策略设计 | 中书省 + 协助规划 |
|
||
| 司马懿 | 质量总监 | 门下省 (审核) |
|
||
| 各将军 (张飞/关羽/赵云/姜维) | 六部 (执行) | 六部 |
|
||
| 姜维 | 基础设施/运维 | 工部 |
|
||
|
||
### edict 原有架构
|
||
|
||
```
|
||
皇上 → 太子 (分拣) → 中书省 (规划) → 门下省 (审核) → 尚书省 (派发) → 六部 (执行) → 回奏
|
||
```
|
||
|
||
---
|
||
|
||
## 适配方案:保持我们现有接口不变,集成edict仪表盘
|
||
|
||
### 目标
|
||
- ✅ **不改变我们现有的组织分工和工作流**
|
||
- ✅ **获得edict的实时仪表盘**好处:
|
||
- 可视化任务进度看板
|
||
- 完整审计追踪(每一步谁做了什么都记录)
|
||
- 状态流转清晰
|
||
- 可以随时干预(叫停/恢复)
|
||
|
||
### 架构设计
|
||
|
||
```
|
||
sanguo_quant edict
|
||
─────────────────┐ ┌──────────────────
|
||
你的需求 │ │
|
||
↓ │ │
|
||
诸葛亮 │ │
|
||
↓ 拆解分配 │ │
|
||
创建任务 ┼───────▶│ edict 记录任务状态
|
||
↓ │ │
|
||
各将军执行 │ │
|
||
↓ 更新进度 ┼───────▶│ 更新状态流转
|
||
↓ │ │
|
||
司马懿审核 │ │
|
||
↓ 更新 ┼───────▶│ 更新审核状态
|
||
↓ │ │
|
||
交付汇总 ┼───────▶│ 标记完成
|
||
↓ │ │
|
||
你 │◀───────┤ 通过看板查看进度
|
||
```
|
||
|
||
### 数据映射
|
||
|
||
| sanguo_quant 状态 | edict 状态 | 说明 |
|
||
|------------------|-----------|------|
|
||
| assigned | Assigned/Doing | 已分配给将军执行 |
|
||
| in_progress | Doing | 执行中 |
|
||
| review | Review | 司马懿审核中 |
|
||
| approved | Done | 审核通过,完成 |
|
||
| rejected | Blocked | 审核驳回,阻塞 |
|
||
| cancelled | Cancelled | 已取消 |
|
||
|
||
| sanguo_quant 角色 | edict 部门 |
|
||
|------------------|------------|
|
||
| 诸葛亮 | 中书省 |
|
||
| 庞统 | 中书省 |
|
||
| 司马懿 | 门下省 |
|
||
| 张飞 | 工部 |
|
||
| 关羽 | 兵部 |
|
||
| 赵云 | 户部 |
|
||
| 姜维 | 工部 |
|
||
|
||
---
|
||
|
||
## 改造方案:轻量化适配,不侵入原有代码
|
||
|
||
### 方案A:独立服务 + API同步(推荐,最简改造)
|
||
|
||
**原理**:edict容器独立运行,我们通过HTTP API同步任务状态到edict
|
||
|
||
步骤:
|
||
1. edict容器保持现在这样运行(端口7891)
|
||
2. 在我们现有任务管理脚本中,添加几行HTTP API调用:
|
||
- 创建任务 → `POST /api/create`
|
||
- 更新状态 → `POST /api/update`
|
||
3. 我们原有工作流完全不变,只是多了一步同步状态到edict
|
||
4. 你可以随时打开 `http://your-host:7891` 查看可视化看板
|
||
|
||
**优点**:
|
||
- ✅ 完全不改动我们现有代码架构
|
||
- ✅ 零侵入,只是添加API调用
|
||
- ✅ 风险极低,即使edict挂了不影响我们工作
|
||
- ✅ 可以随时停用
|
||
|
||
### 需要做的改造
|
||
|
||
1. **在edict中添加我们的角色映射**(不改核心,只加配置)
|
||
- 修改 `data/departments.json` 映射我们的角色
|
||
- 修改 `data/states.json` 匹配我们的状态流转
|
||
|
||
2. **在我们的任务创建脚本中添加同步**
|
||
- `management/workflow/scripts/create_task*.sh` 添加几行curl调用
|
||
|
||
3. **在我们的任务状态更新脚本中添加同步**
|
||
- `assign_task*.sh` 等脚本添加状态更新调用
|
||
|
||
### 方案B:深度集成,让edict接管流转控制(不推荐,改变原有接口)
|
||
|
||
如果让edict原生接管整个流转,会改变我们现有的分工接口,不符合你"不想改变组织接口"的要求,所以不推荐。
|
||
|
||
---
|
||
|
||
## 具体实施步骤(方案A)
|
||
|
||
### 第一步:在edict数据目录添加我们的配置
|
||
|
||
```
|
||
# 进入容器
|
||
docker exec -it edict-new bash
|
||
|
||
# 修改部门配置
|
||
cp /app/data/departments.json /app/data/departments.json.backup
|
||
# 替换为sanguo_quant的部门配置
|
||
```
|
||
|
||
### 第二步:添加API调用封装
|
||
|
||
在我们的项目中添加一个小脚本:
|
||
`jiangwei-platform/deploy/edict/sync-status.sh`
|
||
|
||
```bash
|
||
#!/bin/bash
|
||
# 同步任务状态到edict看板
|
||
|
||
EDICT_URL="http://localhost:7891"
|
||
|
||
# 创建任务
|
||
# Usage: create-edict-task <task-id> <title> <assignee>
|
||
create-edict-task() { ... }
|
||
|
||
# 更新任务状态
|
||
# Usage: update-edict-status <task-id> <state>
|
||
update-edict-status() { ... }
|
||
```
|
||
|
||
### 第三步:改造现有脚本
|
||
|
||
在现有这些脚本中添加一行调用:
|
||
- `create_task*.sh` → 创建任务后调用 create-edict-task
|
||
- `assign_task*.sh` → 分配后更新状态 to Assigned
|
||
- 任务完成后 → 更新状态 to Review
|
||
- 司马懿审核通过 → 更新状态 to Done
|
||
- 司马懿驳回 → 更新状态 to Blocked
|
||
|
||
### 第四步:测试验证
|
||
|
||
1. 创建一个测试任务
|
||
2. 检查edict看板是否正确显示
|
||
3. 检查状态流转是否正确
|
||
|
||
---
|
||
|
||
## 优势总结
|
||
|
||
| 要点 | 说明 |
|
||
|------|------|
|
||
| **不改变原有组织接口** | 我们的分工、工作流、角色职责完全不变 |
|
||
| **零侵入改造** | 只添加API调用,不修改原有逻辑 |
|
||
| **获得可视化收益** | 有了实时看板,任务进度一目了然 |
|
||
| **完整审计追踪** | 所有任务状态变化都记录在edict |
|
||
| **回滚方便** | 如果不用了,直接停掉docker容器就行,不影响我们系统 |
|
||
| **风险极低** | 即使edict出问题,我们原有工作流不受影响 |
|
||
|
||
---
|
||
|
||
## 产出物结构(在我们项目中)
|
||
|
||
```
|
||
sanguo_vnpy/
|
||
└── jiangwei-platform/
|
||
└── deploy/
|
||
└── edict/
|
||
├── README.md # 部署使用说明
|
||
├── sync-status.sh # API封装脚本
|
||
└── sanguo-departments.json # 我们的部门配置
|
||
```
|
||
|
||
---
|
||
|
||
*结论:方案A推荐采用,最快半天就能完成改造,完全满足你的需求"不改变组织接口,获得edict仪表盘能力"。*
|