Skip to content

Repository files navigation

Archify Cloud Icons

把需求、文档和代码,变成真正像云厂商官方案例的可交互架构图。

MIT License Node 18+ Providers Public icon registry

这是一个遵循开放 Agent Skills 目录约定的多云架构图 Skill。它在 tt-a1i/archify 的单文件 HTML、交互、播放和 导出能力之上,增加了版本化云图标、七套独立的厂商参考语法,以及可阻止线条穿过 节点、标题和标签的发布级验证。

生成物不是一张锁死的图片:它是可缩放、可检索、可播放引导路径,并可导出 PNG/JPEG/WebP/SVG/WebM 的独立 HTML。JSON 源文件继续作为可审阅、可复现的 架构事实层。

代码采用 MIT License。云厂商图标、产品名和商标仍属于各自权利人,只用于 架构图和技术文档;它们不因本仓库的 MIT License 而被重新授权。

一句话开始

安装后,直接告诉 Agent 你想画什么、用哪种风格:

根据我的业务和文档,画一张 AWS 风格的架构图。
我有一个电商业务,帮我画一张 AWS 风格的架构图。
把这份方案画成华为云风格的架构图。

也可以说“亚马逊风格”“谷歌风格”“微软风格”“阿里风格”或“火山风格”。 不需要记 reference、模式 ID,也不需要一段固定提示词。 Skill 负责选择对应的绘图模式、查找图标、编排线路,并交付 JSON、HTML 和检查结果。 需要在未自动发现 Skill 的工具里手动选择时,选择 archify-stencil-icons 即可。

风格决定画法,不决定你的架构内容。Account、Region、VPC、AZ、Subnet、SG、监控 和 CI/CD 都按项目事实绘制,不会为了凑齐示例而添加不存在的资源。

七种云厂商风格

architecture_style 不只换图标和颜色。渲染器会改变边界形状、节点结构、布局 节奏、线路语义和分组方式,并通过测试锁定这些差异。七种模式都不限定业务场景: Web、电商、AI、数据平台、安全、网络、迁移、灾备、DevOps 或其他系统都可以使用。 Agent 会保留项目事实,再用所选厂商的视觉语法重新编排;下面最后一列描述的是 风格表达重点,不是使用范围。

风格 不是这样 实际生成语法 风格表达重点
AWS 风格 彩色业务卡片 Account / Region / VPC / AZ / Subnet / SG 多层边界,官方彩色服务图标,多通道技术布局 部署层级、流量、数据、运维与交付通道
Google Cloud 风格 AWS 边界换 GCP 图标 Organization / Project / Region 解决方案卡片,Google 蓝色标题节奏,编号路径 项目归属、区域方案块与关键路径
Azure 风格 通用云框 Subscription / Resource Group 与 Hub-Spoke VNet,规整中性图标砖 企业治理层级、中心辐射网络与混合连接
华为云风格 橙色卡片或蓝色方块 VPC / Network ACL / Subnet / SG 分层,真实路由表,未滤色的华为产品图标 网络边界、路由表与云上/本地连接关系
阿里云风格 单色服务列表 Region / VPC / AZ / vSwitch,数据面与控制面分离,橙/绿/蓝路径各有语义 vSwitch 分区以及数据面、服务面、控制面
腾讯云风格 平面蓝框 Smart Advisor 风格的立体 VPC/AZ 平面、资源方块与治理平面 立体资源关系、可用区布局与治理风险
火山引擎风格 两个空 VPC 框 深蓝 VPC、虚线子网、青蓝主路径,完整 EIP/CLB/双 AZ/数据库/日志备份拓扑 入口、应用、数据和运维链路的多 AZ 展开

这些语法由本项目依据公开的官方规范和代表性案例实现,不是云厂商官方模板或 背书。研究依据和每种模式的强制规则见 Provider Reference Styles。

