ARTICLE · 1116950
为什么AI工具都选Markdown?从技术角度拆给你看
亲爱的小伙伴们,大家好!我是Panson,一名混迹高校二十余年的老IT。
上篇,聊到了Markdown语言。今天,咱们再来说说:为什么AI工具都选了Markdown?
大家知道文件大致分为两类:文本文件和二进制文件。AI读取文件,必然更偏爱文本文件,因为二进制文件需解析结构,否则读到的只是一堆无意义的字节流,所以Word、WPS等二进制文件便直接被排除了。那么,文本文件有哪些可选呐?常用的有txt、html、xml、json、yaml等。
小伙伴浏览开源项目,第一个读的便是readme.md,它就是Markdown文档。上手使用Claude、Codex、Cursor这些AI编程工具的话,可能还会注意到一件事——项目配置文件清一色是Markdown:CLAUDE.md、AGENTS.md、SKILLS.md。
为什么不用TXT、XML、JSON或HTML?这背后不是随便选的,而是Markdown恰好卡在了一个很微妙的位置。
先想一个问题:AI Agent读这些文件时,到底在读什么?它读的不是机器指令,而是项目说明书——有层级、有列表、有代码块、有自然语言说明,一份人看着顺眼、AI看着清楚的操作手册。
换成TXT,标题没了,层级没了,代码和说明混在一起。AI能读,但准确率会下降。因为AI理解文本时,结构本身也是信息——一级标题和正文的重要性不同,代码块和普通段落的处理方式也不同。TXT把这些信息全丢了。
那HTML呢?结构确实强,但太啰嗦。一个一级标题,Markdown打个井号就行,HTML得写一对标签,漏掉一个</div>导致标签没闭合就会整段崩坏。几百字的文档,Markdown像一篇文章,HTML就是一堵标签墙。AI读HTML得先过滤标签再理解内容,多一层处理就多一层出错的可能。XML的语法和要求更加严谨,标签严格区别字母大小写,这些标签对AI来说就是噪音。
JSON呢?它是给机器读的。长段文字得塞进字符串,换行要转义,引号也要转义。想加个编号列表?得写成数组或一条长得离谱的字符串。它天生不适合写自然语言,而AI Agent的配置偏偏需要大量自然语言。
Markdown还有一个其他格式都做不到的本事——YAML头部。开头几行是给程序读的元数据:技能名、分类、触发条件、版本号。后面正文是给人看的操作步骤。一个文件,同时服务两种读者。程序读上面就知道文件干嘛,AI读下面就知道该怎么做。TXT没有分区的概念,HTML能做但正文写起来太痛苦。只有Markdown把结构化数据和自然语言放在一个文件里,谁也不碍谁。
还有一个更根本的原因:AI训练数据里Markdown实在太多了。GitHub上有几亿个README,技术博客几乎都用Markdown,Jupyter Notebook本质上也是Markdown加代码。AI读Markdown时,读的不是陌生格式,而是训练数据里最熟悉的那类文本,准确率天然就高。
这些.md文件本质上是项目的外部记忆。AI Agent每次启动,不需要你口头重复规则——项目怎么跑、测试命令是什么、哪些文件不能改、代码风格是什么,它自己去读就知道了。CLAUDE.md、AGENTS.md这些名字本身也成了约定,看到就知道是什么工具的入口。
它已不只是文件格式,而是一种基础设施。Markdown最终被选中,不是因为别无选择,而是在所有候选里,它恰好是各方面平衡得最好的那一个。