本文永久链接https://tonybai.com/2026/09/10/d2-goes-nonprofit-tala-open-sourced

大家好,我是Tony Bai。

【导读】

D2,那个和Mermaid齐名、被很多工程师用来画架构图的文本转图表工具,这周连发两条重磅公告:母公司Terrastruct停止运营,创始人把D2整体捐赠给Hack Club,项目转为完全免费、非营利、开源;紧接着,原本要靠付费才能用的核心资产——自动布局算法TALA,也以和D2主项目相同的协议开源了。

更值得玩味的是,创始人顺带官宣:以后D2的代码贡献将全部交给AI来写,但明确表示“不做MCP、不做API、不做LLM插件”。一个开源项目在被砍掉商业化收入之后,是怎么想清楚“以后要做什么、坚决不做什么”的?

如果你写过软件架构图,大概率见过D2。它用一段纯文本描述节点和连线,编译成SVG,语法比Mermaid更贴近“画图”的直觉,社区一直把它称为Graphviz、Mermaid、PlantUML的有力挑战者。

就在这周,D2项目连发两篇博客,信息量都不小:

  • 9月5日,《D2 is non-profit》:母公司Terrastruct停止运营,D2作为独立、非营利、完全开源的项目,由Hack Club提供财务代管。
  • 9月7日,《TALA is open-source》:曾经的付费核心资产、自研自动布局算法TALA正式开源。

这两件事放在一起看,比单独看任何一件都更有意思。下面详细拆解。

【文章要点】

  • 商业公司退场与非营利转型:D2 母公司 Terrastruct 宣布关停,创始人将 D2 项目整体捐赠给知名非营利组织 Hack Club 进行财务代管,全面转向 100% 免费、完全开源的治理模式;
  • 核心资产 TALA 算法同步开源:自研三年、此前作为核心商业造血产品的正交自动布局算法 TALA,随 D2 v0.9.0 同步以 MPL-2.0 协议开源,支持在浏览器本地纯前端运行;
  • 前沿的“全 AI 驱动开发”宣言:创始人宣布 D2 下一阶段的所有代码贡献将完全由 AI 编写与交叉审核,彻底告别手写代码,但对外沟通与技术博客依然坚持 100% 人类纯手工撰写;
  • 极度克制的“三不做”产品哲学:面对 AI 扩张诱惑,主动划定非目标边界——不做臃肿的万能绘图工具、不内置大模型对话套壳、不做任何依赖服务器的能力(不做 MCP、不做 API、不做云端账户系统);
  • 专为 AI 时代赋能的混合布局:TALA 支持节点坐标的部分或全部锁定,由大模型确定方块大致位置,算法自动兜底美学排版与复杂连线路由,成为 Agent 时代“文本生成图形”的最佳基础设施。


一图读懂:这周到底发生了什么

D2从商业开源核心到独立非营利项目,经历了如下几个关键事件和时间节点:

  • 多年积累 : D2语言开源免费D2 Studio(付费IDE)与TALA(付费布局算法)负责商业化造血
  • 2026年6月 : 开源社区围绕“AI灌水式贡献”产生广泛争议(大环境铺垫,非D2项目本身事件)
  • 2026年9月5日 : Terrastruct停止运营,创始人将D2整体捐赠给Hack Club,D2转型为非营利、完全开源项目
  • 2026年9月7日 : TALA自动布局算法开源,与D2主项目同用MPL-2.0协议

简单说:过去D2走的是典型的“开源核心(open-core)”路线——语言本体和编译器免费开源,靠闭源的可视化IDE“D2 Studio”和自研布局算法“TALA”两个付费产品养活团队。现在,养它的商业公司没了,项目本身没有跟着一起消失,而是被“捐”给了非营利组织,原来收费的TALA也一起开源了。

发生了什么:从“开源核心 + 商业增值”到“完全非营利”

D2创始人在公告中说得很直白:项目诞生和发展至今,一直是一家营利性公司旗下的开源核心业务,靠闭源的D2 Studio和TALA养活开发。现在公司要关停,D2会作为独立的、完全开源的非营利项目继续存在,由Hack Club提供财务代管(fiscal sponsorship)。

