lazyBoy/docs/workflow.json

91 lines
4.7 KiB
JSON
Raw Permalink Normal View History

2026-09-06 12:26:13 +00:00
{
"schema_version": 2,
"diagram_type": "workflow",
"meta": {
"title": "LazyBoy從一句話到完成任務",
"quality_profile": "showcase",
"views": [
{
"id": "task-flow",
"label": "任務主流程",
"focus": ["workspace", "api", "supervisor", "desktop", "result"],
"note": "沿著主路徑查看指令如何成為可觀察、可接管的桌面操作。"
},
{
"id": "memory-schedule",
"label": "記憶與排程",
"focus": ["api", "memory", "schedule"],
"note": "長期記憶與排程會在需要時補充情境並重新啟動任務。"
},
{
"id": "safety",
"label": "隔離與憑證",
"focus": ["vault", "supervisor", "desktop"],
"note": "登入資料經加密保存,桌面工作負載在獨立容器中執行。"
}
]
},
"lanes": [
{ "id": "flow", "label": "任務主流程" },
{ "id": "automation", "label": "持續自動化" },
{ "id": "data", "label": "資料與安全", "variant": "exception" }
],
"phases": [
{ "id": "intent", "label": "說明目標", "fromCol": 0, "toCol": 1 },
{ "id": "orchestrate", "label": "理解與編排", "fromCol": 2, "toCol": 3, "variant": "emphasis" },
{ "id": "operate", "label": "執行與回傳", "fromCol": 4, "toCol": 5, "variant": "dashed" }
],
"groups": [
{ "id": "agent_core", "label": "Rust Agent Runtime", "lane": "flow", "fromCol": 1, "toCol": 2, "variant": "emphasis" },
{ "id": "sandbox_boundary", "label": "Docker 隔離邊界", "lane": "flow", "fromCol": 2, "toCol": 3, "variant": "security" },
{ "id": "durable_context", "label": "排程、記憶與登入資料", "lane": "data", "fromCol": 1, "toCol": 3, "variant": "dashed" }
],
"mainPath": ["workspace", "api", "supervisor", "desktop", "result"],
"semanticChecks": {
"allowedRoots": ["workspace", "schedule", "vault"],
"allowedTerminals": ["result", "memory"],
"requiredPaths": [
{ "from": "workspace", "to": "result" },
{ "from": "schedule", "to": "desktop" },
{ "from": "vault", "to": "desktop" }
]
},
"nodes": [
{ "id": "workspace", "lane": "flow", "col": 0, "type": "frontend", "label": "React 工作空間", "sublabel": "對話・電腦・記憶", "tag": "zh-TW / EN", "width": 150 },
{ "id": "api", "lane": "flow", "col": 1, "type": "backend", "label": "API + Agent", "sublabel": "模型、工具與技能", "tag": "Rust / Axum", "width": 146 },
{ "id": "supervisor", "lane": "flow", "col": 2, "type": "security", "label": "Supervisor", "sublabel": "資源限制與生命週期", "width": 146 },
{ "id": "desktop", "lane": "flow", "col": 3, "type": "cloud", "label": "隔離電腦", "sublabel": "瀏覽器、檔案與輸入", "tag": "noVNC", "width": 146 },
{ "id": "result", "lane": "flow", "col": 4, "type": "frontend", "label": "即時結果", "sublabel": "畫面、訊息與狀態", "width": 142 },
{ "id": "schedule", "lane": "automation", "col": 1, "type": "messagebus", "label": "排程", "sublabel": "到點自動執行", "width": 130 },
{ "id": "memory", "lane": "data", "col": 1, "type": "database", "label": "記憶與事件", "sublabel": "PostgreSQL + pgvector", "width": 154 },
{ "id": "vault", "lane": "data", "col": 3, "type": "security", "label": "加密憑證庫", "sublabel": "網站登入資料", "width": 142 }
],
"edges": [
{ "id": "workspace-api", "from": "workspace", "to": "api", "label": "HTTP / WebSocket", "variant": "emphasis", "role": "main" },
{ "id": "api-supervisor", "from": "api", "to": "supervisor", "label": "受控工具呼叫", "variant": "security", "role": "main" },
{ "id": "supervisor-desktop", "from": "supervisor", "to": "desktop", "label": "啟動・暫停・恢復", "variant": "security", "role": "main" },
{ "id": "desktop-result", "from": "desktop", "to": "result", "label": "螢幕與事件", "variant": "emphasis", "role": "return" },
{ "id": "schedule-api", "from": "schedule", "to": "api", "label": "Cron 觸發", "variant": "dashed", "role": "async" },
{ "id": "api-memory", "from": "api", "to": "memory", "label": "檢索與寫入", "variant": "dashed", "role": "branch" },
{ "id": "vault-desktop", "from": "vault", "to": "desktop", "label": "僅匹配 HTTPS 網域", "variant": "security", "role": "branch" }
],
"cards": [
{
"dot": "emerald",
"title": "看得見,也接得回來",
"items": [
"即時觀看 Agent 桌面與目前步驟",
"需要時由使用者接管,再交還給 Agent"
]
},
{
"dot": "violet",
"title": "從一次任務到持續自動化",
"items": [
"示範操作可整理成可重用技能",
"排程、長期記憶與 MCP 延伸工作能力"
]
}
]
}