
# 三国量化团队 · edict浅集成执行流程

## 📋 **核心原则：完全复用edict原生机制**

&gt; **不自己创造，直接用edict已有的 `dispatch_for_state` + `openclaw agent` + `kanban_update.py`**

---

## 🎯 **第一步：三国将军与edict三省六部的映射**

### **edict原有映射**
```python
_STATE_AGENT_MAP = {
    'Taizi': 'taizi',        # 太子
    'Zhongshu': 'zhongshu',  # 中书省
    'Menxia': 'menxia',      # 门下省
    'Assigned': 'shangshu',  # 尚书省
    'Doing': None,           # 六部执行
    'Review': 'shangshu',    # 尚书省审查
    'Next': None,            # 待执行
    'Pending': 'zhongshu',   # 中书省待处理
}
_ORG_AGENT_MAP = {
    '礼部': 'libu', '户部': 'hubu', '兵部': 'bingbu',
    '刑部': 'xingbu', '工部': 'gongbu', '吏部': 'libu_hr',
    '中书省': 'zhongshu', '门下省': 'menxia', '尚书省': 'shangshu',
}
```

### **我们的三国映射（配置到 `agent_config.json`）**

**修改 `agent_config.json`，添加/修改如下内容：**

```json
{
  "agents": [
    {
      "id": "zhongshu",
      "name": "诸葛亮",
      "workspace": "workspace-zhugeliang",
      "skills": []
    },
    {
      "id": "menxia",
      "name": "庞统",
      "workspace": "workspace-pangtong",
      "skills": []
    },
    {
      "id": "shangshu",
      "name": "司马懿",
      "workspace": "workspace-simayi",
      "skills": []
    },
    {
      "id": "hubu",
      "name": "赵云",
      "workspace": "workspace-zhaoyun",
      "skills": []
    },
    {
      "id": "bingbu",
      "name": "张飞",
      "workspace": "workspace-zhangfei",
      "skills": []
    },
    {
      "id": "libu",
      "name": "关羽",
      "workspace": "workspace-guanyu",
      "skills": []
    },
    {
      "id": "gongbu",
      "name": "姜维",
      "workspace": "workspace-jiangwei",
      "skills": []
    }
  ]
}
```

**映射关系表：**

| edict角色 | 三国将军 | agent_id | 职责 |
|-----------|----------|----------|------|
| 中书省 | 诸葛亮 | zhongshu | 起草方案 |
| 门下省 | 庞统 | menxia | 审议方案 |
| 尚书省 | 司马懿 | shangshu | 派发任务/审查 |
| 户部 | 赵云 | hubu | 数据相关任务 |
| 兵部 | 张飞 | bingbu | 技术策略任务 |
| 礼部 | 关羽 | libu | 风控相关任务 |
| 工部 | 姜维 | gongbu | 基础设施任务 |

---

## 🏗️ **第二步：目录结构与数据流转**

### **数据文件位置（复用edict原生）**

```
/Users/chufeng/edict-data/          # 宿主机目录
├── tasks_source.json                # 任务源文件（用户/Agent修改）
├── live_status.json                 # 前端展示文件（自动生成）
├── sync_status.json                 # 同步状态文件
├── agent_config.json                # Agent配置文件
└── scripts/
    ├── refresh_live_data.py         # 数据刷新脚本
    └── kanban_update.py             # 看板更新工具
```

### **Docker容器内（挂载）**

```
/app/data/                           # 容器内数据目录（挂载宿主机）
├── tasks_source.json
├── live_status.json
├── sync_status.json
└── agent_config.json
/app/scripts/                        # 容器内脚本目录
├── refresh_live_data.py
└── kanban_update.py
```

---

## 📋 **第三步：完整任务流转示例**

### **场景：皇上让赵云做一个数据分析任务**

---

#### **📝 阶段1：创建任务（皇上操作）**

**方式A：通过edict看板UI创建**
- 打开 http://192.168.2.153:7891
- 点击"下旨"创建任务
- 填写：
  - 任务ID: `SG-20260401-001`
  - 标题: `分析沪深300指数近30天走势`
  - 目标部门: `户部` （赵云）
- 提交！

**方式B：直接修改 `tasks_source.json`（不推荐，最好用UI）**
```json
[
  {
    "id": "SG-20260401-001",
    "title": "分析沪深300指数近30天走势",
    "state": "Pending",
    "org": "户部",
    "targetDept": "户部",
    "createdAt": "2026-04-01T09:00:00Z",
    "updatedAt": "2026-04-01T09:00:00Z",
    "now": "📋 待中书省处理",
    "flow_log": []
  }
]
```

