用 44 行没有任何坐标数字的纯文本,精准复刻一张原本需要手动拖拽微调的复杂系统架构图,是开源图表项目 Reladraw 0.4.0 在 Hacker News 亮相时交出的答卷。该项目提供了一个不依赖任何第三方运行时包的 TypeScript 解析器、求解器与 SVG 渲染命令行工具,并且在发布伊始就提供了一条安装指令,让 Claude Code 与 Cursor 这类编程智能体能够直接挂载对应的 Agent Skill。很多人把它当成另一个试图挑战 Mermaid 的小众轮子,但真正值得关注的不是它能不能画出更好看的方框,而是它刺破了自动化绘图长期对大语言模型隐瞒的空间表达断层。

困在像素算术与算法黑盒之间

在很长一段时间里,技术人员写图表主要依赖两套截然相反的工具范式,而大模型在两边都会碰壁。

一端是以 Graphviz、Mermaid 和 D2 为代表的自动化排版工具。这类工具的核心逻辑是声明实体和连线,剩下的位置全交由底层图算法计算。D2 官方文档明确说明其元素位置主要仍由底层布局引擎控制,用户给出的位置提示仅仅作为次级参考,排版决定权依然在引擎手中。这种设计对人类写快速草图极其友好,对调用工具的智能体却是噩梦。大模型生成一段 Mermaid 代码,布局完全由黑盒算法在渲染阶段决定;如果模型想让鉴权模块往左挪两格、消息队列放到背后,它既无法在文本中直接表达这个意图,也无法预判改动一段连线会不会导致整个画布发生雪崩式的重新排列。

另一端则是 draw.io、Excalidraw 与 Figma 这类画布工具。draw.io 官方虽然支持直接导入 Mermaid 语法并将其转换为图形对象,但转换后立即落地为可手动拖拽编辑的绝对坐标;Excalidraw 的底层模型同样建立在显式坐标场景上,开源社区通常只能通过外部脚本或定制的调度层追加相对布局能力。人类在图形界面里用鼠标拖拽一个方块只要一秒钟,但大模型面对的是一堆毫无语义的绝对像素数值。要修改一张包含几十个组件的架构图,模型必须先消耗海量计算 token 在上下文里逆向还原出整个平面的几何坐标系,再做冗长的空间算术,稍有偏差就会出现图元重叠。

两极范式与大模型空间推理困境 自动排版引擎 (Mermaid / D2) · 机制:仅声明逻辑关系,算法黑盒计算位置 · D2 文档证实:位置提示仅作为引擎次级参考 · Agent 代价:无法预测渲染结果,改动易全局坍塌 本质缺陷:空间排版对文本编辑者完全不可见 绝对坐标画布 (draw.io / Excalidraw) · 机制:显式像素数值,社区外挂脚本补齐相对能力 · draw.io:导入文本后转为绝对坐标手动拖拽 · Agent 代价:被迫在内存中做逆向几何计算 本质缺陷:编辑一个节点需要连锁修改全图坐标

一个缺少空间确定性,另一个缺少语义抽象能力。开发者以为是在让大模型画图,其实是在逼它在黑盒猜谜与像素泥潭之间二选一。

把空间排版降维成语义句子

Reladraw 的切入点在于拆解两极的妥协,在纯文本里建立一套不写坐标的相对定位语法。它的源码中没有任何绝对尺寸定义,而是完全依赖 below、right of、level with 这样的相对声明。

在这种设计下,所有语句一律平铺,没有任何嵌套结构,这意味着任何一行改动都不会受到上下文缩进层级的牵制。系统内的间距被定义为最小距离而非固定像素值:当两个组件之间被插入第三个组件时,原有两个组件会被恰好推开所需的距离;删去中间组件,两侧会自动收拢。这相当于把以往人类在画布上推拉图元、或者程序员反复微调布局外边距的动作,交由数学上的最长路径算法直接确定性求解。

决定图元相对关系的是文本句子,计算具体间隙的是无搜索求解器。
Reladraw 相对语义管线 1. 相对空间声明 平铺语法,无坐标无嵌套 node api below ui 2. 约束系统求解 最长路径确定紧凑布局 最小距离弹性伸缩 3. 确定性矢量输出 独立 SVG 文件直接产出 排版可读,支持回读检验

这种语法的真正买家不是日常随手画图的工程师,而是被集成进编辑器终端的自动化 Agent。大模型在处理这类格式时,不需要视觉模型参与渲染反馈,它只需要重读自己刚才生成的代码,就能在逻辑层明确确认“数据库位于 API 接口的正下方”。原本昂贵的视觉空间运算,被彻底降维成了纯粹的文本语句替换。


极早期的粗糙度与代码漂移的现实死穴

虽然设计立意清晰,但眼下的 Reladraw 还停留在极其初级的阶段。npm 检索记录显示其曾收录为 0.2.0 版本,包描述为“a diagram language where placement is stated, not computed”,哪怕升级到作者当前的 0.4.0 版本,生态与成熟工具相比依然有着明显的代际差距。

作者自己并不避讳当前的妥协:目前的排版引擎在西文字体渲染上仍显粗糙;连线如果未指定具体的出入端点,就会直接从节点中心穿透障碍物拉出一条直线;更致命的是当前缺乏机器可读的诊断报错。大模型能够读懂文本里的逻辑位置,却无法获知渲染后的物理灾难——当两个不同模块各自挂载子节点并发生尺寸膨胀时,生成的 SVG 可能会直接叠在一起,而模型对此一无所知。

项目现状与落地门槛扫描 0.4.0 版本迭代极早期 npm 曾收录 0.2.0,语法仍在剧变 0 预训练 语料沉淀空白 高度依赖 Prompt 与外挂 Skill Drift 图码漂移死穴 缺乏与抽象语法树的双向校验

相比技术细节的不完备,更大的阻力来自软件工程本身的人性惯性。在 Hacker News 围绕自动化架构图的讨论中,开发者最尖锐的批评始终指向图表与代码的持续漂移。不论是用绝对坐标还是相对语法,只要架构图需要独立维护,它在项目迭代中就会迅速沦为第二事实来源。随着真实业务逻辑不断演进,大模型推断出的架构依赖关系往往掺杂着没有经过代码验证的幻觉,最终画出一张语法无懈可击、现实中却早已失真的漂亮图纸。

  • 风险.若不能打通代码抽象语法树实现双向联动,相对语法最终只会沦为又一套需要人工手动对齐的文本负担。

《荀子》尝言:“形具而神生,好恶喜怒哀乐臧焉。”图表之所以存在,是为了承载系统的运行逻辑,而不是为了展示排版算法的巧思。Reladraw 展现的价值在于它指出了生成式 AI 时代一种新的工具构建思路:未来的专用领域语言不再需要向人类的打字直觉过度妥协,也不必逼着模型去模拟人类的肉眼排版,把空间关系剥离成清晰可判定的语义中间件才是正途。但要真正让开发者放心地把图纸交给终端智能体,仅靠一个轻巧的求解器还不够,必须等到它能反向检验真实代码的那一天。