跳转至

第 16 章 演进路线与改进方向

本章学习目标 - 系统性掌握 TTD 当前在各维度的可改进之处 - 对每个改进点理解:现状 → 问题根因 → 主流最佳实践 → 具体改进方案 → 优先级 - 关联 AI Agent 前沿方向(Self-Discover、多 Agent 辩论、自治记忆、Agent 评测基准) - 找到可以动手贡献的改进入口

前置知识:建议先读完第 4-8 章(AI Agent 内核),本章是其批判性总结 关联代码:全项目


16.1 本章定位

前面每一章的"方案选型对比"小节都指出了当前实现的可改进之处。本章把这些改进点汇总、分级、排序,给出系统性的演进路线。这是为后续开发者准备的"贡献地图"——不是缺陷清单,而是工程演进的机会。

每个改进项按以下结构呈现:现状 → 问题根因 → 主流最佳实践 → 具体改进方案 → 优先级

优先级定义:

优先级 含义 预期收益
P0 高价值 + 低实施成本 立即改进核心质量
P1 高价值 + 中实施成本 显著提升系统能力
P2 战略性 + 高实施成本 长期演进方向

16.2 编排维度

16.2.1 Supervisor 回访机制 P0

  • 现状:Supervisor 只在入口出现一次,无法在检索失败、SQL 生成困难等关键点介入(第 4 章)。
  • 根因:ADR-3 过度追求轻量,牺牲了全局上下文感知。
  • 最佳实践:LangGraph 支持动态子图与中断点;多 Agent 系统常设"监督 Agent"在关键决策点评估。
  • 改进方案:在 data_retrieval 和 sql_generation 后增加状态评估点,由轻量监督逻辑决定是否调整路径(换路由、要求澄清、降级)。
  • 关联前沿:Self-Discover(Agent 自主决定推理路径)。

16.2.2 路由效果反馈环 P1

  • 现状:7 条路由完全静态,无法从历史查询中学习新模式(ADR-4)。
  • 根因:显式路由为安全选择确定性,但放弃了自适应。
  • 最佳实践:保留确定性默认 + 数据驱动改进(记录失败率,提示维护者扩展路由)。
  • 改进方案:增加路由效果反馈环,记录每条路由的失败率与满意度,当某意图在某路由频繁失败时提示新增路由。

16.2.3 AgenticBIState 收敛 P1

  • 现状:~50 个字段的"上帝对象"反模式,字段间隐含依赖难追踪。
  • 改进方案:用子状态分组(input/retrieval/generation/control)或引入 dataclass 收敛,强制声明字段依赖。

16.2.4 HITL 中断点 P0

  • 现状:SQL 执行前无"高危查询人工确认"中断点,只靠 EXPLAIN 预估拦截。
  • 最佳实践:LangGraph 原生支持 interrupt。
  • 改进方案:对 EXPLAIN 成本超阈值的查询加 interrupt,让用户确认后再执行。

16.3 RAG 维度

16.3.1 查询改写与多查询生成 P0

  • 现状:直接用原问题 embedding 检索,无 query rewriting 或 multi-query(第 5 章)。
  • 根因:复用 QU 输出是巧妙优化,但牺牲了检索前的查询增强。
  • 最佳实践:RAG-Fusion(多查询并行检索 + 倒数排名融合)、query decomposer。
  • 改进方案:引入 query decomposer 生成多个子查询并行检索,再合并去重。复杂问题(如"对比华东和华北 GMV 趋势")召回率显著提升。

16.3.2 Cross-encoder Reranker P1

  • 现状:Reranker 用手工规则(术语绑定 + QU 信号),非 cross-encoder 模型。
  • 最佳实践:BGE-reranker / Cohere Rerank 等 cross-encoder 精度更高。
  • 改进方案:代码已预留 get_reranker_config,在精度要求高的场景启用 Admin 配置的 Reranker 模型。

16.3.3 检索评估常态化(Self-RAG) P1

  • 现状:retrieval_evaluator 只在 deep_analysis 启用,不自动触发重新检索。
  • 最佳实践:Self-RAG / Corrective-RAG 常态化自评估。
  • 改进方案:每次检索后评估,低分自动触发 corrective_retrieval,而非只在 guardrails 失败后。

16.3.4 向量引擎可插拔 P2

  • 现状:pgvector 在大规模下性能受限。
  • 改进方案:抽象 VectorStore 接口,生产态可选 Qdrant/Milvus;图引擎可选 Neo4j。保持 PG Supernode 为开发态一体化方案。

16.4 SQL 生成维度