为什么它适合 Agent

  • 公共图标直接使用:搜索结果自带厂商、版本、路径和 SHA-256 锁定引用, 不受本地固定 ID 清单限制;旧版命名空间 ID 继续兼容。
  • 来源和版本可追溯:每个 provider 记录来源级别、版本/Revision、上游路径与 SHA-256;社区镜像绝不会被写成官方包。
  • 用户不需要下载 ZIP:Agent 从公开 GitHub 注册表按需读取单个 manifest 或 SVG。上游材料已通过 EC2 工作流按版本归档,网页素材另行注明采集范围。
  • 图标不会缩成小点:普通节点使用独立 32 单位图标轨道;参考模式按语法放大 到 38–64 单位,并把服务名放在图标下方或旁边。
  • 播放不是装饰按钮:只要提供 meta.views,便可逐路径播放、跟随镜头并显示 说明;显式播放不依赖环境中的持续动画开关。
  • 失败会被阻止:Schema、图标来源、边界包含、端点方向、线条穿越、标签碰撞、 浏览器溢出和可读性都在交付前检查。
  • 一份 Skill,多 Agent 共用:SKILL.md、schemas、renderers 和 scripts 是 厂商中立的执行契约;Codex、Claude Code、Cursor、GitHub Copilot 等只使用各自 的发现入口。

来源与传承

  • 目录遵循 GitHub、Claude Code、Cursor 等工具共同支持的开放 Agent Skills 约定。
  • 渲染器和交互基于 tt-a1i/archify 的 MIT 代码,并保留其“独立 HTML + 交互 + 导出”的核心思路。
  • AWS、Google Cloud、Azure、腾讯云来自厂商公开官方包;华为云来自 Huawei Cloud 官方区域组织维护的 draw.io libraries。
  • 阿里云目前来自带明确声明的厂商矢量社区镜像;火山引擎来自固定的官网公开资产, 因其没有公开完整架构图标 ZIP,两者都不会被描述成官方完整包。
  • draw.io 提供了早期 stencil 兼容思路;若厂商有官方包,本项目优先官方资产,不用 第三方近似图标替代。

完整来源见 THIRD_PARTY_NOTICES.md 和 provider-icons/catalog.json。

通用 Agent 安装

支持 skills CLI 的 Agent 可以直接安装:

npx skills add xiaosu19/archify-cloud-icons -g

需要明确控制目录或同时兼容多个 Agent 时,使用仓库自带安装器:

git clone https://github.com/xiaosu19/archify-cloud-icons.git \
  ~/.agents/skills/archify-stencil-icons
cd ~/.agents/skills/archify-stencil-icons
./scripts/install-agent-skill.sh

日常生成只需要 Node.js 18+,不需要安装开发依赖;npm ci 仅在开发或重新生成 校验器等维护工作时使用。

安装器不会复制五份仓库,也不会覆盖已有目录;它把同一 checkout 安全映射到:

Agent Skill 入口
通用 Agent Skills / Cursor / GitHub Copilot ~/.agents/skills/archify-stencil-icons
Codex ~/.codex/skills/archify-stencil-icons
Claude Code ~/.claude/skills/archify-stencil-icons
Cursor ~/.cursor/skills/archify-stencil-icons
GitHub Copilot CLI ~/.copilot/skills/archify-stencil-icons

重启对应 Agent 后即可按名字调用 archify-stencil-icons。需要全局 archify 命令时再执行:

cd ~/.agents/skills/archify-stencil-icons
npm link

也可以不安装全局命令,直接运行:

node bin/archify.mjs icons "Aurora" --provider aws --json
node bin/archify.mjs icons "Secrets Manager" --provider aws --json
node bin/archify.mjs icons "ECS" --provider huawei-cloud --json

默认查询公共图标库,不再先查本地子集。 搜索结果里的 icon 对象可直接放进 架构 JSON:渲染器按需获取单个文件,校验版本、清单和 SHA-256,再内嵌到 HTML。 Aurora、Secrets Manager、SageMaker 等图标不需要先登记到本地白名单;华为云 draw.io 图标库也会按条目名称搜索,而不是只列出 XML 文件。

已验证的下载会缓存,成品离线可用。只有显式 --local 才查询旧版内置子集,不能 把它的文件数量当成完整公共库的规模。网络或校验失败会明确报错,不会把 Secrets Manager 换成 KMS。工作流、缓存与来源限制详见 公共图标库使用说明。

在图中使用

普通用户不需要写下面的 JSON;Agent 会把公共搜索结果中的 icon 对象直接放入 节点。对象固定了来源、版本、路径和校验值,不需要用户维护图标清单。

已有 JSON 的命名空间字符串仍然兼容(用于旧文件和显式离线子集):

{
  "id": "compute",
  "type": "cloud",
  "label": "Compute Engine",
  "icon": "gcp:compute-engine",
  "row": 0,
  "col": 1
}
供 Agent / JSON 作者使用:风格名称与内部模式映射

