Canner/WrenAI —— 面向AI代理的开源生成式BI引擎,通过受控文本到SQL连接20+数据源
原标题:Canner/WrenAI
Python★ 16,061 stars+96 今日
速览
核心功能是利用开放上下文层实现受控的文本到SQL,支持BigQuery、Snowflake、PostgreSQL、ClickHouse、Amazon Redshift、Databricks等20+数据源,将自然语言问题转化为受治理的SQL查询、仪表盘和图表。适用于企业级数据分析和AI代理集成,降低数据洞察门槛。
AI 深度解读
这是什么
WrenAI 是一个开源的生成式商业智能(GenBI)引擎,由 Canner 团队开发,主语言 Python,GitHub 上拥有 16000+ 星标。它允许 AI 代理从任意数据库生成、部署和管理仪表盘,底层依赖一个可信任的上下文层(context layer)。项目核心引擎基于 Apache DataFusion,支持 22+ 数据源,并通过 wren-core-wasm 实现浏览器端仪表盘。WrenAI 提供 CLI、Python SDK(wrenai 包)以及 LangChain/Pydantic 集成,强调代理驱动(agent-driven)的工作流:用户通过自然语言指令让代理执行从数据库连接、上下文构建到仪表盘部署的完整流程。
解决的问题
传统 BI 工具和文本到 SQL 方案存在几个关键痛点:
- AI 代理生成的 SQL 和图表不可信:代理虽能生成语法正确的 SQL,但缺乏对业务语义(如“活跃客户”定义、利润率计算规则)的理解,导致结果“自信地错误”。WrenAI 通过显式上下文层(MDL、说明文档、示例查询)为代理提供业务含义,抑制幻觉。
- 业务逻辑分散在数据库外且难以维护:公司定义、枚举值、单位、批准的连接规则等通常存在于文档、Wiki 和聊天记录中,代理无法自动获取。WrenAI 将这些知识捕获为版本化、可审核的文件(
instructions.md、queries.yml),并支持 git 管理。 - 上下文被锁定在单个供应商界面内:许多 BI 工具的语义层是封闭的,无法被其他代理或工具复用。WrenAI 的上下文层是开放的、可审查的、版本控制的,任何代理(Claude Code、Cursor、Cline 等)均可通过简单 stub 工作流消费。
- 从 SQL 答案到可分享仪表盘需要额外工具链:传统流程中,用户需要手动将查询结果导出为图表,再部署到 BI 平台。WrenAI 的 GenBI 能力允许代理一键将答案转为浏览器端仪表盘,并部署到 Vercel/Cloudflare Pages。
核心功能
- 生成(Generate):代理将业务问题转化为受控的 SQL 和图表。通过模式感知检索、MDL 规划、干计划验证(dry-plan validation)和结构化错误提示,确保正确性,而非“自信地错误”。
- 部署(Deploy):将任何答案转换为可分享的浏览器端仪表盘(基于
wren-core-wasm),通过一条命令部署到用户自己的 Vercel 或 Cloudflare Pages 账户。 - 知识管理(Know):上下文层由版本化、可链接的文件组成:语义模型(MDL)、公司定义(
instructions.md)、历史成功查询记忆(queries.yml和本地 LanceDB 混合检索索引)。所有内容可审查、可 git 管理,不锁定在某个 UI 中。 - 代理驱动的工作流:安装 CLI 后,用户只需在项目目录中向代理发出自然语言指令,代理自动调用
wren skills get <guide>获取分步指南,按需执行。工作流指南内置于 CLI 本身,版本随安装同步。 - 受控执行原语:函数、干计划、行限制、访问控制(RLAC/CLAC)、审计日志、速率限制、审批工作流、数据流检查器。
- 正确性原语:值分布分析、丰富检索、结构化错误(带提示)、黄金评估运行器(eval runner)。
- 多数据源支持:Postgres、BigQuery、Snowflake、DuckDB 等 22+ 数据源,附带
jaffle_shop示例数据集供无数据库用户试用。
亮点 / 与同类相比
- 端到端生成式 BI,不止文本到 SQL:同类工具(如传统 NL2SQL)仅输出 SQL,用户仍需手动制作图表和部署。WrenAI 从问题到可分享仪表盘全流程由代理驱动,且部署到用户自己的基础设施。
- 内置知识管理,而非隐藏于提示词:许多方案将业务语境写在 agent 提示中,不可审查、不可版本化。WrenAI 将语义模型、定义、示例作为独立文件,支持 git diff、代码审查,可被任何代理复用。
- 开放且代理原生:核心、SDK、技能均以 Apache-2.0 开源。提供针对 Claude Code、Cursor、Cline 等主流代理的一键技能安装(
npx skills add Canner/WrenAI),无需定制集成。 - 正确性优先的原语:干计划验证、结构化错误(带提示)和黄金评估运行器使代理的行为可追踪、可调试。其他方案通常只输出带置信度的 SQL,缺乏验证机制。
- 轻量部署,无需额外工具:仪表盘通过
wren-core-wasm在浏览器端运行,部署到 Vercel/Cloudflare Pages 只需一个命令,无需维护后端服务。
适合谁用 / 上手
适合场景:
- 团队希望 AI 代理生成可信的 BI 答案和仪表盘,而非仅“可能正确”的 SQL。
- 业务逻辑(定义、枚举、单位、批准的连接)存在于数据库外部,且代理经常出错。
- 需要开放的、可审查的、版本控制的知识上下文,能被所有代理和人员使用,而非锁定在单一供应商 UI 内。
不适合场景:
- 仅需一个 CSV 的临时图表。
- 对 SQL 生成无任何治理要求,乐意让代理“猜 SQL”。
快速上手:
- 安装 CLI:
pip install wrenai(中国大陆用户可使用清华镜像)。 - 为 AI 代理安装技能:
npx skills add Canner/WrenAI(自动检测 Claude Code、Cursor、Cline、Codex 等)。 - 在项目目录中向代理发指令,例如:“使用 Wren 设置我的 Postgres 数据库。”代理会执行
wren skills get onboarding按步骤完成。 - 如需添加业务上下文,执行“用 raw/ 目录中的业务上下文丰富我的 Wren 项目。”代理会以
grill或auto-pilot模式写入 MDL、指令和记忆。 - 查询:“本季度按销售额排名前 10 的客户是谁?”代理检索 MDL 上下文、回忆相似历史查询,生成受控 SQL 并执行。
- 部署仪表盘:“将这个结果转换为可交互的仪表盘,部署到 Vercel。”代理构建浏览器端 GenBI 应用并返回分享 URL。
详细指南见项目文档中的 Quickstart、Build & deploy a GenBI app 等页面。
查看原文 →github.com
