假设你正让 AI 助手画一张 AWS 架构图。你描述完需求,它很快给出一张像模像样的图,但你仔细一看:那个服务名在 AWS 里根本不存在,两个箭头指向的关系也违反常识。这种“看着专业、实际经不起推敲”的图,比没有图更危险。ArchLex 就是冲着这个问题来的。

ArchLex 是一门小型开源语言(DSL,领域特定语言,针对特定问题域设计的专用语言),专门用来描述 AWS、GCP、Kubernetes 上的云架构。它不把架构图当成一堆方框和箭头,而是理解每个节点的真实含义:api-gateway 是 API 网关,lambda 是函数计算,dynamodb 是数据库,它们之间的 invokes、writes 是带类型的关联。这种语义化建模让工具可以做两件普通绘图工具做不到的事:校验和精确渲染。

看一段真实语法:

```

provider aws

api: api-gateway

worker: lambda

data: dynamodb

api -[invokes]-> worker

worker -[writes]-> data

```

这段代码声明 provider 是 aws,定义三个资源,再用 -[invokes]-> 和 -[writes]-> 表达关系。整个图就是纯文本,所以放进 Git 里 diff 非常清晰。你改了哪个资源、哪条连线,一眼就能看出来。渲染结果是官方图标 SVG(可缩放矢量图形,用 XML 描述的矢量图格式),不是手绘风格,而且生成是确定性的——同一份源码永远得到同一张图,方便在 code review 中对比。

更关键的是它给 AI 助手用。ArchLex 提供了一个 MCP server(MCP 是 Model Context Protocol,让 AI 助手连接外部工具的标准协议),Claude、Cursor、Codex 都可以通过远程 HTTP 地址接入。接入后,AI 生成的架构图会经过 ArchLex 校验,资源名必须是真实存在的云服务,关系必须符合云平台规则,不会出现幻觉。配置方式很简单:`claude mcp add --transport http archlex https://mcp.archlex.dev/mcp`,或者写进 `.cursor/mcp.json`、`.vscode/mcp.json`。甚至可以让 agent 自己完成设置。

除了 MCP,项目还支持 SKILLS.md 标准(一种用 Markdown 给 AI 助手定义技能的开放规范),通过 `npx skills add baires/archlex` 安装技能包,让 agent 学会 render_diagram、validate_diagram 等操作,以及完整的语法规则、关系类型、包含范围(账号、区域、VPC、子网)和诊断方法。这意味着 agent 不只是画图,还能理解架构的层级边界。

如果你不想经过 AI,也可以直接用 npm 包。`@archlex/core` 是核心渲染引擎,`@archlex/aws`、`@archlex/gcp`、`@archlex/k8s` 分别是各云厂商的 provider。代码示例:

```

import { render } from "@archlex/core";

import { awsProvider } from "@archlex/aws";

const result = await render(source, {

providers: [awsProvider],

validation: "normal",

});

document.querySelector("#diagram").innerHTML = result.svg;

```

包很轻量,零原生二进制依赖,浏览器和 Node.js 都能跑。

这个项目的思路值得借鉴:把“画图”从视觉问题变成语义问题。传统工具让你拖拽方框,ArchLex 让你描述架构本身。对于需要频繁更新架构图的团队,文本源 + 校验 + 官方图标这套组合能省下大量维护成本。你可以把它用在文档自动生成、架构评审、AI 辅助设计等场景。要注意的是,DSL 本身需要一点学习成本,而且目前主要覆盖 AWS、GCP、K8s,其他云平台需要自己扩展 provider。项目采用 MIT 协议,无需注册账户。

阅读原文 → 返回 AI 技术文档

内容与图片版权归原作者所有 · 原文: https://archlex.dev/