用户只需要说风格名称。Agent 可用名称解析器获取内部模式和正确示例:

node bin/archify.mjs styles "AWS 风格" --json
node bin/archify.mjs styles "华为风格" --json

选择器返回 meta.architecture_style、图标命名空间和示例路径;未知名称不会静默 降级成通用卡片。AWS 风格的内部 JSON 表达如下(仅用于 architecture 图):

{
  "meta": {
    "title": "AWS Production Architecture",
    "architecture_style": "aws-reference",
    "quality_profile": "showcase"
  }
}

其他云使用对应模式。注册表中的源图标保持不可变;Huawei 等模式直接显示原始 彩色资产,Alibaba、Tencent、Volcengine 模式可在渲染场景中使用文档化的单色线稿 处理,但不会改写或重新发布源文件:

风格名称 内部 architecture_style 图标前缀
AWS 风格 / 亚马逊风格 aws-reference aws:
Google Cloud 风格 / 谷歌风格 gcp-reference gcp:
Azure 风格 / 微软风格 azure-reference azure:
华为云风格 / 华为风格 huawei-reference huawei-cloud:
阿里云风格 / 阿里风格 alibaba-reference alibaba-cloud:
腾讯云风格 / 腾讯风格 tencent-reference tencent-cloud:
火山引擎风格 / 火山风格 / 字节风格 volcengine-reference volcengine:

交付前校对用户选择与实际 JSON,避免漏写模式而回到通用卡片:

node bin/archify.mjs styles "AWS 风格" --check input.architecture.json --json

若通过 JSON 精确控制,设置 meta.architecture_style;外层查看器的 meta.visual_preset 是独立选项,不能代替云厂商架构风格。

名称解析与选型检查不替代图标、布局或浏览器检查,也不能证明每一种 Agent 都已 正确加载 Skill。内部 ID 保持兼容,已有 JSON 不需要改名。

架构图风格示例

README 中直接展示经过浏览器检查的浅色预览;点击图片可查看对应的单文件 HTML 源码,下载后即可播放引导路径、缩放和导出。每张图旁边都保留可复用的 JSON 输入。

AWS 风格与通用卡片风格

这两种风格不能混用名称:左侧是 AWS 官网常见的图标、分层边界和多通道技术图; 右侧是适合解释职责、数量和业务含义的 Archify 彩色卡片图。

AWS 风格(技术部署图) 通用卡片风格(业务说明图)
AWS enterprise reference architecture Archify classic MSP architecture
JSON · HTML JSON · HTML

其他云厂商风格

Google Cloud 风格 Azure 风格
Google Cloud reference architecture Microsoft Azure reference architecture
JSON · HTML JSON · HTML
华为云风格 阿里云风格
Huawei Cloud reference architecture Alibaba Cloud reference architecture
JSON · HTML JSON · HTML
腾讯云风格 火山引擎风格
Tencent Cloud reference architecture Volcengine reference architecture
JSON · HTML JSON · HTML

选择依据、厂商边界术语和官方研究链接见 Provider Reference Styles。

AWS 层级边界使用固定语义,不需要用普通卡片假装:

{
  "boundaries": [
    { "kind": "account", "label": "AWS Account", "wraps": ["vpc", "ec2"] },
    { "kind": "region", "label": "ap-southeast-1", "wraps": ["vpc", "ec2"] },
    { "kind": "vpc", "label": "10.0.0.0/16", "wraps": ["vpc", "ec2"] },
    { "kind": "availability-zone", "label": "ap-southeast-1a", "wraps": ["ec2"] },
    { "kind": "subnet", "label": "10.0.10.0/24", "wraps": ["ec2"] },
    { "kind": "security-group", "label": "app-sg", "wraps": ["ec2"] }
  ]
}

复杂 AWS 图应给边界显式 pos 与 size,把业务流、CI/CD 和监控告警放在互不 争抢的走线通道;自动 pad 仅适合简单示意图:

{
  "kind": "vpc",
  "label": "Amazon VPC · 10.0.0.0/16",
  "wraps": ["alb", "ecs", "rds"],
  "pos": [420, 160],
  "size": [760, 360]
}

完整输入和已验证的单文件 HTML 在 AWS 风格示例 JSON 与 AWS 风格示例 HTML。

渲染并检查:

