WrenAI
开源 GenBI 引擎,让 AI Agent 通过开放上下文层将自然语言问题转化为受治理的 SQL、图表和可分享仪表盘,支持 22+ 数据源。它不止做 text-to-SQL,还内置了业务语义管理、记忆回溯和一键部署能力,解决了纯 LLM 生成 SQL 时缺乏上下文和治理的痛点。CLI+Agent SDK 设计让 Claude Code、Cursor 等客户端可直接调用。Apache 2.0 许可,可商用。
README
开源 GenBI:为 AI agent 打造的生成式商业智能。
你的 agent 能从任何数据库生成、部署和管理仪表盘,这一切都基于它们真正可以信任的上下文层。
📣 2026-05-07: Wren Engine 已合并到本仓库的
core/目录下。之前的Canner/wren-engine仓库已归档。先前的 WrenAI GenBI 应用(基于 Docker 的聊天优先 BI 产品)已保留在legacy/v1分支(标签v1-final)上,现称为 Wren GenBI Classic;详见下方关于“GenBI”名称的说明。 阅读公告 →
WrenAI 是什么
WrenAI 是开源的 GenBI 引擎:它让 AI agent 能够从 SQL 答案到可共享的仪表盘,跨越 22 种以上数据源,生成、部署和管理商业智能。
使输出可信的是其底层的层次:一个开放的上下文层,它提供给 agent 的远不止 schema。这包括业务语义、经认可的定义、示例、记忆和治理,以及存在于你文档、wiki 和聊天线程中的非结构化公司知识。生成式 BI 的质量取决于它所依赖的上下文,而 Wren 正是这个上下文,可供你已运行的每个 agent 审查和复用。

