fd145b5852
旧 compileFlow 把 DSL 图拍平成线性 init→tool…→prompt→model,连线/分支/ memory/aggregate/render 节点全被忽略——"画得出、跑不全"。改为纯 Go 图解释器 (graph.go),按真实拓扑与连线执行,每种节点 kind 有真实行为: - input 注入用户输入 - memory 按勾选注入画像/历史(无 memory 节点则沿用默认注入,不回归) - retriever kb 按 owner 作用域 → kb_search 累计参考资料 - tool 调 MCP 工具,产出进黑板,失败降级不阻断 - agent 据黑板拼消息 → pool 流式回流 token,累计成稿 - aggregate 按策略合并参考资料(拼接/去重合并/摘要) - render 把成稿经 report_render 渲染 docx - branch 求值条件 + active-set 剪枝下游(边序约定 [true,false]) - map 占位(fan-out 暂串行,路线图 Phase 2) - output 终端 全程逐节点点亮"运行·观测",token 流与记忆写回保持不变;报告 intent 走原专用 编排不动。compile.go 精简为只留 RunCtx/buildMessages/previewArgs。 实测(gateway+dispatcher+DeepSeek 实跑): - input→agent→output 真实流式答复 ✓ - branch 条件 2>1 走分支A、1>2 走分支B(下游真被剪枝)✓ - memory 节点按勾选注入;exec 事件按新节点名(agent:a 等)回流 ✓ - 桌面端 Studio 载示例→运行:4节点3连线校验通过,检索节点 mcp-go 不在时 优雅降级,agent 据空资料如实作答,输出/轨迹面板正常 ✓ 路线图 Phase 2:map 真并行 fan-out + aggregate reduce 接上 report 那套; 前端给 branch 的边打 true/false 标签,使条件分支完全精确(当前靠出边顺序约定)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>