---

#### **📋 阶段2：中书省（诸葛亮）收到通知**

**edict自动做的事：**
1. 任务状态 `Pending` → 查找 `_STATE_AGENT_MAP['Pending']` → `'zhongshu'`
2. 后台调用：`openclaw agent --agent zhongshu -m &lt;通知消息&gt;`

**诸葛亮（zhongshu Agent）收到消息：**
```
📜 旨意已到中书省，请起草方案
任务ID: SG-20260401-001
旨意: 分析沪深300指数近30天走势
⚠️ 看板已有此任务记录，请勿重复创建。直接用 kanban_update.py state 更新状态。
请立即起草执行方案，走完完整三省流程（中书起草→门下审议→尚书派发→六部执行）。
```

**诸葛亮的操作：**
```bash
# 1. 更新任务状态为"中书省"
cd /Users/chufeng/edict-data
python3 scripts/kanban_update.py state SG-20260401-001 Zhongshu "中书省起草方案中"

# 2. 添加流转记录
python3 scripts/kanban_update.py flow SG-20260401-001 "皇上" "中书省" "📜 中书省开始起草方案"

# 3. 写方案，完成后流转到门下省
python3 scripts/kanban_update.py state SG-20260401-001 Menxia "方案已起草，送门下省审议"
python3 scripts/kanban_update.py flow SG-20260401-001 "中书省" "门下省" "📋 方案已提交审议"
```

---

#### **🔍 阶段3：门下省（庞统）收到通知**

**edict自动做的事：**
1. 任务状态 `Menxia` → 查找 `_STATE_AGENT_MAP['Menxia']` → `'menxia'`
2. 后台调用：`openclaw agent --agent menxia -m &lt;通知消息&gt;`

**庞统（menxia Agent）收到消息：**
```
📋 中书省方案提交审议
任务ID: SG-20260401-001
旨意: 分析沪深300指数近30天走势
⚠️ 看板已有此任务，请勿重复创建。
请审议中书省方案，给出准奏或封驳意见。
```

**庞统的操作：**
```bash
# 1. 审议方案，准奏！
cd /Users/chufeng/edict-data
python3 scripts/kanban_update.py state SG-20260401-001 Assigned "门下省已准奏，送尚书省派发"
python3 scripts/kanban_update.py flow SG-20260401-001 "门下省" "尚书省" "✅ 准奏！请尚书省派发"
```

---

#### **📮 阶段4：尚书省（司马懿）收到通知**

**edict自动做的事：**
1. 任务状态 `Assigned` → 查找 `_STATE_AGENT_MAP['Assigned']` → `'shangshu'`
2. 后台调用：`openclaw agent --agent shangshu -m &lt;通知消息&gt;`

**司马懿（shangshu Agent）收到消息：**
```
📮 门下省已准奏，请派发执行
任务ID: SG-20260401-001
旨意: 分析沪深300指数近30天走势
建议派发部门: 户部
⚠️ 看板已有此任务，请勿重复创建。
请分析方案并派发给六部执行。
```

**司马懿的操作：**
```bash
# 1. 派发给户部（赵云）
cd /Users/chufeng/edict-data
python3 scripts/kanban_update.py state SG-20260401-001 Doing "尚书省已派发，户部执行中"
python3 scripts/kanban_update.py flow SG-20260401-001 "尚书省" "户部" "📌 任务派发给户部（赵云）"
```

---

#### **🚀 阶段5：户部（赵云）收到通知**

**edict自动做的事：**
1. 任务状态 `Doing` + 部门 `户部` → 查找 `_ORG_AGENT_MAP['户部']` → `'hubu'`
2. 后台调用：`openclaw agent --agent hubu -m &lt;通知消息&gt;`

**赵云（hubu Agent）收到消息：**
```
📌 请处理任务
任务ID: SG-20260401-001
旨意: 分析沪深300指数近30天走势
⚠️ 看板已有此任务，请勿重复创建。直接用 kanban_update.py 更新状态。
```

