# 三国量化团队 · edict浅集成执行流程 ## 📋 **核心原则:完全复用edict原生机制** > **不自己创造,直接用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 <通知消息>` **诸葛亮(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 <通知消息>` **庞统(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 <通知消息>` **司马懿(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 <通知消息>` **赵云(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 <通知消息>` **司马懿的操作:** ```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 <任务ID> <新状态> "<说明>" python3 scripts/kanban_update.py flow <任务ID> "<从哪里>" "<到哪里>" "<备注>" python3 scripts/kanban_update.py progress <任务ID> "<当前进展>" "<步骤1|步骤2|步骤3>" python3 scripts/kanban_update.py todo <任务ID> <todo_id> "<标题>" <状态> --detail "<详情>" # 状态列表(参考) # 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已有的一切!** 🎉