Messages 消息
消息(Message)是智能体与模型交互的基本单元——包含角色、内容和元数据,构成完整的对话上下文。
消息是 deepseek-kit 中模型交互的基本单元。每次调用模型时,你都在构建一组消息——用户的提问、助手的回复、系统的指令、工具的执行结果。理解消息的结构和使用方式,是构建任何 AI 应用的基础。deepseek-kit 采用与 DeepSeek API 兼容的消息格式,同时提供了 prompt 和 system 等简写方式,让你在不同场景下都能高效地组织输入。
提示词方式
deepseek-kit 支持三种方式向模型传递输入,适用于不同的场景:
文本提示词
最简单的方式——直接传入一个字符串作为用户输入:
你也可以使用模板字符串注入动态数据:
系统提示词
通过 system 参数为模型设定角色和行为准则。系统提示词会作为第一条 system 消息发送给模型,引导它以特定方式回应:
系统提示词可以与 prompt 或 messages 组合使用:
消息列表
当你需要维护多轮对话历史时,使用 messages 数组。每条消息包含 role 和 content 两个字段:
prompt 和 messages 是两种互斥的输入方式。prompt 适用于单次请求,messages 适用于多轮对话。system 和 fewShot 可以与两者组合使用。
消息组装顺序
当你同时使用 system、fewShot、messages 和 prompt 时,deepseek-kit 会按照固定的顺序将它们组装为最终的消息数组:
system → fewShot → messages → prompt
最终发送给模型的消息数组为:
每个参数承担不同的职责:
| 参数 | 职责 | 位置 |
|---|---|---|
system | 设定模型的角色和行为准则 | 最前面,作为 system 消息 |
fewShot | 提供示例对话,引导模型的回复风格和格式 | 在 system 之后、messages 之前 |
messages | 承载多轮对话历史 | 在 fewShot 之后、prompt 之前 |
prompt | 当前用户输入,以单个字符串表示 | 最后,作为 user 消息 |
system 和 fewShot 是配置级输入——它们定义模型应该如何行为。messages 和 prompt 是对话级输入——它们定义模型需要回应什么。prompt 和 messages 互斥。
消息类型
deepseek-kit 定义了四种消息类型,对应对话中的不同角色:
SystemMessage — 系统消息
设定模型的行为准则和角色定位,在对话开始前发送:
可选字段:
name— 参与者名称,用于区分不同的系统指令来源
推荐使用 system 参数而非在 messages 中手动添加系统消息,这样更清晰也更安全。
UserMessage — 用户消息
代表用户的输入,是最常用的消息类型:
可选字段:
name— 用户标识,用于多用户场景
AssistantMessage — 助手消息
代表模型的回复。助手消息可以包含文本内容、工具调用和推理内容:
纯文本回复:
带工具调用的回复:
带推理内容的回复(思考模式):
当模型启用思考模式时,reasoning_content 字段包含模型的推理过程,content 包含最终回复。
ToolMessage — 工具消息
代表工具执行的结果,通过 tool_call_id 与对应的工具调用关联:
tool_call_id 必须与 AssistantMessage 中 tool_calls 数组里对应项的 id 一致,模型才能正确匹配工具调用和结果。
多轮对话
使用 messages 数组构建多轮对话,每轮对话都包含用户消息和助手消息:
工具调用消息流
当智能体调用工具时,消息流遵循固定的模式:
在智能体模式下,你不需要手动构建工具调用消息流。createAgent 会自动处理 AssistantMessage 和 ToolMessage 的生成和关联。
手动构建对话历史
在某些场景下,你可能需要手动构建对话历史——例如从数据库加载历史记录,或模拟特定的对话上下文:
prompt 与 messages 的选择
| 特性 | prompt | messages |
|---|---|---|
| 输入方式 | 单个字符串 | 消息数组 |
| 适用场景 | 单次请求、无状态生成 | 多轮对话、有状态交互 |
| 系统提示词 | 通过 system 参数 | 通过 system 参数或 system 消息 |
| Few-shot 示例 | 通过 fewShot 参数 | 通过 fewShot 参数或包含在 messages 中 |
| 工具调用历史 | 不支持 | 支持 |
| 对话连续性 | 无 | 完整保留 |
选择建议:
- 一次性生成 — 使用
prompt,如内容创作、数据提取 - 聊天应用 — 使用
messages,如客服对话、交互式问答 - 需要历史上下文 — 使用
messages,如跟进提问、多步推理
API 参考
ChatMessage 类型
tool_call_id 关联到对应的工具调用。 ChatCompletionTool 类型
'function'。 输入参数
messages 互斥。 prompt 或 messages 组合使用。 system 消息之后、messages 之前。用于通过示范引导模型的回复风格和格式。可与 prompt 或 messages 组合使用。 prompt 互斥。 
