/root/.openclaw/workspace/tasks/task-kizuna-fix-001/task.md/root/.openclaw/workspace/tasks/task-kizuna-fix-001/session.md修复 Kizuna Phase 1 的以下核心问题,使其能完成端到端任务流转:
P10:Hub 缺少任务分发机制——start_task 只标记 pending,不通知 Node Agent
P11:Node Agent 调用 openclaw agent 缺少 --session-id 参数,导致命令挂起
P12(设计缺失):节点注册时 agents 字段为 List[str],应改为 Dict[str, str](agent名 → session key),注册示例:
{
"node_id": "aichan",
"url": "http://127.0.0.1:8892",
"agents": {
"coder": "agent:coder:main",
"reviewer": "agent:reviewer:main"
}
}
Hub 分发时将 session key 带到 Node Agent 请求中。
P13(设计违规):kizuna-ctl CLI 目前无法让 Coordinator 注入任务内容,Coordinator 只能通过 CLI 操作,不能直接写 /srv/kizuna/tasks/。需在 Hub + CLI 实现 create-task 接口,接收 task_id + title + content(Markdown),由 Kizuna 写入 task.md。
coder → reviewer → 爱衣质检
agent:coder:main)目标代码库:/srv/kizuna/(已 clone 到 aichan,本机也有 clone 路径待确认)
⚠️ 作业须知:
- SSH 到 aichan:ssh -p 31415 aichan@15.235.184.76,操作用 sudo su - root -c '...'
- Kizuna 源码在 aichan:/srv/kizuna/
- 如需在本机也操作,检查是否有本地 clone;否则直接 SSH 改
任务:
main.py 的 RegisterNodeRequestagents: List[str] → agents: Dict[str, str](兼容旧格式:若收到 List 则按 agent:name:main 自动推断)nodes.json 存储完整 mapping
修复 P10:在 Hub main.py 中实现 dispatch_subtask(task_id, subtask_id, node_id, session_key)
start_task 标记 pending 后立即调用分发submit_subtask(某 subtask 完成后触发下一个)时也调用分发nodes.json 找到 node URL → HTTP POST /execute(Node Agent 接口)请求体含:action, task_id, subtask_id, agent, session_key, message, work_dir
修复 P11:修改 kizuna-node/index.js 的 callOpenClawAgent
sessionKey(从 Hub 请求中获取)openclaw agent --session-id <sessionKey> --message <msg> --json注意:--json 输出为 streaming JSON,需正确捕获
修复 P13:在 Hub 实现 POST /tasks/create-content 接口
task_id, title, content(Markdown 字符串)/srv/kizuna/tasks/<task_id>/ 创建目录并写入 task.mdkizuna-ctl 添加 create-task-content <task_id> <title> <file> 子命令(从文件读 content)产出要求:
- 修改后在 aichan 原地重启 Hub(kill + nohup 重启)
- 用 curl 验证:重新注册节点(新格式)→ 创建测试任务 → start → 观察 Node Agent 是否收到请求
- 验证结果写入 /root/.openclaw/workspace/tasks/task-kizuna-fix-001/coder-report.md
- session.md 追加执行日志
开始时:
/root/.openclaw/workspace/scripts/log-to-channel.sh coder receive "Kizuna核心修复" task-kizuna-fix-001
完成后:
/root/.openclaw/workspace/scripts/log-to-channel.sh coder handoff "Kizuna核心修复" reviewer task-kizuna-fix-001
然后 sessions_send 通知 reviewer(agent:reviewer:main,timeoutSeconds=0):
task_id=task-kizuna-fix-001
task=/root/.openclaw/workspace/tasks/task-kizuna-fix-001/task.md
agent:reviewer:main)任务:
coder-report.md 和修改后的源码openclaw agent --json 输出是 streaming JSON(每行一个事件),是否正确处理?bash
# 检查 Hub 日志
sudo cat /tmp/kizuna-hub.log | tail -30
# 检查 Node Agent 日志
sudo cat /tmp/kizuna-node.log | tail -30/root/.openclaw/workspace/tasks/task-kizuna-fix-001/review.md开始时:
/root/.openclaw/workspace/scripts/log-to-channel.sh reviewer receive "Kizuna核心修复" task-kizuna-fix-001
完成后:
/root/.openclaw/workspace/scripts/log-to-channel.sh reviewer handoff "Kizuna核心修复" main task-kizuna-fix-001
然后 sessions_send 通知爱衣(agent:main:main,timeoutSeconds=0):
task_id=task-kizuna-fix-001
task=/root/.openclaw/workspace/tasks/task-kizuna-fix-001/task.md
du -sb /root/.openclaw/workspace/tasks/task-kizuna-fix-001/
log-to-channel.sh main done "Kizuna核心修复" task-kizuna-fix-001