主线已不是旧版聊天式 BI,而是面向 Agent 的「语义层 + SQL 规划器 + 多源执行 + MCP/CLI/SDK」工具链。价值在后端能力面与交互范式,不在直接搬用。
局部引入强烈参照
局部引入:把 Python CLI/SDK 或 MCP 能力面(语义层+查询规划+只读策略+结构化错误)放进隔离适配层,只读账号、开严格模式、做方言 PoC。不要把整仓库当核心依赖。
参照:Git 友好的三层上下文、先规划后执行、按阶段错误、写能力显式授权、渐进披露的 Agent 工作流——正是「让 AI 查数据可信可复核」的答案。
口径提醒:README「22+ 数据源」实为代码 20 个标识且有复用;「GenBI 部署仪表盘」实为外部 Agent 编写、CLI 只做静态校验;严格模式默认关闭。以代码和 PoC 为准。
| 做什么 | 让 Agent 用显式业务语义(非裸 schema)写 SQL,模型/规则/成功样例作为 Git 项目资产。不内置大模型、当前无完整聊天 UI |
| 语义层 | MDL(模型/关系/cube/视图/规则/已确认查询)编译成 mdl.json 可重建构建物 |
| 规划器 | Rust + Apache DataFusion 规划优化、反解析成目标方言 SQL;SQLGlot 做 CTE 重写与安全 AST 检查 |
| 链路 | Agent → 只读+严格策略 → 裁剪 MDL → CTE 重写 → Rust 规划 → 最终 SQL 复检 → 连接器 → Arrow 结果/结构化错误 |
| 多入口 | 同一语义暴露为 CLI(Typer) / MCP(FastMCP) / Agent SDK,避免各框架复制建模逻辑 |
| 记忆 | NL–SQL 对写成确定性 Markdown 作真相源,LanceDB 只是可重建的派生索引 |
需调整:默认沉淀应加用户确认+数据分类+审核,不能把口径错的可执行 SQL 自动当知识。
strict_mode 默认 false,仅写语句检查常开 → 用只读账号 + 强制严格模式。raixis-desktop 用 pi-agent-core + WebSocket 工具桥形态一致。建议范围:只做「可替换的语义查询适配器」,上游只依赖本方 plan/validate/execute/describe-context 接口,Wren 的 manifest/错误/Arrow 结果在适配层内转换。