一句话定义
对话 API 以「消息列表 + 参数」的统一形状暴露模型能力(系统/用户/助手角色、温度、输出上限、流式传输),而提示工程是在这个接口上「用文本编程」的方法论——本知识点只做概览,方法细节见提示与上下文工程专题站。
为什么重要
几乎所有 LLM 应用都以 API 为起点。读懂消息接口的语义(角色、状态无记忆、按 token 计费),你就理解了「为什么每次要重发全部历史」「为什么系统提示是全局行为的锚点」;也就建立了评估任何上层框架(Agent、RAG、工作流)的基础坐标。
前置知识
- kp-017(SFT 建立的对话格式——API 正是其产品化)
核心概念
- messages 数组:按序排列的角色消息(system/user/assistant/tool),即模型的完整「视野」。
- 系统提示(System Prompt):设定身份、规则与边界,对全轮次行为生效。
- 无状态性:API 不记忆历史,每次请求需重发全部上下文(记忆需应用层自建)。
- 关键参数:temperature / top_p(见 kp-025)、max_tokens、stop 序列、流式开关。
- token 计费:输入与输出分别计费,长历史意味着成本线性上升。
- 提示工程(概览):结构化指令、少样本示例、角色设定、思维链引导、输出格式约束等方法族。
原理与机制
API 的 messages 数组在服务端被模板化为特殊词元序列(见 kp-003、kp-017 的对话模板)再进入模型——因此「每次重发历史」不是浪费设计,而是模型无记忆机制(kp-023)的直接后果。系统提示之所以权威,是因为其位置在注意力视野的最前端(kp-023 的首因效应)且与 SFT 训练分布一致。理解这层映射后,上层方法论(提示工程)的一切技巧都是在「组织高质量条件信息」。
公式或模型
一次请求的输入成本近似(token 计费视角):
多轮对话成本随轮数近线性增长,是长对话必须做摘要压缩的经济学原因。
图示
POST /chat
{ messages: [ {system: "你是法务助手..."},
{user: "第1问"}, {assistant: "第1答"},
{user: "第2问"} ], ← 历史必须重发
temperature: 0.2, max_tokens: 1024, stream: true }
→ 服务端模板化 → 模型 → 流式返回 assistant 片段
直观类比
API 像「租一位每次都失忆的专家」:他能力很强,但你每次见面都要把背景全部重讲一遍(重发历史);开场白讲得越清楚(系统提示),他后续表现越稳定;谈得越久,占用时间越长、费用越高(token 计费)。
实例或案例
典型工作流:用系统提示固定角色与输出规范 → 低温保证格式稳定 → 流式输出改善体感延迟 → 超长对话按 kp-023 做摘要压缩。提示工程中最常用的三招——给示例(ICL,见 kp-021)、给步骤(CoT,见 kp-024)、给格式(结构化,见 kp-028)——分别对应本库三个知识点;系统化的方法体系请移步提示与上下文工程专题站。
常见误区
- 「API 记得之前的对话」:无状态,记忆是应用层拼接出来的假象。
- 「系统提示只是第一句话」:它是行为锚点,位置与措辞对全轮生效。
- 「提示技巧可以替代模型能力」:提示只能调用与约束既有能力,无法注入预训练没有的知识(那要靠 RAG 或微调)。
与其他知识点的关系
自测题
- 为什么每次请求都要重发完整对话历史?答案要点:API 无状态、模型无内在记忆;历史即条件信息。
- 系统提示为何对行为有全局影响?答案要点:位于视野前端且与训练分布一致,注意力首因效应放大其影响。
- 「提示技巧能教模型它不知道的事实」对吗?答案要点:不对;只能调用既有能力,新知识需 RAG/微调。
延伸阅读
- Training language models to follow instructions with human feedback(Ouyang 等,2022):对话行为的产品化来源