当前活跃分支已不是旧版 Docker 聊天式 BI 应用,而是一套面向 AI Agent 的「可版本化上下文包 + 语义 SQL 规划器 + 多数据源执行适配 + MCP/CLI/SDK」工具链。Agent 负责编排生成,Wren 负责建模、规划、校验、执行、召回与交付门禁。
让 Agent 使用显式业务语义而不是裸数据库 schema 写 SQL,并把可审查的模型、规则和成功样例作为项目资产(Git 友好)。它不内置大模型,当前 OSS 分支也没有完整聊天 UI(旧服务已移到 legacy/v1)。
营销口径与代码实现有出入,采购判断须以代码 + PoC 为准:
| 对外表达 | 实现事实 | 选型影响 |
|---|---|---|
| 「22+ data sources」 | 代码实际枚举 20 个标识,且有复用(Doris 复用 MySQL,四种文件源复用 DuckDB) | 不能等同于 22 个独立、同成熟度连接器;PoC 须逐项验证真实目标库 |
| 「GenBI 生成并部署仪表盘」 | CLI 只输出构建指令,明确不写应用文件;实际由外部 Agent 编写静态应用 | 生成质量归属于外部 Agent 与模板,不是仓库内确定性生成器能力 |
| 「governed execution」 | 严格模式默认 false;只读语句检查始终开启 | 默认能阻止写语句,但不保证只能访问语义层对象;生产接入须显式加固 |
README 明确:GenBI UI、嵌入和访问控制属于商业版。当前 OSS 的主要人机界面是 CLI、MCP、Agent SDK 和少量配置网页表单。
跨 Python / Rust / WASM 多包独立发布。Python 层主框架 Typer + 可选 FastMCP;Rust 语义层核心是 Apache DataFusion;Python/Rust 靠 PyO3 桥接;SQL AST 与方言用 SQLGlot;结果统一为 PyArrow;默认本地库 DuckDB;可选语义记忆用 LanceDB + sentence-transformers;另有浏览器内执行的 wren-core-wasm(约 68MB,单线程)。
核心是「先规划后执行」:Python 层做输入策略与 CTE 重写,跨 FFI 进 Rust 用 DataFusion 完成语义计划与优化,反解析回目标方言 SQL 后再做一次只读复检,最后才落到目标连接器,返回 Arrow 结果 + 截断标志 + 结构化错误。
target/mdl.json 可重建。row_count、truncated、错误阶段(error phase);写工具按能力开关注册。| 风险 | 缓解建议 |
|---|---|
| 严格治理非默认:strict_mode 默认 false,只依赖默认会允许读取语义层外的表 | 数据库用只读最小权限账号;强制开严格模式和禁用函数;加外部 SQL 网关 |
| 规划结果复检 fail-open:SQLGlot 无法解析时直接放行 | 高风险环境将无法解析视为拒绝,或让目标库只读事务成为最终防线 |
| SQL 反解析有技术债:为绕开反解析问题禁用了多项 DataFusion 优化 | 用真实业务 SQL 黄金集覆盖目标方言;升级依赖时做差分回归 |
| GenBI 验证不是运行验证:只做静态检查,不跑浏览器 / WASM smoke query | 部署门禁加 headless browser、真实查询、可视回归、依赖供应链检查 |
| 成熟度:wrenai 标注 Beta,多包独立发版 | 固定组合版本,维护兼容矩阵,避免浮动下限直接进生产 |
最合适的对象是 wrenai 的 Python CLI/SDK 或 MCP 能力面,而不是整仓库和旧版 UI。前提是:目标方言黄金集、安全 PoC、只读数据库身份、严格模式、稳定版本组合、适配层隔离(上游只依赖本方定义的 plan / validate / execute / describe-context 接口)。若目标只是一次性 CSV 图表、已有成熟语义层,或要求企业级 RLS/CLS 与审计开箱即用,则不建议引入 OSS 主线。
最值得参照:Git 友好的模型 / 规则 / 已确认查询三层上下文、先规划后执行、按阶段错误反馈、写能力显式授权、派生索引可重建、Agent 工作流渐进披露。最不应照搬:营销数字推导的连接器成熟度、自动沉淀成功查询、默认关闭严格模式、静态 GenBI 验证、浏览器承担大规模数据执行。
与锐识 AI 的直接意义:WrenAI 是三个项目里与「多智能体数据研究引擎」方向最对口的一个——语义层、查询规划、只读安全策略、结构化错误和 MCP 工具面已形成可组合闭环,是 NL2SQL / GenBI 方向的最佳参照标杆。
方法与限制:仅静态阅读源码、配置、测试目录与官方文档;未安装依赖、未构建 / 测试 / 启动服务。所有运行性能、真实目标库兼容、MCP HTTP 安全、部署交互均未验证。