在 Snowflake Cortex Code 中使用 Wren AI:从安装 Skill 到完成首次数据查询
在 Snowflake Cortex Code 中使用 Wren AI从安装 Skill 到完成首次数据查询【免费下载链接】WrenAIGenBI (Generative BI) for AI agents, an open-source, governed text-to-SQL through an open context layer that turns natural-language questions into trusted dashboards, charts, and SQL across 20 data sources, such as BigQuery, Snowflake, PostgreSQL, ClickHouse, Amazon Redshift, Databricks and more.项目地址: https://gitcode.com/GitHub_Trending/wr/WrenAI本文是面向 Snowflake Cortex Code 用户的 Wren AI 接入指南主题源自 docs/core/get_started/quickstart-with-agent/cortex.md。文章以该文档的接入流程为骨架结合仓库内 Skill 分发机制skills/README.md、skills/wren/SKILL.md、onboarding工作流源码core/wren/src/wren/skills_content/onboarding/SKILL.md以及wren skills命令实现core/wren/src/wren/skills_cli.py做纵深展开。读完你将掌握如何在 Cortex Code 中安装 Wren 的 Agent Skill、如何通过一句话触发完整的 onboarding 流程、该流程在底层实际执行哪些检查与命令以及完成后如何用自然语言查询数据。背景为什么在 Cortex Code 里装一个 Skill 就够了Wren AI 是一个开源的 GenBIGenerative BI上下文层它把自然语言问题翻译成可信的 SQL并覆盖 20 数据源BigQuery、Snowflake、PostgreSQL、ClickHouse、Redshift、Databricks 等。对最终用户而言日常交互并不需要手敲命令行——真正干活的是你的 AI 编程 Agent。从 Wren0.8开始Wren AI 的 Skill 采用发现桩discovery stub分发模型见 docs/core/reference/skills.md你的 Agent 里只安装一个约 50 行的 SKILL.md 发现桩它告诉 Agent存在一个wrenCLI工作流指南按需从 CLI 获取真正的工作流指南onboarding、usage、generate-mdl、dlt-connector、enrich-context、genbi打包在wrenaiPython 包里通过wren skills get name按需输出因为内容随 wheel 一起分发Agent 读到的指南永远与已安装的wrenai版本一致不存在Skill 缓存与 CLI 版本漂移的问题。所以在 Snowflake Cortex Code 中接入 Wren AI本质只做两件事装好发现桩然后让 Agent 去跑 onboarding 工作流。前置条件按照原文档的要求开始前请确认Cortex Code 已安装并完成认证——Cortex Code 是 Snowflake 推出的编码 Agent随 Snowflake 账号体系工作一个有效的 Snowflake 账号——用于 Cortex Code 的登录与鉴权。此外从仓库的 onboarding 工作流看onboarding/SKILL.md 的 Preflight 一节Agent 在安装阶段还会检查如下环境建议提前备好检查项要求Pythonpython3 --version需为3.11虚拟环境需要处于 venv 中PEP 668 系统尤其必要可通过python3 -c import sys; print(sys.prefix ! sys.base_prefix)确认wrenCLI若已安装则复用未安装会由 Agent 补装工作目录记录当前pwd后续项目默认创建在~/project/第一步在 Cortex Code 中安装 Wren skills在终端中执行原文档给出的安装命令npx skills add Canner/WrenAI --agent cortex--agent cortex用于把 Skill 明确安装到 Cortex Code不带--agent时安装器会自动探测当前 Agent想装到所有 Agent 则用--agent *见 docs/core/get_started/installation.md。命令效果是把发现桩写入 Cortex Code 的 Skill 目录例如 Claude Code 对应~/.claude/skills/wren/SKILL.md。也可以改用仓库自带的本地安装脚本bash skills/install.sh # 安装发现桩 bash skills/install.sh --force # 覆盖已有安装装完后的 skills/wren/SKILL.md 只做发现工作它声明了 Skill 名称、触发条件install wren、connect database to wren、generate mdl、build a dashboard 等并列出 Agent 可用的一组入口命令例如wren skills list # 列出全部工作流指南 wren skills get onboarding # 端到端初始化 Wren wren skills get usage # 日常查询 wren skills get generate-mdl # 从库表结构生成 MDL wren docs connection-info ds # 查看某数据源所需连接字段 wren ask question --guided|--direct # 包装用户问题供 Agent 使用第二步启动新会话并运行 onboarding原文档强调在 Snowflake 的 Cortex Code 界面中打开你的项目然后新建一个 Agent 会话。原因在于发现桩在会话启动时才被加载新会话才能识别/wrenSkill。随后直接提问Use the /wren skill to install and set up Wren AI.这句提示会触发两层行为Skill 路由发现桩识别这是安装 / 初始化类意图把 Agent 导向wren skills get onboarding获取完整工作流工作流执行onboarding 指南随后走完环境检查、profile 创建、项目脚手架搭建和第一次查询对应原文档的描述。第三步onboarding 底层到底做了什么原文档只用一句话概括了 onboarding但仓库里的 onboarding/SKILL.md 给出了完整的分步定义。它采用每轮只做一步one step per round-trip的运行模式核心约束包括规则原因❌ 绝不在聊天中索要任何凭据host、port、user、password、token凭据一律走.env文件由用户在编辑器里填写Agent 永远看不到明文❌ 绝不臆造连接字段名必须执行wren docs connection-info ds从 Pydantic 连接模型实时自省❌ MDL 构建完成前绝不查询数据库强制先搭好上下文层✅ 每步等待命令结束、用自然语言汇报输出保证用户可随时干预具体流程与原文档环境检查 → profile → 脚手架 → 首查的叙述一一对应Preflight只读检查检查 Python 3.11、虚拟环境、wren --version、记录pwd汇报为 4 条结论此时不询问任何项目/凭据问题分支选择询问用户是先用内置jaffle_shop演示数据约 30 秒、无需数据库直接跳转 docs/core/get_started/quickstart.md还是连接自有数据库Step 1同时收集项目名 数据库类型如postgres、mysql、bigquery、snowflake、clickhouse、duckdb等Step 2批量mkdir -p ~/project→pip install wrenai[ds,main]→ 用wren docs connection-info ds --format md自省连接字段并生成.env 模板如POSTGRES_HOST、POSTGRES_PORT5432、POSTGRES_DATABASE、POSTGRES_USER、POSTGRES_PASSWORD并建议.gitignore忽略.env、chmod 600收紧权限Step 3用户填好.env回复 done 后把/tmp/conn.yml写成全部${VAR}占位符形式执行wren profile add project --from-file /tmp/conn.yml校验自动运行CLI 静默覆盖 profile无--force标志Step 3.5wren context init --empty脚手架项目结构models/、views/、relationships.yml、knowledge/、AGENTS.md若已存在wren_project.yml会拒绝覆盖Step 3.6wren context set-profile project把profile与data_source写入wren_project.yml实现项目级连接绑定——之后即使wren profile switch切走了全局 profile本项目查询也不受影响Step 4wren skills get generate-mdl生成 MDL随后wren context validate→wren context build并汇报模型数量若模型数 ≥ 200建议加装wrenai[memory]并wren memory indexStep 5给出 23 个基于已发现表的自然语言问题示例随后把日常查询交给wren skills get usage。这套流程的实现依托于 core/wren/src/wren/skills_cli.py 中的wren skills子命令wren skills list枚举全部指南wren skills get name输出主指南--full内联附带的references/文档--script stem单独输出捆绑脚本如 dlt-connector 的introspect_dlt.py。仓库还用 test_served_content_guard.py 做 CI 守卫逐一校验被分发的 Skill 内容里出现的wren cmd都真实存在于 CLI 命令树中避免指南教 Agent 运行不存在的命令。第四步完成后的日常使用onboarding 结束后你不再需要手动执行任何命令。直接在 Cortex Code 会话里用自然语言提问即可例如How many customers placed more than one order this month?What are the top 5 products by total revenue?Agent 会按usage工作流处理wren memory fetch获取相关表/列上下文 →wren memory recall回忆相似历史查询 → 基于 MDL业务模型名而非裸表名编写 SQL →wren --sql ...执行 →wren memory store保存成功的 NL→SQL 对。查询越多记忆越准。如果不想带自有数据库可以直接走 快速开始jaffle_shop 端到端演练约 15 分钟纯本地、无需云数据库与 Docker它与本文的安装路径完全兼容同样先pip install wrenai与安装 Skill只是把 profile 指向本地 DuckDB 文件。下一步Quickstart with sample datajaffle_shop 端到端演练——用内置示例数据走完建库、建模、查询全流程Connect your data连接真实数据库——按安装连接器 extra →wren profile add建 profile →wren context set-profile绑定 → 生成 MDL → 开始查询五步把 Wren AI 指向真实数据源支持 Postgres、MySQL、BigQuery、Snowflake、ClickHouse、Trino、SQL Server、Databricks、Redshift、Oracle、Athena、Spark 等所有连接字段均可通过wren docs connection-info ds实时自省无需记忆。【免费下载链接】WrenAIGenBI (Generative BI) for AI agents, an open-source, governed text-to-SQL through an open context layer that turns natural-language questions into trusted dashboards, charts, and SQL across 20 data sources, such as BigQuery, Snowflake, PostgreSQL, ClickHouse, Amazon Redshift, Databricks and more.项目地址: https://gitcode.com/GitHub_Trending/wr/WrenAI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考