11 KiB
11 KiB
三国量化团队 · edict浅集成执行流程
📋 核心原则:完全复用edict原生机制
> 不自己创造,直接用edict已有的 dispatch_for_state + openclaw agent + kanban_update.py
🎯 第一步:三国将军与edict三省六部的映射
edict原有映射
_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,添加/修改如下内容:
{
"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天走势 - 目标部门:
户部(赵云)
- 任务ID:
- 提交!
方式B:直接修改 tasks_source.json(不推荐,最好用UI)
[
{
"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自动做的事:
- 任务状态
Pending→ 查找_STATE_AGENT_MAP['Pending']→'zhongshu' - 后台调用:
openclaw agent --agent zhongshu -m <通知消息>
诸葛亮(zhongshu Agent)收到消息:
📜 旨意已到中书省,请起草方案
任务ID: SG-20260401-001
旨意: 分析沪深300指数近30天走势
⚠️ 看板已有此任务记录,请勿重复创建。直接用 kanban_update.py state 更新状态。
请立即起草执行方案,走完完整三省流程(中书起草→门下审议→尚书派发→六部执行)。
诸葛亮的操作:
# 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自动做的事:
- 任务状态
Menxia→ 查找_STATE_AGENT_MAP['Menxia']→'menxia' - 后台调用:
openclaw agent --agent menxia -m <通知消息>
庞统(menxia Agent)收到消息:
📋 中书省方案提交审议
任务ID: SG-20260401-001
旨意: 分析沪深300指数近30天走势
⚠️ 看板已有此任务,请勿重复创建。
请审议中书省方案,给出准奏或封驳意见。
庞统的操作:
# 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自动做的事:
- 任务状态
Assigned→ 查找_STATE_AGENT_MAP['Assigned']→'shangshu' - 后台调用:
openclaw agent --agent shangshu -m <通知消息>
司马懿(shangshu Agent)收到消息:
📮 门下省已准奏,请派发执行
任务ID: SG-20260401-001
旨意: 分析沪深300指数近30天走势
建议派发部门: 户部
⚠️ 看板已有此任务,请勿重复创建。
请分析方案并派发给六部执行。
司马懿的操作:
# 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自动做的事:
- 任务状态
Doing+ 部门户部→ 查找_ORG_AGENT_MAP['户部']→'hubu' - 后台调用:
openclaw agent --agent hubu -m <通知消息>
赵云(hubu Agent)收到消息:
📌 请处理任务
任务ID: SG-20260401-001
旨意: 分析沪深300指数近30天走势
⚠️ 看板已有此任务,请勿重复创建。直接用 kanban_update.py 更新状态。
赵云的操作:
# 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自动做的事:
- 任务状态
Review→ 查找_STATE_AGENT_MAP['Review']→'shangshu' - 后台调用:
openclaw agent --agent shangshu -m <通知消息>
司马懿的操作:
# 审查通过!完成任务!
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补充规则
所有将军都要遵守的规则:
- 收到
openclaw agent通知后,第一时间更新看板 - 所有看板操作必须用
/Users/chufeng/edict-data/scripts/kanban_update.py - 不要直接读写
tasks_source.json - 关键步骤要用
progress命令上报进度
📋 第五步:kanban_update.py 完整命令参考
# 基本用法
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已有的一切! 🎉