16.4.1 护栏升级为 AST 结构化校验 P0

  • 现状:Layer 2d 术语绑定用正则匹配,脆弱(第 6 章)。
  • 改进方案:升级为基于 sqlglot AST 的结构化校验——解析 SQL 为语法树后,在树上做列引用与术语绑定检查,准确处理复杂 SQL 结构。

16.4.2 结果校验对齐 P1

  • 现状:护栏校验 SQL 语法与成本,但不校验"结果是否真的回答了用户问题"。
  • 改进方案:引入结果校验——用 LLM 对比"用户问题"与"SQL 结果摘要",低分触发重试。

16.4.3 语义规划器从 Advisory 到默认路径 P2

  • 现状:规划器产出建议,LLM 可能忽略。
  • 改进方案:与 Rollout 路线图一致,Phase 4 让规划器成为默认路径,LLM SQL 仅用于 fallback/repair。短期增加"建议采纳率"指标量化效果。

16.4.4 执行沙箱 P1

  • 现状:高危查询只靠 EXPLAIN 拦截,无沙箱试执行。
  • 改进方案:对超阈值查询支持沙箱试执行(限定行数/超时),确认无害后再正式执行。

16.5 记忆维度

16.5.1 隐式信号挖掘 P1

  • 现状:记忆只在明确信号(成功/反馈/澄清)时写入,遗漏隐式偏好(第 7 章)。
  • 最佳实践:Generative Agents 的反思机制——从交互模式提取隐式偏好。
  • 改进方案:从行为信号(连续选择、停留时长)挖掘隐式偏好。

16.5.2 记忆冲突消解 P1

  • 现状:新记忆与旧记忆冲突时无自动消解,可能矛盾共存。
  • 改进方案:写入时检查同类记忆,新记忆覆盖或合并旧记忆。

16.5.3 动态 Few-Shot 自动晋升 P1

  • 现状:所有自学习条目需人工审批,规模化后是瓶颈。
  • 改进方案:高置信度(sim ≥ 0.98 + 多次成功)条目自动 approved,仅边缘案例人工审核。

16.5.4 向自治记忆演进 P2

  • 现状:记忆形成是触发式(非自治)。
  • 最佳实践:MemGPT/Letta 自治记忆——LLM 在可控范围内自主决定读写。
  • 改进方案:长期向自治记忆靠拢,配合审批门控保证质量。

16.6 工具维度

16.6.1 统一工具接口 P1

  • 现状:@tool、节点即工具、ML 注册表三种范式并存,无统一抽象(第 8 章)。
  • 最佳实践:MCP 协议标准化工具暴露。
  • 改进方案:统一工具接口(参考 MCP),让所有工具可同时作为 @tool 和节点暴露。

16.6.2 沙箱安全升级 P0

  • 现状:代码沙箱用 Python exec + 白名单(L1 隔离),非真正隔离,有逃逸风险。
  • 最佳实践:E2B/Modal 托管沙箱、容器/WASM 隔离。
  • 改进方案:迁移到进程/容器隔离或托管沙箱,至少用 subprocess + 资源限制(L2)。

16.6.3 GraphRAG 护栏 P1

  • 现状:NL2Cypher 直接执行,无语法校验或安全护栏(不同于 SQL 有五层)。
  • 改进方案:为 Cypher 增加护栏(语法校验 + 只读校验 + 路径深度限制)。

16.7 治理维度

16.7.1 资产冷启动自动化 P0

  • 现状:9 类资产需手写 YAML,冷启动成本高(第 9 章)。
  • 改进方案:CLI 脚手架 + LLM 辅助补全(从 schema 自动生成候选资产 + 业务描述,人工只校验)。

16.7.2 在线编辑 P1

  • 现状:所有资产必须 Git + PR,对非技术 Data Steward 不友好。
  • 改进方案:Admin Panel 增加资产在线编辑 + 提交 PR 能力。

16.7.3 RLS 硬隔离 P0

  • 现状:治理叠加层是软治理(上下文注入),无数据库层强制(第 14 章)。
  • 改进方案:叠加 PostgreSQL Row-Level Security 做硬隔离。

16.7.4 事件驱动同步 P1

  • 现状:Backend 轮询 S3 manifest hash,有延迟。
  • 改进方案:S3 事件通知 → webhook → Backend 立即同步,将一致性窗口压缩到秒级。

16.8 评估维度

16.8.1 公开基准回归 P0

  • 现状:只在 H&M 单一数据集验证,无跨 schema 回归基准(第 15 章)。
  • 改进方案:引入 Spider/BIRD 公开基准 + 自建业务基准,CI 中跑回归。

16.8.2 反馈聚类驱动优化 P1

  • 现状:反馈经 Admin 审核后写入记忆/资产,但无自动化把高频反馈转化为系统改进。
  • 改进方案:建立反馈分析看板,聚类高频问题,自动生成改进建议。