创始人表示会继续维护和改进D2,但坦言自己的时间投入会比过去有限,这已经不是他的主业了;如果有人愿意成为维护者,高质量的维护和贡献甚至可能进入由捐赠资金支付的合同关系,他认为这对有开源经验的早期职业开发者会是个不错的机会。

这里有个关键背景信息值得补充:根据D2官方的Sponsor说明页面,D2目前是由The Hack Foundation(Hack Club背后的501(c)(3)非营利组织)提供财务代管,捐赠在美国可以抵税;创始人和另一位共同创始人都不会从这笔基金中拿到任何报酬,资金去向完全公开可查。

钱从哪来、花到哪去:D2的治理与资金结构

这套结构和很多“公司捐赠开源项目给基金会”的先例(比如一些项目转投Linux基金会、Apache基金会)逻辑类似,核心是把项目的存续和某一家公司的商业命运脱钩。创始人特别强调:赞助D2不会影响项目的路线图、治理方式或许可证,D2依然是MPL-2.0协议下的开源项目,开发全程在GitHub上公开进行。

创始人的表态:写代码的时代结束了,AI来写

公告里最引发讨论的一段,是创始人对D2下一阶段开发方式的定调:

这一阶段的D2,靠的是纯手写代码。这个时代结束了。下一阶段的D2将由AI驱动——我的所有代码贡献都会使用AI完成,也欢迎社区提交AI生成的贡献,我会用AI去审核AI提交的内容。唯一的例外是文字内容:所有博客文章和对外沟通,我都会亲自撰写,不使用AI。

他给出的理由是效率:过去十多年他几乎每天都在写代码,但过去一年里,虽然仍在和软件打交道,却一行代码都没有亲手写过。他认为AI能把过去因为工程人力有限而只能停留在设想阶段的功能真正做出来,比如等距渲染器、从其他画图语言迁移过来的转译器等。

值得肯定的是,创始人并没有回避这个决定的争议性。他在公告中直接引用了开源维护者Neil Alexander今年6月的一篇博客《Please stop flooding our projects with AI slop to furnish your CV》[4]。那篇文章描述了一个真实但让人不太舒服的现象:不少开源项目最近收到大量由AI代写、贡献者本人几乎没有实质投入的PR和漏洞报告,有人怀疑这背后是有人在“刷GitHub简历”,Neil Alexander本人后来直接关闭了三个这样的PR,不作评论。

D2创始人的态度是:我知道这样做有争议、有代价,我不是在向任何人推荐这么做,只是想坦诚地把自己的计划告诉依赖D2的社区。这种“先把丑话说在前面”的坦率,某种程度上也是这篇公告本身比较少见的地方。

“三不做”:一份克制的产品哲学

有意思的是,创始人在拥抱AI提效的同时,反而给项目定了更严格的边界,公告里专门开了一节叫“Non-goals”(非目标):

  1. 不做臃肿的万能画图工具。他坦言AI确实能让他轻松把D2做成一把瑞士军刀,但他更愿意把“算力预算”花在打磨一个小而精的核心功能集上,而不是盲目堆功能——比如即便实现起来很简单,他也不打算给D2加维恩图(Venn diagram)这种明显偏离软件架构图定位的功能。后续会考虑做插件/模块系统,把这类“不属于D2核心”的功能挪到外部去。
  2. 不在D2里内置LLM接口。他的判断是,现在的模型已经足够聪明,只需要看几个示例,就能把用户的需求、代码或规格说明转成一份.d2源文件,不需要再给D2专门做一个调教过的LLM对话界面。
  3. 不做任何需要服务端的能力。因为D2现在是非营利项目,不会去支撑需要服务器的功能:不做MCP、不做API、不做用户账户系统、不做服务端渲染、不做多人协作。D2 Studio会做成纯客户端应用,完全可以离线使用。

这份“三不做”清单,读起来更像是一份克制的产品哲学声明——在拥有更强AI生产力工具的同时,主动给自己设边界,避免把“能做”和“该做”混为一谈。

路线图:接下来重点做三件事

