跳到主要内容

Prompt 的落地 — Agent、数据合成与 Text-to-SQL

这一章讲四件事: Agent 框架的四个模块各自吃哪种 Prompt 技术;数据快不够用了,Self-Instruct 怎么用模型造数据;Text-to-SQL 怎么让不会 SQL 的人查数据库;GPTs 怎么把 Prompt 打包成产品。 链条位置:第 06、07 章讲「怎么写」,这一章讲「用在哪」——前两章的每个技巧,在这里都有一个系统级的位置。

1. 顶层全景

Prompt 的四种放大器:
Agent → 让模型自己规划、调用工具、多步执行 (角色扮演+思维链+上下文学习)
数据合成 → 让模型生成训练数据,反向喂养模型 (上下文学习)
Text-to-SQL→ 让模型当数据库翻译官 (清晰提示+校准+投票)
GPTs → 把 Prompt+知识库+工具打包成应用 (预设 Prompt)
图说:四件事共享一个底层动作——把「下一句话该说什么」写成 Prompt。

2. Agent:四个模块,四种 Prompt

智能体(Agent)是能自主感知环境并采取行动以实现目标的实体;大模型成为它的核心控制器后,规划、决策、工具调用——让模型用代码去使唤外部程序——都能做1。书给出的经典框架有四个模块,并逐一标注每个模块吃的是哪种 Prompt 技术——本章主走查就是这个框架跑一道「小浣熊救助题」2:

用户:小浣熊由于吃了太多干脆面肚子疼,现在应该怎么办?
① 配置模块(Profile):角色扮演——「你是经验丰富的兽医」,任务目标是提供动物治疗建议;
角色设定作为上下文嵌进每一次交互的 Prompt。
② 计划模块(Planning):思维链分解任务——1.查小浣熊饮食习性 2.看急救说明
3.找附近宠物医院……最后总结汇总;再用少样本示例调控子任务的粒度。
③ 记忆模块(Memory):从知识库检索「小浣熊饮食习性」「紧急救治说明」,
查询本身用上下文学习构造;取回的记忆拼进 Prompt。
④ 行动模块(Action):把「调用工具 API 的示例」作为上下文,让模型生成调用代码——
搜引擎查宠物医院、调地图引擎规划送医路线——执行后把结果汇总成最终方案。
图说:四个模块=四个 Prompt 岗位;第 06、07 章的全部技巧在这里各就各位。

书给了两个 landmark 案例。斯坦福大学的虚拟西部小镇:多个 GPT-4 智能体——agent(能自己规划干活的程序)——靠角色扮演扮演医生、教师、市长,在一个小镇里生活互动。

HuggingGPT:以 ChatGPT 为控制器,接到任务先拆解,再从 HuggingFace 上挑模型干活,最后汇总结果,展示的是任务编排(把多个步骤和多个模型排班调度)的能力3。(书里这一节与本库 agent 书架重合度极高:四模块框架与工具调用在《深入理解 AI Agent》等拆解中有更系统的展开,本书的价值是「每个模块的 Prompt 配方」。)

3. 数据合成:模型造数据喂模型

这一节回答:数据不够了怎么办?

先看书引的背景判断:公共领域的高质量语言数据(书籍、新闻、论文、维基)——区别于合成数据(机器造出来供训练用的数据)——预计将在 2026 年左右耗尽;垂直领域数据又因隐私与标注难拿不到——「Garbage in, Garbage out」,数据质量卡住模型上限4

代表方法是 Self-Instruct:从少量人工种子出发,让大模型自己合成指令数据。书给出了可复刻的五步流程,主走查从 175 条种子开始5:

① 构建任务池:人工手写 175 条种子指令(如「请根据基金情况挑出最佳基金」)
② 指令生成:从池中随机抽 8 条当少样本示例,让模型生成新指令
→ 产出:「扩写下面给出的这段话」「判断下面句子的情感为积极还是消极」
③ 指令分类:让模型判断新指令是分类任务还是生成任务
④ 数据生成:分类任务→先生成类别标签再生成对应输入(答案先行,输入向标签靠);
生成任务→先生成输入再生成回答
⑤ 数据过滤:启发式规则删掉低质量、高重复的,合格者回填任务池
图说:②-⑤ 循环迭代,直到池子够大。种子 175 条 → 数万条,且保持多样。

意义有四层:缓解数据枯竭、多样化数据提升泛化、隐私场景可用合成数据顶上、合成数据微调小模型=蒸馏——把大模型的能力搬进小模型6。(书在 3.1 节提过的 Alpaca/Evol-Instruct 数据集正是这条流水线的产物。)

4. Text-to-SQL:用大白话查数据库

金融、电商的海量数据躺在关系型数据库(以一张张表格存放数据的库)里。

