执行内核从「Planner 规划 typed DAG → 拓扑执行」重写为「Router 直入 probe-and-step 主循环 + Gemini 原生 function-calling」,loop 成为唯一执行路径。
亮点
- 新执行内核:Router 路由后直接进入 probe-and-step 主循环(
loop_driver),以 Gemini 原生 function-calling 驱动交错 tool-use(探测 → 执行一步 → 再探测),取代 plan-then-execute 的 typed DAG。 - 记忆重做:会话记忆从 recipe-based 改为 append-only transcript(Redis 热尾 + GCS 全量/溢出),支持跨轮回放与上下文压缩。
- 工具模型简化:工具产物改用纯 handle catalog(句柄目录)+ 结构化
node_specs(OpenAPI schema)+ Gemini function declarations。 - 可观测 + 流式:loop 路径服务端 Trace 落库 + 指标审计;端到端 SSE 流式,前端逐步渲染进度。
- 彻底 cutover:loop 设为默认并最终成为唯一路径,Planner / DAG 规划 / recipe /
VS_EXECUTOR开关全部移除,净减 410 行。
里程碑
M0 设计文档 → M1 工具 schema → M2 spike → M3 loop 驱动 → M4 transcript 存储 → M5 loop 记忆 → M6/M6b 可观测+SSE → M7 切默认 → M7b 拆 DAG(PR #14–#25)。详见仓库 CHANGELOG.md。
移除 / Breaking
删除 Planner(pipeline/planner.py)、DAG plan-then-execute 规划层、recipe 会话记忆、VS_EXECUTOR 开关、相关 conftest 与 recipe/planner/e2e-dag 测试。保留 dag_schema.Node 作为 loop 执行器的节点类型。
验证
146 tests 全过;真 Neon dag-vs-loop 对比:loop 约快 40%、约便宜 4×,正确性相当;真库 new → meta 端到端 smoke 通过。
部署
代码已在 main,但不自动部署(无 CI / 无 main→deploy trigger)。线上需手动 gcloud run deploy videosense --source .(见 docs/DEPLOY.md)才会切到 loop;redeploy 只推同一 Cloud Run 服务的新 revision,公网 URL 不变。
🤖 Generated with Claude Code