第 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) | Ch5、ADR-7 | 代码不一致 |
| 限流环境变量为死配置 | Ch14、附录 B | 配置失效 |
| HS256 回退是安全隐患 | Ch14、16.9.2 | 安全债 |
| Runbook/DR/密钥轮换未经演练 | Ch14 | 运维未验证 |
| 沙箱仅 L1(exec + whitelist) | Ch8、16.6.2 | 安全限制 |
| 无 RLS 硬隔离 | Ch14、16.7.3 | 安全限制 |
16.12 改进优先级总览¶
P0(高价值 + 低成本,建议优先)¶
- Supervisor 回访机制(16.2.1)
- HITL 中断点(16.2.4)
- 查询改写与多查询生成(16.3.1)
- 护栏升级为 AST 校验(16.4.1)
- 沙箱安全升级(16.6.2)
- 资产冷启动自动化(16.7.1)
- RLS 硬隔离(16.7.3)
- 公开基准回归(16.8.1)
- 移除 HS256 回退(16.9.2)
P1(高价值 + 中成本)¶
- 路由反馈环(16.2.2)、State 收敛(16.2.3)
- Cross-encoder Reranker(16.3.2)、检索评估常态化(16.3.3)
- 结果校验对齐(16.4.2)、执行沙箱(16.4.4)
- 隐式信号挖掘(16.5.1)、记忆冲突消解(16.5.2)、Few-Shot 自动晋升(16.5.3)
- 统一工具接口(16.6.1)、GraphRAG 护栏(16.6.3)
- 在线编辑(16.7.2)、事件驱动同步(16.7.4)
- 反馈聚类(16.8.2)、评估常态化(16.8.3)
- RBAC 升级(16.9.1)、数据新鲜度(16.9.3)
P2(战略性 + 高成本)¶
- 向量引擎可插拔(16.3.4)
- 规划器默认路径(16.4.3)
- 自治记忆(16.5.4)
16.13 如何贡献¶
- 选择一个改进项:从上面的优先级表选一个感兴趣的。
- 理解现状:读对应章节的"实现详解"与"可改进之处"。
- 设计方案:参考"改进方案"与"最佳实践",设计具体实现。
- 小步提交:先写测试(参考 第 15 章 评估方法),再实现,PR 描述清晰。
- 验证效果:用评估基准量化改进效果(如 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 作为学习与工程实践结合项目的"成长地图"——系统当前有明确的演进方向,每一点改进都是清晰的工程机会。