其中第三条格外值得展开。创始人的判断是:现在的大模型已经很擅长“在二维空间里把图画得差不多”,但在自动布局这件事上仍然不够确定、不够可控、不够精确,这个局限短期内很难被彻底解决——所以你仍然需要一份文本化的“图源代码”作为最终产物的底层依据,就像网页仍然需要HTML,而不是靠像素级手绘出来一样。换句话说,D2想成为Agent时代“文本生成图形”的标准底座,而不是被Agent绕过去的旧工具。

重头戏:TALA终于开源了

如果说“转型非营利”是D2这周公告里的第一个重磅消息,那TALA开源就是紧随其后的第二个——而且从产品逻辑上看,这一步几乎是必然的:D2既然已经不再靠商业化生存,那么继续把核心布局算法闭源就没有意义了。

TALA是什么

TALA,全称Terrastruct’s AutoLayout Algorithm,是D2团队自研的一种新型自动布局算法,专门为软件架构图设计。和D2内置的另外两种布局引擎Dagre、ELK不同,TALA走的不是“有向无环图(DAG)逐层展开”的路线,而是一种正交布局(orthogonal layout)算法,视觉效果更接近人在白板上手绘架构图的样子。

TALA的设计目标是同时优化多个“美学”指标,包括对称性、节点间的中位距离、信息流向、同类节点的聚类程度等等,算法本身融合了多篇图绘制学术论文的思路(代码中有引用),再加上团队自己的原创技术。

这次开源之后,TALA使用和D2主项目相同的MPL-2.0协议,代码已经并入D2 v0.9.0,安装后只需在渲染时加上--layout=tala即可启用:

d2 --layout=tala architecture.d2 architecture.svg

不想安装的话,也可以直接在浏览器里体验——D2的官方在线Playground(play.d2lang.com)现在同样支持TALA布局,且完全在客户端本地运行,不经过任何服务器。

TALA vs Dagre vs ELK:什么时候该用哪个

维度 Dagre / ELK(DAG系) TALA(正交系)
布局风格 分层、单向延展,适合长链路流程图 更接近白板手绘的正交布局
稳定性 增删节点后局部变化,整体形态基本稳定 有随机性,同样输入相同种子结果一致,但增加一个节点后可能整体重排
坐标控制 一般由算法全权决定 支持部分或全部节点手动锁定top/left坐标,算法负责剩余部分与连线路由
适用场景 偏“流程”类的长链路架构图、DAG关系图 偏“系统全景”类、需要对称美观的软件架构图;尤其适合AI生成图形后交给算法排版和走线的场景
性能 大图渲染相对线性 图越大耗时增长越快(非线性),大规模图谱场景需注意

官方博客里给出的对比方式也很实在:不是挑几张“TALA赢麻了”的图来秀,而是从GitHub上随手抓了7个真实存在的公开D2项目文件,用完全相同的编译器、完全相同的源码,只切换布局引擎,把TALA、Dagre、ELK三种效果并排放出来,并且坦承“对某些图,你可能反而更喜欢非TALA的布局”。

上图是三种布局引擎横向对比示例(以“Fulcro RAD architecture”项目为例,展示同一份D2源码分别用TALA / Dagre / ELK渲染的效果)

更值得关注的是“坐标可控”这个特性

除了美学效果,TALA这次开源博客里其实埋了一条对AI时代更重要的信息:它支持节点位置和尺寸的自定义,也就是可以给部分或全部节点直接指定坐标(top/left),算法只负责剩下节点的自动摆放以及所有连线的路由(routing)。

创始人特意提到,这个特性“特别适合Agent场景”——大模型在二维空间里摆放几个方块的位置这件事做得不错,但要同时兼顾走线不交叉、间距美观、整体布局协调,目前仍然是模型的弱项。TALA的思路相当于做了一次分工:坐标交给模型(或人)来定,走线和排版细节交给算法来兜底。

第三组示例则演示了“部分锁定 + 部分自动”的混合模式:比如“The Printing Room”这个例子里,4个CMYK印刷工位被固定在同一行、等间距排列,以保持印刷流程的机械对齐感,而进料器、摄像头、配准控制器、烘干设备等另外10个节点则完全交给TALA自动摆放。

