diff --git a/gpttype_adapter.cpp b/gpttype_adapter.cpp
index 9840e5c4a..6098f6eab 100644
--- a/gpttype_adapter.cpp
+++ b/gpttype_adapter.cpp
@@ -5859,6 +5859,11 @@ generation_outputs gpttype_generate(const generation_inputs inputs)
end = "<|END_THINKING|>";
budget_exceeded = "\n(Reasoning budget exceeded)\nTime to respond now.\n<|END_THINKING|>";
break;
+ case llm_arch::LLM_ARCH_MISTRAL3:
+ start = "[THINK]";
+ end = "[/THINK]";
+ budget_exceeded = "\n(Reasoning budget exceeded)\nTime to respond now.\n[/THINK]";
+ break;
default:
break;
}
diff --git a/koboldcpp.py b/koboldcpp.py
index 9ac7aba1c..fd3f967a1 100644
--- a/koboldcpp.py
+++ b/koboldcpp.py
@@ -186,7 +186,8 @@ thinkformats = [{"start":"<|channel|>analysis<|message|>","end":"<|start|>assist
{"start":"","end":""},
{"start":"","end":""},
{"start":"<|START_THINKING|>","end":"<|END_THINKING|>"},
- {"start":"<|channel>thought","end":""}]
+ {"start":"<|channel>thought","end":""},
+ {"start":"[THINK]","end":"[/THINK]"}]
tool_call_pairs = [ #third element is optional str to match in chat template before we use this pair, fourth element is whether its stream-handleable
("", "", None, True), #qwen, glm
("", "", None, True), #seed oss