archify validate architecture input.architecture.json --quality showcase --json
archify deliver architecture input.architecture.json output.html --quality showcase --json
archify visual-check output.html --json

图标存放规则

主数据存放在公共 GitHub 注册表;本地 provider-icons/ 仅保留旧版离线兼容快照, 不是新图标的登记入口,也不是完整图标库。旧快照结构为:

provider-icons/
  catalog.json
  index.json
  <provider>/
    latest.json
    <version>/
      manifest.json
      assets/
        <provider>-<service-slug>.svg

GitHub 注册表路径固定为:

providers/catalog.json
providers/index.json
providers/<provider>/latest.json
providers/<provider>/<version>/manifest.json
providers/<provider>/<version>/icons/<provider>-<service-slug>.svg

完整源包与逐文件清单固定为:

source-sets/index.json
source-sets/<provider>/<version>/archive/<upstream-package>
source-sets/<provider>/<version>/assets/<upstream-relative-path>
source-sets/<provider>/<version>/complete.json
source-sets/<provider>/<version>/complete.json.gz
source-sets/volcengine/<version>/web-icons.complete.json
source-sets/jobs/<ec2-instance-id>.log

公共注册表:

https://github.com/xiaosu19/archify-cloud-icon-registry
https://raw.githubusercontent.com/xiaosu19/archify-cloud-icon-registry/main/providers
https://raw.githubusercontent.com/xiaosu19/archify-cloud-icon-registry/main/source-sets/index.json

例如:

.../providers/gcp/latest.json
.../providers/gcp/2025-08-22/manifest.json
.../providers/gcp/2025-08-22/icons/gcp-compute-engine.svg

规则约束:

  1. provider 和 service slug 只使用小写 ASCII kebab-case。
  2. 新图标引用包含 provider、version、key 和 SHA-256;latest 只用于发现版本, 已保存的图不会跟随它静默换图。旧版稳定 ID 继续保持兼容。
  3. 别名可包含英文缩写、英文全名和中文;架构 JSON 使用搜索返回的完整 icon 对象,不能把模糊别名当成图标引用。
  4. 同一短别名可能属于多家云,例如 ecs、vpc、monitoring;Agent 查询可以 返回多个结果,创作时不得依赖模糊别名。
  5. 每个来源必须声明 source.tier,不能把社区镜像写成官方包。
  6. 版本目录不可覆盖,主 Skill 只消费固定 manifest 和 Raw GitHub URL。

贡献更多图标

如果你有更多云厂商素材、官方图标包,或者发现现有图标缺失、过期,欢迎提交到 独立的公共图标库:

提交时请说明素材来源、厂商、版本与许可信息,并尽量提供原始 SVG。图标库通过 版本化目录、SHA-256 和 manifest 保证来源可追溯;请勿提交账号凭证、访问密钥、 可执行网页 bundle 或来源不明的素材。

当前来源级别

下表是固定版本的源文件统计,包含尺寸、格式、配色等变体,不是独立服务数。 华为的单个 XML 库还包含多个图标条目;最新可查询范围以公共清单为准。

Provider Namespace 来源级别 当前版本 完整源文件 / 图标候选
AWS aws official-package 2026-07-31 8,277 / 7,882
Google Cloud gcp official-package 2025-08-22 89 / 38
Microsoft Azure azure official-package v24-2026-07-09 716 / 714
Huawei Cloud huawei-cloud official-provider-repository 52c33aa 34 / 31
Alibaba Cloud alibaba-cloud community-mirror-of-vendor-vectors 2022-orange-d56df9d 811 / 808
Tencent Cloud tencent-cloud official-package 2024-03-07 896 / 896
Volcengine / ByteDance volcengine official-web-assets web-2026-09-02 188 / 188¹

¹ 火山引擎没有公开官方架构图标 ZIP。“完整”限定为在临时 EC2 中从固定官网 bundle 发现的全部 SVG 引用和明确产品图标记录;可执行网页 bundle 不进入公开仓库。190 个 有效引用中成功镜像 188 个,另外两个上游地址分别返回 404 和 403,并保留在失败 清单中,不能对外表述为火山引擎官方完整架构图标包。

License

代码见 LICENSE。第三方资产见 THIRD_PARTY_NOTICES.md。

About

Agent-friendly multi-cloud architecture diagrams with versioned provider icons and an AWS reference style.

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages