为什么 AI 聊天机器人会说 Markdown
如果您曾与 ChatGPT、Claude、Gemini 或任何现代 AI 助手(包括本网站右下角的那个)交谈过,您可能已经注意到了:它们的回复带有 粗体字、项目符号和可点击的链接。这不是魔法。这是 Markdown。
什么是 Markdown?
Markdown 是由 John Gruber 于 2004 年创建的一种使用简单符号来格式化文本的轻量级方式。您无需点击文字处理器中的按钮,只需输入代表格式的字符即可:
**粗体文本**
*斜体文本*
[链接文本](https://example.com)
- 项目符号渲染后,它们会变成:
- 粗体文本
- 斜体文本
- 链接文本
- 项目符号
为什么 AI 模型使用 Markdown?
AI 模型输出 Markdown 并非巧合。它们是在海量的互联网文本上训练出来的,而 Markdown 在线无处不在:GitHub、Stack Overflow、技术博客、文档。这种格式已经根植于它们的训练数据中。
像 GPT-5、Claude、Llama、Gemini 和 Grok 这样的大语言模型是在海量互联网文本上训练出来的。其中很大一部分文本来源于:
- GitHub:README 文件、文档、Issue、评论
- Stack Overflow:问题和答案
- 技术博客:教程和文档
- Reddit 和论坛:用户讨论
所有这些平台都使用 Markdown。因此,当 AI 模型学习交流时,它自然而然地将 Markdown 作为其“语言”的一部分学会了。
实际的好处
即使不渲染,Markdown 也是人类可读的。比较一下这两者:
**重要提示**:请查看文档
对比
<strong>重要提示</strong>: 请查看文档第一个是 Markdown。第二个是 HTML。两者产生相同的结果,但 Markdown 在原始形式下更简洁、更易读。
这一点很重要,因为 AI 的响应需要在多种环境中可读:原始 API 响应、聊天界面、文档等等。
实际中解析 Markdown
我多年来一直在文档、README 文件和内容管理系统中处理 Markdown。在构建 AI 聊天机器人时,它变得尤为重要。模型返回的文本可能包含 Markdown 格式,因此前端需要对其进行解析。
以下是用于基本格式化的简化解析流程:
AI 响应(带有 Markdown 的纯文本)
↓
解析 [文本](url) → 可点击的链接
↓
解析 https://... → 可点击的 URL
↓
解析 **文本** → 粗体文本
↓
在聊天气泡中渲染对于生产环境中的聊天机器人,您可能需要一个完整的 Markdown 解析库,例如 react-markdown、marked.js 或 markdown-it。这些库可以处理完整的 Markdown 规范:标题、表格、代码块等等。
您无法完全控制 AI 输出的格式。即使您要求使用 [标题](url) 样式的链接,模型也可能返回原始 URL。请构建您的解析器以同时处理这两种格式。
您应该在提示中使用 Markdown 吗?
是的,但要抱有切合实际的期望。当您为 AI 编写系统提示时,要求输出 Markdown 是有意义的,因为:
- 这是模型自然产生的内容
- 前端易于解析
- 它是安全的(没有像 HTML 那样的 XSS 风险)
- 作为后备方案,它是人类可读的
请记住,LLMs 并不总是能完美遵循指令。请构建您的前端以优雅地处理各种变化。