把需求、文档和代码,变成真正像云厂商官方案例的可交互架构图。
这是一个遵循开放 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。
- 公共图标直接使用:搜索结果自带厂商、版本、路径和 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。
支持 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 官网常见的图标、分层边界和多通道技术图; 右侧是适合解释职责、数量和业务含义的 Archify 彩色卡片图。
| AWS 风格(技术部署图) | 通用卡片风格(业务说明图) |
|---|---|
| JSON · HTML | JSON · HTML |
| Google Cloud 风格 | Azure 风格 |
|---|---|
| JSON · HTML | JSON · HTML |
| 华为云风格 | 阿里云风格 |
|---|---|
| JSON · HTML | JSON · HTML |
| 腾讯云风格 | 火山引擎风格 |
|---|---|
| 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
规则约束:
- provider 和 service slug 只使用小写 ASCII kebab-case。
- 新图标引用包含 provider、version、key 和 SHA-256;
latest只用于发现版本, 已保存的图不会跟随它静默换图。旧版稳定 ID 继续保持兼容。 - 别名可包含英文缩写、英文全名和中文;架构 JSON 使用搜索返回的完整
icon对象,不能把模糊别名当成图标引用。 - 同一短别名可能属于多家云,例如
ecs、vpc、monitoring;Agent 查询可以 返回多个结果,创作时不得依赖模糊别名。 - 每个来源必须声明
source.tier,不能把社区镜像写成官方包。 - 版本目录不可覆盖,主 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。第三方资产见 THIRD_PARTY_NOTICES.md。