16.8.3 评估常态化 P1

  • 现状:三级评估器只在 deep_analysis 启用,主路径无评估。
  • 改进方案:轻量评估常态化(如只跑 SQL 评估器),低分触发 Self-RAG 式自纠错。

16.9 运维维度

16.9.1 RBAC 升级 P1

  • 现状:仅 admin/user 两级角色,无 Organization/Team/RBAC。
  • 改进方案:演进到 RBAC + 资源级权限,支持多团队协作。

16.9.2 移除 HS256 回退 P0

  • 现状:Debug 模式保留旧 HS256 验证回退,是安全隐患。
  • 改进方案:彻底移除。

16.9.3 数据新鲜度保证 P1

  • 现状:列存镜靠脚本手动同步,无自动增量(第 10 章)。
  • 改进方案:引入 CDC 或定时增量同步管道。

16.10 前沿方向关联

TTD 的演进与以下 AI Agent 前沿方向呼应:

前沿方向 与 TTD 的关联 对应改进
Self-Discover Agent 自主决定推理路径 16.2.1 Supervisor 回访
多 Agent 辩论 多 Agent 交叉验证提升准确率 16.4.2 结果校验对齐
自治记忆(MemGPT/Letta) LLM 自主管理记忆读写 16.5.4 自治记忆
Agent 评测基准(AgentBench) 标准化 Agent 评估 16.8.1 公开基准
MCP 协议 标准化工具暴露 16.6.1 统一工具接口
Self-RAG / Corrective-RAG 检索自评估自纠错 16.3.3 检索评估常态化
Grammar-Constrained Decoding 约束 SQL 生成合法性 16.4.3 规划器默认路径

16.11 已知问题索引

本节将全书散布的"诚实声明"和"当前实现可改进之处"汇编为索引,方便快速定位所有已知缺口。

16.11.1 设计目标追踪表

全书所有性能/质量数字均标注为"设计目标",下表统一追踪其实测状态

指标 设计目标 实测状态 出处
nl2sql 端到端延迟 < 3s pilot 实测 ~3.5s(20 条) Ch4附录 F
deep_analysis 端到端延迟 < 10s pilot 实测 ~8.2s(4 条) Ch4附录 F
Engine V 召回延迟 10-50ms 未测 Ch5
Reranker 延迟 < 10ms 未测 Ch5
检索 precision ≥ 0.8 未测 Ch5
SQL 生成延迟 1-3s pilot ~1.5s Ch6
Layer 2c 列校验延迟 < 5ms 未测 Ch6
路由准确率 ≥ 0.95 pilot 95%(19/20) Ch15
SQL 执行成功率 ≥ 0.90 pilot 90%(18/20) Ch15
结果正确率 ≥ 0.80 pilot 80%(16/20) Ch15
修复循环触发率 < 0.20 pilot 15%(3/20) Ch15
SQL Cache 命中率 ≥ 0.3 未测 Ch7
pg_mooncake 聚合延迟 < 500ms 未测 Ch10
前端 FCP < 1.5s 未测(无 Lighthouse) Ch12

更新规则:每次系统改进后,用 pilot 评估集回归并更新此表"实测状态"列。目标:逐步将"未测"替换为实测值,将"设计目标"替换为"实测基线"。

16.11.2 诚实声明索引

声明 位置 性质
仅在 H&M 单数据集验证 Ch1附录 E 数据局限
所有性能数字为设计目标 全书 !!! info "性能与质量指标" 数据诚实
评估基础设施就绪但未产出系统化报告 Ch15 评估缺口
Correction Memory 已持久化但未接入 SQL 生成 Ch7 功能未连通
嵌入维度不一致(schema 1024 vs builtin 1536) Ch5ADR-7 代码不一致
限流环境变量为死配置 Ch14附录 B 配置失效
HS256 回退是安全隐患 Ch1416.9.2 安全债
Runbook/DR/密钥轮换未经演练 Ch14 运维未验证
沙箱仅 L1(exec + whitelist) Ch816.6.2 安全限制
无 RLS 硬隔离 Ch1416.7.3 安全限制

16.12 改进优先级总览

P0(高价值 + 低成本,建议优先)

  1. Supervisor 回访机制(16.2.1)
  2. HITL 中断点(16.2.4)
  3. 查询改写与多查询生成(16.3.1)
  4. 护栏升级为 AST 校验(16.4.1)
  5. 沙箱安全升级(16.6.2)
  6. 资产冷启动自动化(16.7.1)
  7. RLS 硬隔离(16.7.3)
  8. 公开基准回归(16.8.1)
  9. 移除 HS256 回退(16.9.2)

