~/docs/api/message-format/

消息格式

Chat Completions 使用 messages 数组描述对话上下文。每条消息至少包含 role 和 content。

角色

角色 用途
system 设定助手的行为、语气和约束。
user 表示用户输入。
assistant 表示模型历史回复,也可用于提供示例回复。
tool 表示工具执行结果,必须通过 tool_call_id 对应模型发起的调用。

文本消息

{
  "messages": [
    {"role": "system", "content": "你是技术支持助手。"},
    {"role": "user", "content": "如何重置密码?"}
  ]
}

多轮对话

模型不会在请求之间自动保存上下文。应用需要将历史消息一并传入:

{
  "messages": [
    {"role": "user", "content": "我叫小明。"},
    {"role": "assistant", "content": "你好,小明。"},
    {"role": "user", "content": "我叫什么?"}
  ]
}

工具消息

模型返回工具调用后,执行函数并追加工具结果:

{
  "role": "tool",
  "tool_call_id": "call_123",
  "content": "北京:晴,25°C"
}

然后将这条消息与原有历史一起发送,模型会生成最终答复。

内容限制

  • 保持消息顺序稳定,不要丢失工具调用与工具结果的对应关系。
  • 控制历史消息总长度,超出模型上下文限制时应进行截断或摘要。
  • 不要在客户端直接拼接未经处理的用户输入到系统提示词中。
  • 发送图片时,使用支持视觉的模型并参考多模态图片。