SuperAPI AI 工具集

well-architected-framework-assessment

部署与运维

查看项目

更新于 10-16 04:36

技能介绍

用途

本技能用于对 Snowflake 客户账户执行 Well-Architected Framework(WAF)评估,依据 WAF 最佳实践对账户进行结构化检查。适用于客户需要结构化评估、项目启动(engagement kickoff)、健康检查或架构评审等场景。

主要能力

  • 覆盖五大支柱:安全与治理(Security & Governance)、运营卓越(Operational Excellence)、成本优化(Cost Optimization)、性能(Performance)、可靠性(Reliability)。
  • 采用三级量表:On Track / Needs Improvement / Needs Attention。
  • 结合自动化 SQL 检查与人工问答:自动化检查通过子代理(subagent)并发执行 SQL,人工检查通过 ask_user_question 收集用户输入。
  • 自动检测账户版本(Edition),如 BUSINESS_CRITICAL → Business Critical、ENTERPRISE → Enterprise、STANDARD → Standard、VPS → VPS;若检测失败则询问用户。
  • 输出指标卡、Top Needs Improvement 表格、按支柱的详细表格与柱状图。
  • 可导出 HTML 报告(Step 5),与内联结果共用同一份规范 JSON,保证分数一致。

使用方式

前置条件

  • 具有 ACCOUNTADMIN 角色(或可访问 SNOWFLAKE.ACCOUNT_USAGE 的角色)的活动 Snowflake 连接。
  • 账户必须是客户自己的账户(非 Snowhouse/内部账户)。

工作流程

Step 1:确认活动连接

运行查询确认连接并捕获头部元数据:

SELECT
  CURRENT_ACCOUNT()          AS account_name,
  CURRENT_ORGANIZATION_NAME() AS org_name;

若出现权限错误,建议切换到 ACCOUNTADMIN:USE ROLE ACCOUNTADMIN;。若查询本身失败(连接错误、超时),请用户先确认 Snowflake 连接处于活动状态。

随后尝试自动检测账户版本:

SELECT PARSE_JSON(SYSTEM$BOOTSTRAP_DATA_REQUEST('ACCOUNT')):accountInfo:serviceLevelName::STRING AS service_level;

若成功,将返回值映射为版本并作为 EDITION,跳过版本询问;若失败,则回退到询问用户版本。

然后通过 ask_user_question 选择支柱(若版本自动检测失败,还需询问版本)。CUSTOMER_NAME 始终直接使用组织名称,不询问用户确认或提供友好名称。ACCOUNT_NAME 来自 CURRENT_ACCOUNT()。

Step 2:加载参考文件、派发子代理并收集人工输入

  • 2a:并行读取子代理提示模板与所选支柱的 YAML 文件。
  • 2b:先以 run_in_background: true 派发所有支柱子代理,再在子代理后台运行时通过 ask_user_question 收集人工问题。子代理仅处理 type: automated 的检查,跳过 type: manual 的检查。人工问题采用静默收集,不向用户输出任何关于人工检查的文本,直接调用 ask_user_question。问题标题格式为 <Pillar Name>: <Control or Check Name>,选项必须来自 YAML 的 question_options 字段,不得省略或杜撰选项,且不加字母或数字前缀。评分时将用户所选选项文本与控制的 thresholds 字段匹配;“I don't know” 始终映射为 needs_attention。
  • 2c:输出人工结果列表与子代理结果 JSON。若子代理失败,记录该支柱为错误并继续;部分失败时展示成功结果并说明错误支柱,失败支柱最多重试一次(每支柱最多 2 次尝试)。

Step 3:合并并在 CoCo 中内联呈现结果

  • 3a:合并结果。仅人工控制直接使用主代理评分;仅自动化控制使用子代理的控制级评分;混合控制结合人工与自动化检查结果,按控制 thresholds 整体重新评分。
  • 3b:构建规范 JSON 对象(单一事实来源),所有分数均从该结构计数得出,避免内联与 HTML 输出分数不一致。
  • 3c:整体分数指标卡。评分基于控制而非单个检查,整体分数 = 在轨控制数 / 总控制数。按顺序调用 visualize_data metric_card:Card 1 仅输出整体分数;Card 2 输出安全与治理、运营卓越、可靠性;Card 3 输出成本优化、性能。若评估支柱少于 5 个,按相同顺序分配,单卡不超过 3 个支柱。
  • 3d:Top Needs Improvement Items 表格,收集所有 NEEDS_ATTENTION 与 NEEDS_IMPROVEMENT 控制,按严重程度排序,取前 6 项,使用控制名称而非 ID。
  • 3e:按支柱的详细表格,包含标题、领域在轨率柱状图与控制摘要表。

输出语气与严重程度规则

  • 颜色系统仅使用 🟢 On Track、🟡 Needs Improvement、🟠 Needs Attention,不使用红色或红色编码指示器。
  • 禁止使用 “critical”、“high-risk”、“danger”、“failure”、“violation”、“urgent” 等词,改用 “needs attention”、“opportunity for improvement”、“below best practice”、“recommended action”。
  • 必须在整体指标卡之后逐字输出免责声明(斜体):This report is intended to help you evaluate your account against a set of recommended well-architected framework best practices; it is not a comprehensive audit. Results may vary based on the model chosen by the user.

适用场景

  • 客户需要依据 WAF 最佳实践对其 Snowflake 账户进行结构化评估。
  • 项目启动、健康检查或架构评审。

限制

  • 需要具有 ACCOUNTADMIN 角色(或可访问 SNOWFLAKE.ACCOUNT_USAGE 的角色)的活动 Snowflake 连接。
  • 账户必须是客户自己的账户,不能是 Snowhouse/内部账户。
  • 子代理仅处理自动化检查,人工检查需用户回答。
  • 子代理超时后最多重试一次(每支柱最多 2 次尝试)。
  • 评估结果并非全面审计,可能因用户所选模型而异。
  • 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。