大模型 API 的核心是一个**消息列表**(messages),列表中的每条消息都有一个**角色**(role)标识,模型根据角色来理解每条消息的含义和来源:
-
**system**:系统提示词。由开发者编写,定义 Agent 的身份、行为规则、约束条件。模型将其视为最高优先级的指令。整个对话过程中通常只有一条,放在消息列表的最前面。
-
**user**:用户消息。来自终端用户的输入,是 Agent 需要响应的请求。
-
**assistant**:助手消息。模型之前的回复,包括文本回复和工具调用请求。在多轮对话中,之前的 assistant 消息会被放回消息列表,让模型"记住"自己说过什么。
-
**tool**:工具结果。Agent 框架执行工具后,将结果以 tool 角色的消息送回给模型。每条 tool 消息通过 `tool_call_id` 与对应的工具调用请求关联。
此外,工具定义(tools)作为请求的独立字段(而非消息),告诉模型有哪些工具可以使用、每个工具接受什么参数。