reladraw是一套由开发者jpwalsh234在GitHub开源的图表描述语言,目标用户既包括手画架构图的人类工程师,也包括写架构图的AI代理。项目当前版本0.7.1,采用Apache-2.0授权,仓库自描述为「一种用文本描述图表、由你决定元素放置位置的语言」,随仓库附带一段可在浏览器直接试玩的游乐场(reladraw.github.io/reladraw)。整套工具由TypeScript写成,解析器、求解器、静态SVG渲染器均不依赖运行时,命令行工具接受文本文件并产出独立的SVG图像。
中间地带:相对位置填补Mermaid与draw.io之间的空白
作者在README里把现有工具分成两极:Mermaid、Graphviz、D2属于自动布局派,开发者声明实体和关系,由布局引擎决定谁放哪里;draw.io、Excalidraw、Figma属于绝对定位派,开发者直接拖动像素,复杂图每次修改都要手工重排。自动布局对简单流程图够用,但只要工程师心里有特定画面——比如某个模块必须在右上角而其连接必须从右侧出发——自动布局就给不出答案;绝对定位反过来,让人类改图慢、让AI代理改图更慢,因为代理必须从坐标反推图意,先得把数字还原成图形才能决定改哪些数字。reladraw自称占据中间地带,文件里没有任何坐标,只有相对位置陈述,例如某节点在另一个节点的above-left of、between两个节点之间、level with另一个节点。
求解器与诊断报告:从最小距离到确定性布局
reladraw的核心是把布局视作求解一组最小距离而非执行一段搜索的过程。每个轴是一组最小距离约束,最紧的满足方案由最长路径算法一次性算出,不存在尝试-回退的搜索过程,也不存在两个等价答案。这使得引擎只决定距离、不决定关系,文件里写「在另一节点左侧」就一定在左侧,引擎不能挑哪一侧;当文件确实留下歧义、比如两个簇同时在对方左右,工具不替作者猜,而是给出诊断报告指出哪条陈述没说清。诊断是机器可读的纯文本,不依赖视觉模型:工具会输出 hub overlaps laptop1 或是 edge auth->db crosses 4 edges,代理读到的是一段关于自己写过的文本文件的说明,于是修图就是改文本,不需要渲染、不需要视觉判断、不需要像素算术。
为代理而生的skill与生态
reladraw还很新,不会出现在任何大模型的训练数据里,仓库自带一份Agent Skills格式的skill,通过 npx skills add reladraw/reladraw -g 可以安装给Claude Code、Codex、Cursor、Copilot等代理。README强调:发出Mermaid的代理只能靠渲染回看布局,而发出reladraw的代理能重读自己写下的文本,确认数据库确实在API下方、四台机器确实挂在同步枢纽下面,无须担心两个锚定到不同物体的簇是否重叠、文本是否溢出框、连线是否穿过其它连线——这些问题都由诊断在文本层面指出,代理编辑文本即可。仓库还以Archify、pikchr、Graphviz的rank与cluster、Structurizr四件作品为参照,声明相对位置陈述是有别于自动布局与绝对定位的第三条路。
整体看reladraw补上了一块基础设施空白,在AI代理越来越多地承担画图、改图任务的当下,把「图也是代码」从口号推进到了文本-求解-诊断-重写的完整闭环,Apache-2.0授权也明确欢迎商业复用与改名分叉,作者表示真正有价值的下一步是更多作者贡献难画而现有语法表达不了的图,以此驱动语法本身继续长出新的位置陈述。