ExecutorGateway 架构说明
设计目标
HomeSense Studio 的 Workflow 不应该直接耦合某一个 CLI、某一个设备协议,或者某一个外部 Agent。
它更合理的结构是:
WorkflowNode只声明“我要调用什么能力”ExecutorGateway负责把这个能力分发到真实执行端CLI / Service / Workflow / Agent只是不同的执行端类型
这层设计同时借鉴了:
dify的节点工厂与 runtime 分层agentmesh的 executor / graph 执行思想claude-code-agents的 tool registry / agent dispatcher 风格
当前实现
当前系统已经具备:
ExecutorGatewaycli.invokeservice.invokeworkflow.runplan.runagent.dispatch占位
PlanLibrary- 会读取老项目的
paths.json - 把
watch_bilibili_demo这类成功路径导入成结构化 plan
- 会读取老项目的
executor_callWorkflow 节点- WorkflowRuntime 可以直接调用
ExecutorGateway - 这让 Studio 开始具备“Agent 中枢”的后端骨架
- WorkflowRuntime 可以直接调用
为什么这很关键
这层把系统从“工作流节点直接写 mi-cli / adb-cli 调用”升级成了:
text
Workflow Node
-> ExecutorGateway
-> CLI / Service / Workflow / External Agent所以以后接:
mi-cliadb-cliB站 CLIOpenClawCodexClaude Code
时,不需要每种能力都单独发明一套节点模型。
老项目 B站母路径
老项目里的 watch_bilibili_demo 现在会被:
- 导入
PlanLibrary - 编译进
compiled_knowledge_items - 通过
/api/executor-gateway/plans/:id提供结构化 preview
这条路径当前的主线执行器已经切到:
mi-cli:米家场景、小爱音箱、红外控制adb-cli:Android TV 连接、包名检查、应用启动
但这不是坏事。它恰好说明:
- 新项目已经承接了老项目的成功经验
- 计划与执行器已经分离
- 下一步只需要补真实设备验证,不需要重写计划表达
当前状态
一句话概括:
现在 HomeSense 已经有了“执行器中枢 + 计划库 + 工作流调用中枢”的骨架。
后面补充真实 adb-cli / mi-cli / B站 CLI 时,优先是在执行器层扩容,而不是改 WorkflowRuntime 主干。hami-cli 仅保留为历史参考,不再作为当前设备主线。