ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

eino 推理内容全链路:从 reasoning_content 字段定义到生产调试的 3 步实战

eino 推理内容全链路:从 reasoning_content 字段定义到生产调试的 3 步实战 eino 推理内容全链路从 reasoning_content 字段定义到生产调试的 3 步实战【免费下载链接】einoThe ultimate LLM/AI application development framework in Go.项目地址: https://gitcode.com/GitHub_Trending/ei/eino为什么模型答了你却不知道它为什么这么答用 eino 开发 Agent 时最常见的卡点是模型直接回了答案但你不知道它为什么这么回。是理解错了题意还是推理走错了分支事后只能靠猜。eino 的reasoning_content字段把模型每一轮的思考过程都记了下来让你在生产环境直接核对决策链路 一图看懂 eino reasoning_content 的流转图里 ChatModel 和 Tools 通过 action / observation 构成循环模型每轮输出最终被包装成 AgentEvents 发出。ReasoningContent字段就挂在循环中流转的 Message 上模型每思考一次这段内容就随消息多出一截方便你逐轮回溯。拆解推理内容的三段链路看数据层怎么定义推理字段在 消息结构定义 中Message结构体给每条 assistant 消息留了一个专门的字段// ReasoningContent is the thinking process of the model ReasoningContent string json:reasoning_content,omitempty白话每条模型回复消息都能携带一段思考过程JSON 序列化时如果为空会自动省略不占传输和存储空间。旁边的TokenUsage.CompletionTokensDetails.ReasoningTokens还会单独统计思考消耗的 token 数让你知道这部分输出花了多少成本。看运行时怎么合并流式推理片段ChatModel 的输出通常是流式的每个 chunk 只带一小段推理文本框架的ConcatMessages负责把它们拼回完整内容if msg.ReasoningContent ! { reasoningContents append(reasoningContents, msg.ReasoningContent) reasoningContentLen len(msg.ReasoningContent) }白话流式输出的每一块思考碎片都被逐个收集函数最后按顺序拼成完整字符串写回最终 Message 的 ReasoningContent 字段。部分模型如 OpenAI 协议的推理内容会包在ReasoningExtension里、按 Index 分片schema/openai/extension.go 中的ConcatReasoningExtensions会先按索引排序再拼接保证顺序不乱。看合并后的思考怎么被读取和消费消息合并完成后有两处会直接消费这段内容。第一处是消息的调试渲染if len(m.ReasoningContent) 0 { sb.WriteString(\nreasoning content:\n) sb.WriteString(m.ReasoningContent) }白话你打印或记录消息时只要带了思考过程就会单独输出一段 reasoning content日志里一眼就能定位模型当时在想什么。第二处在 摘要中间件它估算消息 token 数时把ReasoningContent的长度和正文一起计入长对话压缩历史时不会漏算思考部分的开销。3 步跑通 eino 推理内容读取 克隆代码到本地git clone https://gitcode.com/GitHub_Trending/ei/eino打开 schema/message.go找到ReasoningContent字段定义确认它的序列化行为跑一遍相关测试验证流式合并逻辑go test ./schema/ ./schema/openai/在自己的项目里模型调用返回后直接读取msg.ReasoningContent并打印即可拿到完整思考过程避坑 进阶omitempty 的没值要区分清楚字段缺失通常意味着模型或供应商这一轮根本没返回思考内容别误判为合并出 bug先确认模型侧是否支持。流式分片有顺序要求OpenAI 协议的推理块带 Index 分片自己手写拼接逻辑时不排序就会把思考顺序打乱参考ConcatReasoningExtensions按索引聚合。思考过程也算 token 成本摘要中间件估算长度时已包含这部分长对话里思考文本常占大头压缩历史或估算费用时要把它算进去。掌握 reasoning_content 后模型下次答错你能直接翻它的思考日志一眼看出卡在哪一步 【免费下载链接】einoThe ultimate LLM/AI application development framework in Go.项目地址: https://gitcode.com/GitHub_Trending/ei/eino创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表