P1(高价值 + 中成本)

  1. 路由反馈环(16.2.2)、State 收敛(16.2.3)
  2. Cross-encoder Reranker(16.3.2)、检索评估常态化(16.3.3)
  3. 结果校验对齐(16.4.2)、执行沙箱(16.4.4)
  4. 隐式信号挖掘(16.5.1)、记忆冲突消解(16.5.2)、Few-Shot 自动晋升(16.5.3)
  5. 统一工具接口(16.6.1)、GraphRAG 护栏(16.6.3)
  6. 在线编辑(16.7.2)、事件驱动同步(16.7.4)
  7. 反馈聚类(16.8.2)、评估常态化(16.8.3)
  8. RBAC 升级(16.9.1)、数据新鲜度(16.9.3)

P2(战略性 + 高成本)

  1. 向量引擎可插拔(16.3.4)
  2. 规划器默认路径(16.4.3)
  3. 自治记忆(16.5.4)

16.13 如何贡献

  1. 选择一个改进项:从上面的优先级表选一个感兴趣的。
  2. 理解现状:读对应章节的"实现详解"与"可改进之处"。
  3. 设计方案:参考"改进方案"与"最佳实践",设计具体实现。
  4. 小步提交:先写测试(参考 第 15 章 评估方法),再实现,PR 描述清晰。
  5. 验证效果:用评估基准量化改进效果(如 Spider 准确率提升)。

最有价值的贡献方向

如果你是新贡献者,建议从 P0 中的 查询改写与多查询生成(16.3.1)资产冷启动自动化(16.7.1) 入手——它们价值高、边界清晰、易于验证,能快速产生可见的改进。

16.13.1 最容易上手的前 3 个贡献项

以下是 3 个低门槛、高价值改进项的详细实施指南,含预估代码量、涉及文件与测试方法。

贡献项 1:查询改写与多查询生成(16.3.1)

维度 内容
预估代码量 ~200 行
涉及文件 backend/app/agents/sub_agents/data_retrieval.py(新增 query decomposer)、backend/app/rag/retriever.py(多查询并行)
实施步骤 ① 在 data_retrieval 节点前增加 query_decompose 子步骤(用 flash 模型生成 2-3 个子查询);② 对每个子查询并行跑 Engine V 检索;③ 用 RRF(倒数排名融合)合并去重
测试方法 附录 F 的场景 2("为什么退货率上升了")验证:改写后应召回更多相关表/列;用 pilot 评估集回归检索 precision
验证标准 复杂问题(含"对比""为什么")的检索 recall 提升 ≥ 10%

贡献项 2:资产冷启动自动化(16.7.1)

维度 内容
预估代码量 ~300 行(CLI 脚手架)+ ~100 行(LLM 辅助)
涉及文件 semantic-plane/scripts/scaffold_asset.py(新建)、backend/app/agents/semantic_plane/nodes.py(复用嵌入逻辑)
实施步骤 ① CLI 接收 --table gold_hm.dim_article 参数;② 从 PG 读取 schema 生成 table_asset/column_asset 骨架 YAML;③ 调 LLM 补充 business_definition_zh/alias_terms/typical_questions;④ 输出待人工校验的候选 YAML
测试方法 对 H&M 3 张表运行脚手架,人工检查生成 YAML 的质量(business_definition 是否准确、alias_terms 是否合理)
验证标准 生成 YAML 通过 JSON Schema 校验;business_definition 人工判定准确率 ≥ 70%

贡献项 3:护栏升级为 AST 结构化校验(16.4.1)

维度 内容
预估代码量 ~150 行
涉及文件 backend/app/agents/sub_agents/guardrails.py(Layer 2d 改造)、backend/app/semantic/sql_compiler.py(复用 sqlglot)
实施步骤 ① 用 sqlglot 将 SQL 解析为 AST;② 遍历 AST 中的 Column 节点,检查是否在术语绑定的正确表中;③ 替换当前正则匹配逻辑
测试方法 用 pilot 评估集中含子查询/CTE/UNION 的复杂 SQL 验证:正则可能漏检的,AST 应能检出
验证标准 复杂 SQL 的术语绑定误报率降为 0;现有通过 case 不回归

16.14 小结

本章把全书各章的"可改进之处"汇总为 20 个改进项,按 P0/P1/P2 分级。每个改进项都给出现状、根因、最佳实践、方案与优先级。这是 TTD 作为学习与工程实践结合项目的"成长地图"——系统当前有明确的演进方向,每一点改进都是清晰的工程机会。

回到首页 | 第 1 章 导论 | 附录