1. 为什么 JSON 效果很好?
使用 JSON 或类似的结构化格式(如 YAML, XML)之所以有效,是因为:
- 消除歧义: 明确了字段名和内容的边界,模型不会混淆“要求”和“参考资料”。
- 逻辑严密: 强迫模型按照 KV(键值对)的关系去理解任务,非常适合多步骤、复杂规则的任务。
- 易于解析: 如果你的 AI 输出需要对接程序代码,JSON 是最佳选择。
示例:
{
"task": "翻译",
"source_language": "中文",
"target_language": "英语",
"style": "学术",
"content": "这里是需要翻译的内容"
}
2. 除了 JSON,还有哪些高效格式?
A. Markdown(最推荐的通用格式)
Markdown 是 LLM(大语言模型)训练数据中最常见的格式。它对模型非常友好,视觉上也易于人类阅读。
- 适用场景: 撰写长文、设定角色、多层级指令。
- 技巧: 使用
##标题区分模块,使用**加粗**强调重点。
B. XML(长文本/复杂任务的神器)
尤其是 Claude 系列模型,对 XML 标签(如 <instruction></instruction>)的敏感度极高。
-
优点: 能够清晰地包裹长文本,防止模型在大规模上下文中迷失。
-
示例:
XML
<context> 这里是背景信息... </context> <rules> 1. 不要使用术语 2. 语气幽默 </rules>
C. YAML(兼顾可读与结构)
YAML 像 JSON 一样结构化,但没有那么多大括号和引号,视觉上更清爽。
- 适用场景: 复杂的参数设定。
D. 伪代码(逻辑推理神器)
对于数学、编程或需要严格逻辑顺序的任务,使用类似编程语言的伪代码效果极佳。
-
示例:
Python
if user_input == "询问价格": refer_to(price_list) else: say("我不确定")
3. 各种格式对比表
| 格式 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
| 纯文本 | 简单、快捷 | 复杂指令下容易产生歧义 | 简单的问答、日常闲聊 |
| Markdown | 层级分明,对模型最友好 | 无明显缺点 | 大多数常规任务(首选) |
| JSON | 极其精确,适合程序对接 | 编写较繁琐,容易漏括号 | 自动化工作流、结构化数据输出 |
| XML | 强力分隔上下文,Claude 表现优异 | 视觉上稍显拥挤 | 长文档处理、复杂逻辑引导 |
| YAML | 易读性强,结构化 | 缩进敏感 | 设定 AI 角色参数、配置文件 |
4. 最后:如何选择?
- 如果你是在写复杂的 Prompt: 优先使用 Markdown(用标题和列表划分模块)。
- 如果你希望模型输出特定格式: 明确告诉它“请以 JSON 格式输出”。
- 如果你在处理超长文本: 尝试用 XML 标签把不同的部分(背景、示例、指令)包裹起来。
- 如果任务涉及严密的条件判断: 尝试用 伪代码 逻辑。