mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-28 09:33:06 +00:00
fix(ollama): remove Ollama from isReasoningTagProvider (#2279)
Ollama's OpenAI-compatible endpoint handles reasoning natively via the `reasoning` field in streaming chunks. Treating Ollama as a reasoning-tag provider incorrectly forces <think>/<final> tag enforcement, which causes stripBlockTags() to discard all output (since Ollama models don't emit <final> tags), resulting in '(no output)' for every Ollama model. This fix removes 'ollama' from the isReasoningTagProvider() check, allowing Ollama models to work correctly through the standard content/reasoning field separation.
This commit is contained in:
committed by
Peter Steinberger
parent
c76288bdf1
commit
74193ff754
39
src/utils/provider-utils.test.ts
Normal file
39
src/utils/provider-utils.test.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { isReasoningTagProvider } from "./provider-utils.js";
|
||||
|
||||
describe("isReasoningTagProvider", () => {
|
||||
it("returns false for ollama — native reasoning field, no tags needed (#2279)", () => {
|
||||
expect(isReasoningTagProvider("ollama")).toBe(false);
|
||||
expect(isReasoningTagProvider("Ollama")).toBe(false);
|
||||
});
|
||||
|
||||
it("returns true for google-gemini-cli", () => {
|
||||
expect(isReasoningTagProvider("google-gemini-cli")).toBe(true);
|
||||
});
|
||||
|
||||
it("returns true for google-generative-ai", () => {
|
||||
expect(isReasoningTagProvider("google-generative-ai")).toBe(true);
|
||||
});
|
||||
|
||||
it("returns true for google-antigravity", () => {
|
||||
expect(isReasoningTagProvider("google-antigravity")).toBe(true);
|
||||
expect(isReasoningTagProvider("google-antigravity/gemini-3")).toBe(true);
|
||||
});
|
||||
|
||||
it("returns true for minimax", () => {
|
||||
expect(isReasoningTagProvider("minimax")).toBe(true);
|
||||
expect(isReasoningTagProvider("minimax-cn")).toBe(true);
|
||||
});
|
||||
|
||||
it("returns false for null/undefined/empty", () => {
|
||||
expect(isReasoningTagProvider(null)).toBe(false);
|
||||
expect(isReasoningTagProvider(undefined)).toBe(false);
|
||||
expect(isReasoningTagProvider("")).toBe(false);
|
||||
});
|
||||
|
||||
it("returns false for standard providers", () => {
|
||||
expect(isReasoningTagProvider("anthropic")).toBe(false);
|
||||
expect(isReasoningTagProvider("openai")).toBe(false);
|
||||
expect(isReasoningTagProvider("openrouter")).toBe(false);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user