cortex-router 是 Snowflake Labs 的 snowflake-ai-kit 中提供的一项路由技能,由提示过滤钩子(prompt filter hook)自动加载,用于把 Snowflake 相关操作转交给 Cortex Code CLI 处理。根据说明,该技能不用于直接调用,用户应使用 $cortex-run 等入口。
用途
Cortex Code CLI 内置了多项专用技能,包括数据质量(data-quality)、语义视图(semantic-view)、成本智能(cost-intelligence)、机器学习(ML)、治理(governance)、安全(security)、血缘(lineage)、动态表(dynamic-tables)等。cortex-router 的职责是识别请求是否属于这类 Snowflake 操作,并将其路由到 Cortex Code,而非由当前环境直接处理。
工作流程
技能说明强调必须按步骤 1 → 2 → 3 顺序执行,不得跳步。
步骤 1:验证 CLI。通过 which cortex 与 cortex --version 检查是否已安装。若未找到,应告知用户并加载 snowflake-cortex-code:cortex-setup 技能进行安装,且在安装完成前停止后续步骤。
步骤 2:确认路由。运行路由脚本 route_request.py,传入用户提示词(需做 shell 转义),根据输出决定去向:输出为 route: cortex 时进入步骤 3;输出为 route: claude 时停止路由,改用当前环境的工具(如 sql_execute、Read、Write 等)自行处理,且不运行 execute_cortex.py。
步骤 3:通过 Cortex Code 执行。仅在步骤 2 确认路由到 Cortex 后才进入此步。需要根据操作类型选择安全信封:RO 为只读查询(SELECT、SHOW、DESCRIBE),不执行 DDL 或 DML;RW 为数据修改与 DDL(CREATE、ALTER、DROP),是多数操作的默认值;RESEARCH 为只读加联网访问,不写入;DEPLOY 为完全访问,需谨慎使用。除明确只读的请求外,默认使用 RW。执行时调用 execute_cortex.py,可传 --prompt 与 --envelope,若需指定 Snowflake 连接可加 --connection。
多轮对话
每次 cortex 调用都会返回 session_id,路由器会持久化该 ID,后续轮次可通过恢复会话让 Cortex 看到先前的对话内容,实现真正的多轮交互。当当前提示是上一轮 Cortex 回答的延续时(例如“继续”“应用最上面的建议”“深入看看”“再显示……”“上个季度呢”“修复那个”或对刚给出答案的追问),应添加 --resume-last;当用户切换话题、询问不同的数据库或仓库、开始明显的新任务时,则省略该参数以开启新会话。也支持传入显式的 --resume <session_id>。
超时与回退
该命令可能耗时 30 至 90 秒。若超过 2 分钟,可能已挂起,应终止进程并建议用户改用 $cortex-run 直接调用。若 route_request.py 缺失或执行失败,则回退到使用当前环境的工具处理。
结果返回
步骤 4 要求将 Cortex 的输出整理后呈现给用户:以可读表格展示 SQL 结果、展示生成的产物或分析、清楚报告成功或失败。
适用场景与限制
该技能适用于需要 Snowflake 专用技能支持的复杂操作,如数据质量检查、语义视图、成本分析、机器学习、治理与安全、血缘与动态表等;对于不需要这些技能的简单 SQL 查询,步骤 2 应路由回当前环境处理。其限制包括:不可直接调用;依赖 cortex CLI 已安装;需要路由脚本可用;执行可能较慢(30 至 90 秒,超过 2 分钟视为挂起);配置或安装步骤缺失时的具体表现资料未提供完整说明。