TALA不是万能的:官方自己列出的三条权衡

官方博客难得地对自家算法的短板讲得很直接,值得原样记录:

  1. 有随机性。算法默认会用3个种子分别计算布局,选出评分最高的一个;相同种子、相同输入会得到相同结果,但哪怕只多加一个节点,整张图的布局都可能完全变样。相比之下,Dagre和ELK在新增节点后通常只是“见缝插针”地局部调整,整体形态基本不变——这一点在某些场景下反而是TALA的优势,但在需要“图稳定不跳变”的场景下就是明显短板。
  2. 不太擅长处理DAG。官方原话是“我经常发现,当我想要一张长长的、单向流动的图时,还是更愿意用Dagre或ELK”。
  3. 大图渲染更慢,且非线性增长。图越大,TALA相对Dagre/ELK的耗时差距会被进一步拉大。官方给出了专门的基准测试仓库供参考:https://github.com/d2lang/d2-benchmarks 。

这种“既秀成果又主动交代局限”的写法,其实也侧面印证了D2团队一贯的风格——不做过度营销,把选择权交给使用者。

这件事为什么值得开发者关注

抛开“又一个开源项目变动”的表面新闻属性,这次D2的操作组合,至少有三层信息值得留意:

第一,对普通使用者来说是实打实的利好。 原本需要付费才能用的IDE增强能力和高质量布局算法,现在都免费拿到手了,尤其是TALA的坐标锁定特性,对正在探索“用AI批量生成架构图”的团队会很有吸引力。

第二,它给“开源项目如何摆脱单一商业公司依赖”提供了一个具体案例。 不是项目直接停止维护,也不是简单换个东家卖掉,而是通过基金会财务代管的方式,把项目的存续和某一家公司的经营状况彻底解绑,资金去向公开透明可查,这种治理结构对其他面临类似困境的开源项目有参考价值。

第三,创始人对“AI驱动开发”的坦率表态,本身就是一次公开的实践样本。 他没有回避AI贡献可能带来的质量风险和社区信任问题,反而主动引用了争议文章、承认这样做有争议,同时用“三不做”给项目划了清晰边界——这种“拥抱效率、但拒绝盲目扩张”的姿态,或许比技术细节本身更值得同行讨论。

小结

D2这次的两连发公告,信息密度其实很高:一家公司关停、一个项目转型非营利、一套曾经的商业资产开源、一份关于AI驱动开发的坦率宣言、外加一份克制的产品边界声明,全部发生在同一周。对已经在用D2的团队来说,最直接的动作是升级到v0.9.0,把--layout=tala跑一遍试试效果;对关注开源治理和AI原生开发范式的朋友来说,这或许是一个值得持续跟踪的样本项目。

如果你也认可D2这种“非营利+完全开源”的路线,可以通过官方渠道进行捐赠,资金用途公开可查:https://hcb.hackclub.com/d2 。

参考资料

  • [1] D2 is non-profit:https://d2lang.com/blog/d2-non-profit/
  • [2] TALA is open-source:https://d2lang.com/blog/tala-is-open-source/
  • [3] Sponsor D2:https://d2lang.com/sponsor/
  • [4] Please stop flooding our projects with AI slop to furnish your CV:https://neilalexander.dev/2026/06/30/flooding-contributions
  • [5] D2项目GitHub仓库:https://github.com/d2lang/d2
  • [6] TALA性能基准测试仓库:https://github.com/d2lang/d2-benchmarks

还在为写 Agent 框架频频死循环、上下文爆炸而束手无策?我的新专栏 从0 开始构建 Agent Harness 将带你:

  • 抛弃臃肿框架,回归“驾驭工程 (Harness Engineering)”的第一性原理
  • 用 Go 语言手写 ReAct 循环、并发拦截与上下文压缩引擎等,复刻极简OpenClaw
  • 构建坚不可摧的 Safety Middleware 与飞书人工审批防线
  • 在底层实现 Token 成本审计、链路追踪与自动化跑分评估
  • 从“调包侠”进化为掌控大模型边界的“AI 操作系统架构师”

扫描下方二维码,开启从 0 开始构建Agent Harness 的实战之旅。


还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。