完整json对话日志注解
{
"messages": [
// ==============================================
// 1. 用户提问
// ==============================================
{
"type": "HumanMessage", // 消息类型:用户消息
"content": "10 + 5 等于多少", // 消息内容
"additional_kwargs": {}, // 附加参数
"response_metadata": {}, // 响应元数据
"id": "64620d58-44b2-4563-b521-911bf1e22237" // 消息唯一ID
},
// ==============================================
// 2. AI 第一次响应:调用计算器工具
// ==============================================
{
"type": "AIMessage", // 消息类型:AI消息
"content": "", // 本次回复内容为空(仅调用工具)
"additional_kwargs": {
"refusal": null // 无拒绝内容
},
"response_metadata": {
"token_usage": {
"completion_tokens": 116, // 模型生成token数
"prompt_tokens": 457, // 输入提示token数
"total_tokens": 573, // 总token数
"completion_tokens_details": {
"accepted_prediction_tokens": null, // 无预测接受token
"audio_tokens": null, // 无音频token
"reasoning_tokens": 63, // 推理过程消耗token
"rejected_prediction_tokens": null, // 无预测拒绝token
"text_tokens": 116 // 纯文本生成token
},
"prompt_tokens_details": {
"audio_tokens": null, // 无音频输入token
"cached_tokens": null, // 无缓存token
"text_tokens": 457 // 输入文本token数
}
},
"model_provider": "openai", // 模型提供商标识
"model_name": "qwen3.5-flash", // 模型名称
"system_fingerprint": null, // 系统指纹
"id": "chatcmpl-af9abe53-bc42-96e5-85f1-d578b357f6d0", // 对话ID
"finish_reason": "tool_calls", // 结束原因:调用工具
"logprobs": null // 无概率日志
},
"id": "lc_run--019d22ad-b05a-74f3-a7ac-d3c17b9a7d42-0", // 运行ID
"tool_calls": [ // 工具调用列表
{
"name": "calculator", // 调用工具名:计算器
"args": {
"operation": "add", // 运算类型:加法
"a": 10, // 运算数1
"b": 5 // 运算数2
},
"id": "call_dc13fc4ca7e8437e88057c29", // 工具调用ID
"type": "tool_call" // 类型:工具调用
}
],
"invalid_tool_calls": [], // 无效工具调用
"usage_metadata": {
"input_tokens": 457, // 输入token
"output_tokens": 116, // 输出token
"total_tokens": 573, // 总token
"input_token_details": {}, // 输入token详情
"output_token_details": {
"reasoning": 63 // 输出中推理token
}
}
},
// ==============================================
// 3. 工具返回结果
// ==============================================
{
"type": "ToolMessage", // 消息类型:工具返回消息
"content": "15.0", // 工具执行结果
"name": "calculator", // 工具名称
"id": "2866328e-ca4f-43dc-9702-911ebf703c61", // 消息ID
"tool_call_id": "call_dc13fc4ca7e8437e88057c29" // 对应工具调用ID
},
// ==============================================
// 4. AI 最终回答
// ==============================================
{
"type": "AIMessage", // 消息类型:AI最终回复消息
"content": "10 + 5 等于 15", // 最终回答内容
"additional_kwargs": {
"refusal": null // 无拒绝
},
"response_metadata": {
"token_usage": {
"completion_tokens": 45, // 本次生成token
"prompt_tokens": 527, // 本次输入token
"total_tokens": 572, // 本次总token
"completion_tokens_details": {
"accepted_prediction_tokens": null,
"audio_tokens": null,
"reasoning_tokens": 30, // 本次推理token
"rejected_prediction_tokens": null,
"text_tokens": 45 // 本次文本token
},
"prompt_tokens_details": {
"audio_tokens": null,
"cached_tokens": null,
"text_tokens": 527
}
},
"model_provider": "openai",
"model_name": "qwen3.5-flash",
"system_fingerprint": null,
"id": "chatcmpl-cc57cbb8-191a-9aaa-882d-218385328ab9",
"finish_reason": "stop", // 结束原因:正常完成
"logprobs": null
},
"id": "lc_run--019d22ad-b5d0-7852-8027-c2acec6ce071-0",
"tool_calls": [], // 无额外工具调用
"invalid_tool_calls": [],
"usage_metadata": {
"input_tokens": 527,
"output_tokens": 45,
"total_tokens": 572,
"input_token_details": {},
"output_token_details": {
"reasoning": 30
}
}
}
]
}对话日志参数说明(文字版)
本文档对应“10+5等于多少”的对话日志,按消息类型分类,逐字段解释所有参数含义,清晰易懂,可直接复制到Markdown文件中使用。
一、整体结构说明
整个日志的最外层是 messages 数组,用于存储完整的对话流程,包含4条核心消息(用户消息、AI首次响应、工具返回、AI最终回答),每条消息为一个对象,包含多个描述性参数。
二、逐消息参数详细说明
(一)第一条消息:用户消息(HumanMessage)
作用:记录用户发送的提问内容及相关标识信息,参数如下:
type:消息类型,值为“HumanMessage”,表示该消息是用户发送的。content:消息具体内容,此处为用户的提问“10 + 5 等于多少”。additional_kwargs:附加参数,为空对象({}),表示无额外补充参数。response_metadata:响应元数据,为空对象({}),表示无额外响应相关的元信息。id:消息唯一标识(UUID),值为“64620d58-44b2-4563-b521-911bf1e22237”,用于区分不同消息。
(二)第二条消息:AI首次响应(AIMessage)
作用:记录AI首次响应的内容(仅调用工具,无直接回答)、工具调用信息及token消耗等数据,参数如下:
type:消息类型,值为“AIMessage”,表示该消息是AI发送的。content:AI的回复内容,此处为空字符串(""),因为AI本次仅调用工具,未直接给出回答。additional_kwargs:附加参数对象,包含一个子参数refusal,值为“null”,表示AI未拒绝回答。response_metadata:响应元数据对象,包含AI响应的详细信息,子参数如下:token_usage:token消耗统计对象,记录AI响应过程中消耗的token数量:completion_tokens:AI生成内容消耗的token数,值为116。prompt_tokens:用户输入提示消耗的token数,值为457。total_tokens:总消耗token数,值为573(completion_tokens + prompt_tokens)。completion_tokens_details:生成token的详细分类:accepted_prediction_tokens:被接受的预测token,值为“null”,表示无相关数据。audio_tokens:音频相关token,值为“null”,表示无音频内容。reasoning_tokens:AI推理过程消耗的token数,值为63。rejected_prediction_tokens:被拒绝的预测token,值为“null”,表示无相关数据。text_tokens:纯文本生成消耗的token数,值为116。
prompt_tokens_details:输入提示token的详细分类:audio_tokens:音频相关输入token,值为“null”,表示无音频输入。cached_tokens:缓存token,值为“null”,表示无缓存可用。text_tokens:纯文本输入消耗的token数,值为457。
model_provider:模型服务提供商,值为“openai”。model_name:使用的AI模型名称,值为“qwen3.5-flash”。system_fingerprint:系统指纹,值为“null”,用于标识系统版本,此处无相关数据。id:对话请求ID,值为“chatcmpl-af9abe53-bc42-96e5-85f1-d578b357f6d0”,标识本次AI响应的请求。finish_reason:AI响应结束的原因,值为“tool_calls”,表示AI因调用工具而结束本次响应。logprobs:日志概率数据,值为“null”,表示无相关概率日志。
id:运行会话ID,值为“lc_run--019d22ad-b05a-74f3-a7ac-d3c17b9a7d42-0”,标识本次AI运行的会话。tool_calls:工具调用列表(数组),包含1个工具调用对象,子参数如下:name:调用的工具名称,值为“calculator”,表示调用计算器工具。args:工具调用的参数对象,用于指定工具的操作:operation:运算类型,值为“add”,表示执行加法运算。a:第一个运算数,值为10。b:第二个运算数,值为5。
id:工具调用唯一ID,值为“call_dc13fc4ca7e8437e88057c29”,用于关联工具调用与工具返回结果。type:调用类型,值为“tool_call”,表示该操作是工具调用。
invalid_tool_calls:无效工具调用列表,为空数组([]),表示无无效的工具调用。usage_metadata:token使用元数据,与response_metadata.token_usage内容一致,用于重复记录token消耗情况:input_tokens:输入token数,值为457。output_tokens:输出token数,值为116。total_tokens:总token数,值为573。input_token_details:输入token详情,为空对象({})。output_token_details:输出token详情,包含reasoning子参数,值为63,表示推理过程消耗的token数。
(三)第三条消息:工具返回消息(ToolMessage)
作用:记录计算器工具的执行结果,关联对应的工具调用,参数如下:
type:消息类型,值为“ToolMessage”,表示该消息是工具返回的结果。content:工具执行的结果,值为“15.0”,即10+5的计算结果。name:工具名称,值为“calculator”,与调用的工具名称一致。id:工具消息唯一ID,值为“2866328e-ca4f-43dc-9702-911ebf703c61”。tool_call_id:关联的工具调用ID,值为“call_dc13fc4ca7e8437e88057c29”,与第二条消息中工具调用的ID一致,用于关联工具调用和返回结果。
(四)第四条消息:AI最终回答(AIMessage)
作用:记录AI根据工具返回结果,给出的最终用户回答,参数与第二条AI消息基本一致,差异点已标注:
type:消息类型,值为“AIMessage”,表示该消息是AI发送的。content:AI的最终回答内容,值为“10 + 5 等于 15”,根据工具返回结果生成。additional_kwargs:附加参数对象,refusal值为“null”,无拒绝回答。response_metadata:响应元数据对象,与第二条消息结构一致,差异点:token_usage:token消耗统计不同,completion_tokens为45、prompt_tokens为527、total_tokens为572,reasoning_tokens为30(本次推理消耗更少)。id:对话请求ID,值为“chatcmpl-cc57cbb8-191a-9aaa-882d-218385328ab9”,与第二条消息的请求ID不同(为新的请求)。finish_reason:结束原因,值为“stop”,表示AI正常完成回答,无需继续调用工具。
id:运行会话ID,值为“lc_run--019d22ad-b5d0-7852-8027-c2acec6ce071-0”,与第二条消息的会话ID不同。tool_calls:工具调用列表,为空数组([]),表示本次AI回答无需再调用工具。invalid_tool_calls:无效工具调用列表,为空数组([])。usage_metadata:token使用元数据,与本次response_metadata.token_usage一致,input_tokens为527、output_tokens为45、total_tokens为572,reasoning为30。
三、补充说明
- 所有
id类参数均为UUID(唯一标识),用于区分不同的消息、请求、工具调用,确保日志的唯一性和可追溯性。 - token相关参数用于统计AI运行过程中的资源消耗,
reasoning_tokens表示AI进行逻辑推理(如判断是否需要调用工具、如何根据工具结果生成回答)消耗的token。 - 本文档纯文字说明,无代码块,可直接复制到Markdown文件,也可根据需求调整格式(如添加标题层级、加粗重点参数)。