eino reasoning_content 完整指南:3 步让 ChatModel 的思考过程可见

发布时间:2026/9/13 7:44:25
eino reasoning_content 完整指南:3 步让 ChatModel 的思考过程可见
eino reasoning_content 完整指南3 步让 ChatModel 的思考过程可见【免费下载链接】einoThe ultimate LLM/AI application development framework in Go.项目地址: https://gitcode.com/GitHub_Trending/ei/eino模型回答看起来对却答非所问调优时常无从下手。eino 的消息结构里有个 reasoning_content 字段专记 ChatModel 生成答案前的推理内容让模型思考过程变得可检查。什么时候需要看到模型的思考过程 调试答非所问的回答。问这段代码为什么超时就崩了模型给出一个似是而非的结论。只看正文无法定位它在哪一步理解错了而推理内容里能看到它做了哪些假设、排除了什么错因很快浮现。 评估工具调用决策。Agent 挂上工具后模型要先判断调哪个工具、参数填什么再动手。决策依据就写在 adk/chatmodel.go 处理的这一轮消息里推理字段能暴露它是否误读了用户意图。 向用户解释 AI 决策。客服、审批类产品里只给结论不够把推理路径展示出来用户才敢采纳。reasoning_content 是什么字段、存储与输出字段定义——可选字符串omitempty 意味着什么在 schema/message.go 的 Message 结构里字段是这样一个可选字符串// ReasoningContent is the thinking process of the model ReasoningContent string json:reasoning_content,omitemptyomitempty 的含义值为空时JSON 里直接省略该字段。普通模型不返回推理内容消息体积不膨胀只有模型确实产出了思考过程字段才会带上数据。是否有内容由模型实现决定eino 负责的是存得住、传得走。框架怎么说出来——字符串表示时非空才追加 reasoning 段落Message 的 String() 方法先输出角色和正文只有 ReasoningContent 非空时才额外写一段if len(m.ReasoningContent) 0 { sb.WriteString(\nreasoning content:\n) sb.WriteString(m.ReasoningContent) }日志里打印 msg.String() 就能直接看到思考路径不必自己解析。流式场景也成立每个 chunk 携带一段推理片段ConcatMessages 会把它们按序合并成完整的 reasoning content。eino 的三层支持从 schema 到编排三层分工很清晰Schema 层在 Message 中定义 reasoning_content 字段并规定流式分片的合并规则Components 层model.ChatModel 的 Generate/Stream 负责模型调用把返回的推理内容装进消息Compose 编排层Agent 与中间件让该字段沿流程走reduction 中间件裁剪历史时会保留它summarization 中间件统计长度时把它计入上手与调试3 步用起来启用选择会输出推理内容的模型如 DeepSeek-R1、QwQ 这类 reasoning 模型对应模型实现会把 API 响应里的思考文本写入 ReasoningContenteino 核心无需额外开关。查看在回调或日志里打印 msg.String()找reasoning content段或断点里直接读 msg.ReasoningContent。优化提示词对比推理路径和你的预期——缺上下文就补上下文指令歧义就拆成更明确的任务中间结论错了就在提示里把规则说死然后回归测试。reasoning_content 把模型为什么这么答从猜测变成可检查的事实。下次遇到答非所问先打开这个字段读一遍再动手改提示词。【免费下载链接】einoThe ultimate LLM/AI application development framework in Go.项目地址: https://gitcode.com/GitHub_Trending/ei/eino创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考