Preserve reasoning_content with minimal-format diffs

This commit is contained in:
chanchann 2026-02-28 02:59:56 +00:00
parent 41eaf48516
commit 0a02d462f0
2 changed files with 3 additions and 0 deletions

View file

@ -301,6 +301,7 @@ func parseResponse(body []byte) (*LLMResponse, error) {
type openaiMessage struct { type openaiMessage struct {
Role string `json:"role"` Role string `json:"role"`
Content string `json:"content"` Content string `json:"content"`
Reasoning string `json:"reasoning_content,omitempty"`
ToolCalls []ToolCall `json:"tool_calls,omitempty"` ToolCalls []ToolCall `json:"tool_calls,omitempty"`
ToolCallID string `json:"tool_call_id,omitempty"` ToolCallID string `json:"tool_call_id,omitempty"`
} }
@ -314,6 +315,7 @@ func stripSystemParts(messages []Message) []openaiMessage {
out[i] = openaiMessage{ out[i] = openaiMessage{
Role: m.Role, Role: m.Role,
Content: m.Content, Content: m.Content,
Reasoning: m.ReasoningContent,
ToolCalls: m.ToolCalls, ToolCalls: m.ToolCalls,
ToolCallID: m.ToolCallID, ToolCallID: m.ToolCallID,
} }

View file

@ -106,6 +106,7 @@ func RunToolLoop(
Role: "assistant", Role: "assistant",
Content: response.Content, Content: response.Content,
} }
assistantMsg.ReasoningContent = response.ReasoningContent
for _, tc := range normalizedToolCalls { for _, tc := range normalizedToolCalls {
argumentsJSON, _ := json.Marshal(tc.Arguments) argumentsJSON, _ := json.Marshal(tc.Arguments)
assistantMsg.ToolCalls = append(assistantMsg.ToolCalls, providers.ToolCall{ assistantMsg.ToolCalls = append(assistantMsg.ToolCalls, providers.ToolCall{