**赵云的操作：**
```bash
# 1. 先更新看板，表示已接到任务
cd /Users/chufeng/edict-data
python3 scripts/kanban_update.py progress SG-20260401-001 "赵云接旨，开始收集数据" "数据收集🔄|分析处理|生成报告|提交成果"

# 2. 执行实际任务（做数据分析）
# ... 这里是赵云的实际工作代码 ...
# 比如：拉取数据、清洗、分析、生成报告等

# 3. 中期更新进度
python3 scripts/kanban_update.py progress SG-20260401-001 "数据收集完成，正在分析" "数据收集✅|分析处理🔄|生成报告|提交成果"

# 4. 完成任务！
python3 scripts/kanban_update.py progress SG-20260401-001 "分析完成，生成报告" "数据收集✅|分析处理✅|生成报告🔄|提交成果"

# 5. 提交成果给尚书省
python3 scripts/kanban_update.py state SG-20260401-001 Review "户部已完成，送尚书省审查"
python3 scripts/kanban_update.py flow SG-20260401-001 "户部" "尚书省" "✅ 任务完成，请审查"

# 6. 上报详细产出（可选）
python3 scripts/kanban_update.py todo SG-20260401-001 1 "数据分析报告" completed --detail "产出概要：
- 沪深300近30天涨幅：+2.3%
- 最高点：3,580点
- 最低点：3,420点
- 成交量：日均8,500亿
验证结果：通过"
```

---

#### **✅ 阶段6：尚书省（司马懿）审查**

**edict自动做的事：**
1. 任务状态 `Review` → 查找 `_STATE_AGENT_MAP['Review']` → `'shangshu'`
2. 后台调用：`openclaw agent --agent shangshu -m &lt;通知消息&gt;`

**司马懿的操作：**
```bash
# 审查通过！完成任务！
cd /Users/chufeng/edict-data
python3 scripts/kanban_update.py state SG-20260401-001 Done "任务完成！"
python3 scripts/kanban_update.py flow SG-20260401-001 "尚书省" "皇上" "🎉 任务完成！"
```

---

## 🛠️ **第四步：各将军的SOUL.md补充规则**

### **所有将军都要遵守的规则：**

1. **收到 `openclaw agent` 通知后，第一时间更新看板**
2. **所有看板操作必须用 `/Users/chufeng/edict-data/scripts/kanban_update.py`**
3. **不要直接读写 `tasks_source.json`**
4. **关键步骤要用 `progress` 命令上报进度**

---

## 📋 **第五步：kanban_update.py 完整命令参考**

```bash
# 基本用法
python3 scripts/kanban_update.py state &lt;任务ID&gt; &lt;新状态&gt; "&lt;说明&gt;"
python3 scripts/kanban_update.py flow &lt;任务ID&gt; "&lt;从哪里&gt;" "&lt;到哪里&gt;" "&lt;备注&gt;"
python3 scripts/kanban_update.py progress &lt;任务ID&gt; "&lt;当前进展&gt;" "&lt;步骤1|步骤2|步骤3&gt;"
python3 scripts/kanban_update.py todo &lt;任务ID&gt; &lt;todo_id&gt; "&lt;标题&gt;" &lt;状态&gt; --detail "&lt;详情&gt;"

# 状态列表（参考）
# Pending, Taizi, Zhongshu, Menxia, Assigned, Doing, Review, Done, Blocked, Cancelled

# 示例
cd /Users/chufeng/edict-data

# 1. 更新状态
python3 scripts/kanban_update.py state SG-20260401-001 Doing "开始执行任务"

# 2. 流转记录
python3 scripts/kanban_update.py flow SG-20260401-001 "中书省" "门下省" "方案提交审议"

# 3. 上报进度
python3 scripts/kanban_update.py progress SG-20260401-001 "正在收集数据" "收集🔄|分析|报告"

# 4. 上报TODO
python3 scripts/kanban_update.py todo SG-20260401-001 1 "数据分析" completed --detail "产出概要：..."
```

---

## 🎯 **总结：我们的浅集成方案**

| 方面 | 方案 |
|-----|------|
| **通知机制** | ✅ **完全复用** edict的 `dispatch_for_state` + `openclaw agent` |
| **任务更新** | ✅ **完全复用** edict的 `kanban_update.py` 工具 |
| **数据存储** | ✅ **完全复用** edict的 `tasks_source.json` + `live_status.json` |
| **webhook** | ❌ **不需要**，不需要自己创造 |
| **定期轮询** | ❌ **不需要**，不需要自己创造 |
| **Agent映射** | ✅ 配置到 `agent_config.json` 即可 |

**这就是最纯粹的浅集成：直接用edict已有的一切！** 🎉

