diff --git a/agent/provider/ollama/client.go b/agent/provider/ollama/client.go index 792a231..c1d7267 100644 --- a/agent/provider/ollama/client.go +++ b/agent/provider/ollama/client.go @@ -78,8 +78,12 @@ func (c *Client) GenerateWithModel(ctx context.Context, prompt, model string, fo if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { return "", fmt.Errorf("decode ollama response: %w", err) } - c.Logger.Printf("[ollama] generate done, response_len=%d", len(result.Response)) - return result.Response, nil + response := result.Response + if response == "" && result.Thinking != "" { + response = result.Thinking + } + c.Logger.Printf("[ollama] generate done, response_len=%d", len(response)) + return response, nil } // GenerateStream sends a streaming generate request. diff --git a/agent/provider/ollama/types.go b/agent/provider/ollama/types.go index 06ec5e5..b3b1e75 100644 --- a/agent/provider/ollama/types.go +++ b/agent/provider/ollama/types.go @@ -69,10 +69,12 @@ type GenerateRequest struct { Stream bool `json:"stream"` Format any `json:"format,omitempty"` Options any `json:"options,omitempty"` + Think *bool `json:"think,omitempty"` } type GenerateResponse struct { Response string `json:"response"` + Thinking string `json:"thinking,omitempty"` Done bool `json:"done"` }