查询要写 SQL——逻辑复杂、语法(写法的规矩)严格,初学者要学数月。Text-to-SQL 把自然语言翻译成可执行的 SQL,让不会写 SQL 的人也能挖数据7。传统方案走预训练-微调,要大量标注、难泛化;大模型涌现的代码生成能力让零样本方案成为可能。

代表方法 C3 的三件套,每一件都对着第 06 章的一条原则8:

示例(书内走查):
问:小浣熊"Peter"的主人叫什么名字?
给模型的上下文:Schema 信息——Owners(owner_id, name)、Raccoons(raccoon_id, owner_id, name)…
产出:SELECT a.name FROM Owners as a JOIN Raccoons as b
ON a.owner_id = b.owner_id WHERE b.name = "Peter"
三件套:
① 清晰提示 Clear Prompting:清晰布局(分隔符分块=排版清晰原则)
+ 清晰上下文(只召相关的表和列,砍掉无关 Schema)
② 提示校准 Calibration with Hints:历史对话里把模型设定为「优秀 SQL 专家」,
逐条喂 Tips(如「避免用 IN/OR/LEFT JOIN 防多余结果」)——角色扮演校准偏差
③ 一致输出 Consistent Output:采样多条 SQL,按执行结果投票选最一致的——Self-Consistency 搬过来
图说:输入端、模型偏差、输出端各管一段;第 06/07 章的技巧组成一条流水线。

5. GPTs:Prompt 的产品化

GPTs 是 OpenAI 推出的自定义 GPT 应用:用户写 Description(说明用途)、Instructions(预设 Prompt),挂上专属知识库,勾选能力(网络搜索、图像生成、代码解释),就能做出一个可分享的应用9。书把这一节放最后,用意明显:Instructions 写得好不好,用的全是本章之前的技巧——Prompt 从「聊天输入」变成了「应用的定义文件」。

6. 作者的判断与证据

  • 给了证据的:Self-Instruct 五步全流程与 175 条种子的设定;C3 的完整框架图与 SQL 输出示例;Agent 四模块在「小浣熊救助」上的逐步走查。

  • 作者转述的事件:虚拟西部小镇(斯坦福 Generative Agents)与 HuggingGPT,书引了两篇论文;「预计 2026 年左右数据耗尽」引的是数据限界研究,是一个估计不是定律。

  • 书的判断:「数据合成……模型蒸馏」「基于生成模型的评测将得到更广泛关注」这类展望句,读作方向判断,别当结论引用。

7. 边界与局限

  • 合成数据的已知风险书未展开:模型自产数据可能放大自身偏见、长尾分布更偏;「蒸馏」小模型的收益上限受限于教师模型。

  • 本章 Agent 框架是 2024 年中的综述版;工具调用的协议化——MCP(Model Context Protocol)是其中代表,即模型上下文协议:各家工具共用的接插件规范——、多 Agent 协作、记忆的工程实现都不在本书范围——本库 agent 书架可接续。

  • Text-to-SQL 的高难场景(跨库 join、模糊列名)书未评估;C3 之后榜单迭代很快。

  • GPTs 一节是产品介绍,无独立技术内容;商店机制与商业化书未提。

8. 可带走的

  1. Agent 四模块=四个 Prompt 岗位:配置用角色扮演、计划用思维链、记忆与行动用上下文学习。
  2. 「角色设定嵌进每一次交互的 Prompt」是 Agent 人设不漂移的基本手法。
  3. 数据有耗尽预期(2026 年左右,估计值);Self-Instruct 用「8 条示例生成新指令→分类→按任务型造数据→过滤回池」五步滚雪球。
  4. 分类任务的数据生成要「答案先行」:先生成标签再生成输入,输入才贴标签。
  5. Text-to-SQL 三件套:清晰提示管输入、提示校准管偏差、一致输出管随机。
  6. GPTs 的 Instructions 就是预设 Prompt;写应用=写 Prompt+挂知识库+选工具。

9. 原文地图