GenBI 三部曲:生成 · 部署 · 知晓
- 生成。 你的 agent 将业务问题转化为受治理的 SQL 和图表。模式感知检索(schema-aware retrieval)、MDL 规划、干计划验证(dry-plan validation)和结构化错误确保正确性,而非盲目自信地犯错。
- 部署。 将任何答案转化为由
wren-core-wasm驱动的、浏览器端可共享的仪表盘,并通过一条命令将其部署到你自己的 Vercel 或 Cloudflare Pages 账户。 - 知晓。 使这一切正确无误的知识存在于可版本化、可链接证据的文件中:语义模型(MDL)、公司定义(
instructions.md)以及一份关于哪些做法有效的记忆。可审查、对 Git 友好、永远不会被锁定在别人的 UI 里。
为什么 agent 构建者选择 WrenAI
- 生成式 BI,端到端。 不仅是 text-to-SQL。生成答案、部署仪表盘、共享 URL,全部由你已有的 agent 驱动。
- 内置知识管理。 业务含义、经认可的定义和经过验证的示例被捕获为可审查、版本可控的上下文,而非埋藏在提示词中。
- 默认开放。 核心、SDK 和技能均在 Apache-2.0 许可下开源。
- 以正确性为原语。 丰富的模式检索、干计划验证、带提示的结构化错误、数值分析(value profiling)、评估运行器(eval runner)。Agent 编排;追踪信息保留在其推理中。
- 架设于你现有技术栈之上。 数据仓库、转换管道、现有语义层。无需维护另一个工具。
Wren 对比
| 原生 LLM agent | 传统 BI 工具 | 裸语义层 | WrenAI | |
|---|---|---|---|---|
| 为你编写 SQL | ✅(常出错) | ❌ | ❌ | ✅ 受治理 |
| 了解你的业务定义 | ❌ | 部分,在工具内 | ✅(仅 schema) | ✅ 包含非schema 知识 |
| 生成并部署仪表盘 | ❌ | ✅(手动,在工具内) | ❌ | ✅ agent 驱动 |
| 通过你的 agent(Claude Code、Cursor、MCP……)工作 | ✅ | ❌ | ❌ | ✅ |
| 开放、可审查、对 Git 友好的上下文 | ❌ | ❌ | 部分 | ✅ |
| 跨22+个数据源的受治理执行 | ❌ | 按连接器 | ✅(仅定义) | ✅ |
如果你符合以下情况,Wren 适合你
- 你希望 AI agent 生产可信的 BI,包括答案和仪表盘,而不仅仅是看起来合理的 SQL。
- 你的业务逻辑(定义、枚举、单位、认可的连接)存在于数据库之外,而你的 agent 总是搞错。
- 你希望上下文是开放的、可审查的、版本可控的,能被每个 agent 和人使用,而非被某个供应商的 UI 所限制。
如果以下情况,请跳过 Wren:你只需要从单个 CSV 获取一次性图表,或者你满足于让 agent 在没有治理的情况下猜测 SQL。
快速开始
WrenAI 设计为由 agent 驱动:安装 CLI,为你的 AI 客户端安装一个单文件发现存根(stub),然后让你的 AI agent 自行驱动其余流程。工作流指南内置于 CLI 本身中,按需提供,因此内容始终与已安装版本匹配。
1. 安装 CLI
pip install wrenai # 核心(包含 DuckDB)
pip install "wrenai[postgres,memory]" # 根据需要添加按数据源和内存的额外功能
中国大陆用户提示: 如果
pip install速度慢或失败,请使用清华镜像:pip install wrenai -i https://pypi.tuna.tsinghua.edu.cn/simple如果 HuggingFace 模型下载超时,请在运行 CLI 之前添加
export HF_ENDPOINT=https://hf-mirror.com。
2. 为你的 AI 客户端安装发现存根
npx skills add Canner/WrenAI # 自动检测 Claude Code、Cursor、Cline、Codex……
该存根大约 50 行。它教会你的 agent 通过 wren skills get <name> 获取工作流指南,通过 wren ask "<question>" --guided|--direct 获取结构化提示,其余内容均在 CLI 中。
3. 让你的 agent 进行设置
在你的项目目录中打开 agent,然后说出类似这样的话:
"使用 Wren 设置我的 Postgres 数据库。"
agent 会运行 wren skills get onboarding,逐步按照指南操作,检查你的环境,创建连接配置文件,搭建项目框架,并运行第一次查询。
4. (可选)丰富项目:知晓环节
一旦引导完成,你可以问:
"用
raw/中的业务上下文丰富我的 Wren 项目。"
agent 会运行 wren skills get enrich-context,然后以烤串模式(一次一个问题)或自动驾驶模式(agent 读取 <project>/raw/ 并提出建议)遵循指南。两种模式都会写入 MDL、instructions、queries 和 memory,所有内容都可审查、对 Git 友好。
5. 提问:生成环节
"本季度前十大客户是谁?按销售额排序。"
你的 agent 获取 MDL 上下文,回忆过去类似的查询,编写受治理的 SQL,并通过 wren query 执行。
6. 构建并部署仪表盘:部署环节
"将其变成一个可筛选和共享的交互式仪表盘,然后部署到 Vercel。"
agent 运行 wren skills get genbi,根据项目的上下文构建一个浏览器端的 GenBI 应用,在本地预览,然后将其发送到你自己的 Vercel 或 Cloudflare Pages 账户,返回一个实时的可共享 URL。请参阅 构建并部署 GenBI 应用指南。
想在没有自己数据库的情况下尝试? 让你的 agent 使用附带的 jaffle_shop 示例数据集。相同的流程,几分钟内即可端到端查询真实仓库。
先做两个环节,再做第三个
# 第一天(agent 驱动)
wren skills get onboarding # 工作流指南:设置项目 + 首次查询 (生成)
wren skills get enrich-context # 工作流指南:添加业务上下文 (知晓)
wren skills get genbi # 工作流指南:构建并部署仪表盘 (部署)
# 日复一日使用
wren query --sql '...' # 通过 MDL 语义层进行查询
wren ask "<question>" --guided # 为较弱 agent 包装问题
wren ask "<question>" --direct # 为较强 agent 包装问题
开始时快速运行,需要时深度使用,始终可审查、对 Git 友好。
包含的内容
- 建模定义语言(MDL):模型、列、关系、视图、Cube、度量、行级/列级访问控制 (RLAC / CLAC)
- 引擎:基于 Apache DataFusion,支持 22+ 数据源
- GenBI 仪表盘:由 agent 构建、浏览器端运行的应用,基于
wren-core-wasm,可部署到 Vercel / Cloudflare Pages - 知识与记忆:版本控制的
instructions.md和queries.yml中的业务含义,加上本地的 LanceDB 记忆索引(混合检索)用于回忆 - Agent SDK:
wren-langchain(LangChain / LangGraph)、wren-pydantic;其他技术栈的参考 Python 集成 - 受治理的执行原语:函数、干计划、行限制、访问控制
下一步
- 端到端正确性原语:数值分析、丰富检索、结构化错误、金标准评估运行器
- Agent 原生分发:主要 agent 框架的一流 SDK;查看 GitHub Discussions 了解下一步优先开发内容
- 全面受治理执行:审计日志、速率限制、审批工作流、数据流检查器
完整路线图和设计说明:请参阅 介绍。
关于“GenBI”名称的说明
“GenBI”现在指的是这种开源的生成式 BI 能力:agent 在 Wren 上下文层之上生成受治理的答案并部署仪表盘。早期的 Wren AI GenBI 应用(基于 Docker 的聊天优先 BI 产品)现已更名为 Wren GenBI Classic,保留在 legacy/v1 分支(不再提供新功能或安全修复)。如需该经典体验的受维护托管版本,请参阅 Wren AI Commercial。
文档
- 快速开始:从技能安装到首次答案
- 构建并部署 GenBI 应用:生成仪表盘并发布
- 概念:上下文是什么、MDL 是什么、记忆如何工作
- 连接数据库:Postgres、BigQuery、Snowflake、DuckDB 等
- Agent SDK:目前已发布的,以及下一步计划
社区
- 💬 Discord:与团队和其他构建者交流
- 🐙 GitHub Discussions:设计讨论、RFC、长线程
- 🐦 Twitter / X:发布说明和简短更新
- 🗞 博客:愿景、事后分析、深度文章
贡献
我们开放地构建。欢迎 Issue、PR、连接器贡献、SDK 集成、文档修正。
- 贡献者指南
- 连接器生态系统计划:三级所有权(官方、社区认可、社区拥有)
- 架构图:找到适合你变更的地方
- 想从某处开始?试试
good first issue标签。
core/
wren-core/ Rust 语义引擎(Apache DataFusion)
wren-core-base/ 共享的清单类型 + MDL 构建器
wren-core-py/ Python 绑定(PyPI: wren-core)
wren-core-wasm/ WebAssembly 构建(npm: wren-core-wasm)
wren/ Python SDK 和 CLI(PyPI: wrenai)
wren-mdl/ MDL JSON schema
sdk/
wren-langchain/ 参考 Agent SDK 集成
skills/ Agent 技能,用于上下文创作
docs/ 模块文档
examples/ 示例项目
贡献者
许可证
Apache 2.0。参见 LICENSE。
和我们一起构建开放的 GenBI。
如果 WrenAI 对你有帮助,请点个 ⭐,这真的能帮助我们成长!