主题原书章原文位置
Agent 定义3.5.1 基于大语言模型的 Agenttext/12-ch03-05-3-5.txt:35(搜「自主感知环境」)
四模块框架3.5.1 基于大语言模型的 Agenttext/12-ch03-05-3-5.txt:56(搜「Profile」)
配置=角色扮演3.5.1 基于大语言模型的 Agenttext/12-ch03-05-3-5.txt:92(搜「角色扮演技术」)
计划=任务分解者3.5.1 基于大语言模型的 Agenttext/12-ch03-05-3-5.txt:104(搜「任务分解者」)
行动=工具 API3.5.1 基于大语言模型的 Agenttext/12-ch03-05-3-5.txt:117(搜「工具 API」)
小浣熊走查3.5.1 基于大语言模型的 Agenttext/12-ch03-05-3-5.txt:69(搜「肚子疼」) · text/12-ch03-05-3-5.txt:76(搜「紧急救治」)
虚拟小镇与 HuggingGPT3.5.1 基于大语言模型的 Agenttext/12-ch03-05-3-5.txt:150(搜「虚拟的西部小镇」) · text/12-ch03-05-3-5.txt:156(搜「HuggingGPT」)
数据耗尽预期3.5.2 数据合成text/12-ch03-05-3-5.txt:178(搜「2026 年左右耗尽」) · text/12-ch03-05-3-5.txt:170(搜「Garbage in」)
Self-Instruct 五步3.5.2 数据合成text/12-ch03-05-3-5.txt:226(搜「构建任务池」) · text/12-ch03-05-3-5.txt:242(搜「175 个」) · text/12-ch03-05-3-5.txt:247(搜「8 个现有指令」)
数据合成的意义3.5.2 数据合成text/12-ch03-05-3-5.txt:292(搜「模型蒸馏」)
Text-to-SQL 动机3.5.3 Text-to-SQLtext/12-ch03-05-3-5.txt:309(搜「用大白话」)
C3 三件套3.5.3 Text-to-SQLtext/12-ch03-05-3-5.txt:342(搜「C3」) · text/12-ch03-05-3-5.txt:346(搜「Clear Prompting」) · text/12-ch03-05-3-5.txt:412(搜「Calibration with Hints」) · text/12-ch03-05-3-5.txt:421(搜「输出校准」)
Peter 查询示例3.5.3 Text-to-SQLtext/12-ch03-05-3-5.txt:320(搜「Peter」)
GPTs3.5.4 GPTStext/12-ch03-05-3-5.txt:429(搜「GPTs」) · text/12-ch03-05-3-5.txt:438(搜「Instructions」)

Footnotes

  1. 出处:「3.5.1 基于大语言模型的 Agent」第 35 段(text/12-ch03-05-3-5.txt:35,搜「自主感知环境」)。

  2. 出处:「3.5.1 基于大语言模型的 Agent」第 56 段(text/12-ch03-05-3-5.txt:56,搜「Profile」)。配置模块用角色扮演在第 92 段(text/12-ch03-05-3-5.txt:92,搜「角色扮演技术」);计划模块用思维链分解在第 104 段(text/12-ch03-05-3-5.txt:104,搜「任务分解者」);行动模块用工具 API 在第 117 段(text/12-ch03-05-3-5.txt:117,搜「工具 API」);小浣熊例子在第 69 段(text/12-ch03-05-3-5.txt:69,搜「肚子疼」)。

  3. 出处:「3.5.1 基于大语言模型的 Agent」第 150 段(text/12-ch03-05-3-5.txt:150,搜「虚拟的西部小镇」)与第 156 段(text/12-ch03-05-3-5.txt:156,搜「HuggingGPT」)。

  4. 出处:「3.5.2 数据合成」第 178 段(text/12-ch03-05-3-5.txt:178,搜「2026 年左右耗尽」)与第 170 段(text/12-ch03-05-3-5.txt:170,搜「Garbage in」)。

  5. 出处:「3.5.2 数据合成」第 226 段(text/12-ch03-05-3-5.txt:226,搜「构建任务池」)。175 条种子在第 242 段(text/12-ch03-05-3-5.txt:242,搜「175 个」);抽 8 条示例在第 247 段(text/12-ch03-05-3-5.txt:247,搜「8 个现有指令」);分类任务先生成标签在第 268 段(text/12-ch03-05-3-5.txt:268,搜「先生成类」)。

  6. 出处:「3.5.2 数据合成」第 292 段(text/12-ch03-05-3-5.txt:292,搜「模型蒸馏」)。

  7. 出处:「3.5.3 Text-to-SQL」第 309 段(text/12-ch03-05-3-5.txt:309,搜「用大白话」)与第 331 段(text/12-ch03-05-3-5.txt:331,搜「零样本」)。

  8. 出处:「3.5.3 Text-to-SQL」第 342 段(text/12-ch03-05-3-5.txt:342,搜「C3」)。三部分命名在第 346 段(text/12-ch03-05-3-5.txt:346,搜「Clear Prompting」);清晰布局与清晰上下文在第 397 段(text/12-ch03-05-3-5.txt:397,搜「清晰布局」);提示校准在第 412 段(text/12-ch03-05-3-5.txt:412,搜「Calibration with Hints」);一致输出在第 421 段(text/12-ch03-05-3-5.txt:421,搜「输出校准」)。Peter 示例见图 3.32(text/12-ch03-05-3-5.txt:320,搜「Peter」)。

  9. 出处:「3.5.4 GPTS」第 429 段(text/12-ch03-05-3-5.txt:429,搜「GPTs」)与第 438 段(text/12-ch03-05-3-5.txt:438,搜「Instructions」)。