This is an automated email from the ASF dual-hosted git repository.

xtsong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-agents.git

commit 3eede02a788664f20fdc2540be20ab4eee5e2ad7
Author: WenjinXie <[email protected]>
AuthorDate: Tue Jan 27 19:29:39 2026 +0800

    [ollama] Align the behavior of think related parameters for ollama between 
python and java.
---
 .../agents/integration/test/ChatModelIntegrationAgent.java |  1 +
 .../apache/flink/agents/examples/ReActAgentExample.java    |  1 +
 .../chatmodels/ollama/OllamaChatModelConnection.java       | 14 ++++++++++++--
 .../chatmodels/ollama/OllamaChatModelSetup.java            |  5 ++++-
 4 files changed, 18 insertions(+), 3 deletions(-)

diff --git 
a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java
index 476afba3..99977169 100644
--- 
a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java
+++ 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java
@@ -104,6 +104,7 @@ public class ChatModelIntegrationAgent extends Agent {
             return 
ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_SETUP)
                     .addInitialArgument("connection", "chatModelConnection")
                     .addInitialArgument("model", OLLAMA_MODEL)
+                    .addInitialArgument("think", false)
                     .addInitialArgument(
                             "tools",
                             List.of("calculateBMI", "convertTemperature", 
"createRandomNumber"))
diff --git 
a/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java
 
b/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java
index 4a68f6a7..624f3b83 100644
--- 
a/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java
+++ 
b/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java
@@ -147,6 +147,7 @@ public class ReActAgentExample {
                 
ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_SETUP)
                         .addInitialArgument("connection", 
"ollamaChatModelConnection")
                         .addInitialArgument("model", "qwen3:8b")
+                        .addInitialArgument("think", false)
                         .addInitialArgument(
                                 "tools", 
Collections.singletonList("notifyShippingManager"))
                         .build(),
diff --git 
a/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelConnection.java
 
b/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelConnection.java
index b591e0ea..773069f4 100644
--- 
a/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelConnection.java
+++ 
b/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelConnection.java
@@ -180,8 +180,18 @@ public class OllamaChatModelConnection extends 
BaseChatModelConnection {
     public ChatMessage chat(
             List<ChatMessage> messages, List<Tool> tools, Map<String, Object> 
arguments) {
         try {
+            // convert think to think mode.
+            final Object think = arguments.getOrDefault("think", true);
+            ThinkMode thinkMode = ThinkMode.ENABLED;
+            for (ThinkMode mode : ThinkMode.values()) {
+                if (mode.getValue().equals(think)) {
+                    thinkMode = mode;
+                    break;
+                }
+            }
+
             final boolean extractReasoning =
-                    (boolean) arguments.getOrDefault("extract_reasoning", 
false);
+                    (boolean) arguments.getOrDefault("extract_reasoning", 
true);
 
             final List<Tools.Tool> ollamaTools = 
this.convertToOllamaTools(tools);
             final List<OllamaChatMessage> ollamaChatMessages =
@@ -194,7 +204,7 @@ public class OllamaChatModelConnection extends 
BaseChatModelConnection {
                     OllamaChatRequest.builder()
                             .withMessages(ollamaChatMessages)
                             .withModel(modelName)
-                            .withThinking(extractReasoning ? ThinkMode.ENABLED 
: ThinkMode.DISABLED)
+                            .withThinking(thinkMode)
                             .withUseTools(false)
                             .build();
 
diff --git 
a/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelSetup.java
 
b/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelSetup.java
index e12aed41..63805c81 100644
--- 
a/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelSetup.java
+++ 
b/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelSetup.java
@@ -56,13 +56,15 @@ import java.util.function.BiFunction;
 public class OllamaChatModelSetup extends BaseChatModelSetup {
 
     private final String model;
+    private final Object think;
     private final boolean extractReasoning;
 
     public OllamaChatModelSetup(
             ResourceDescriptor descriptor, BiFunction<String, ResourceType, 
Resource> getResource) {
         super(descriptor, getResource);
         this.model = descriptor.getArgument("model");
-        this.extractReasoning = descriptor.getArgument("extract_reasoning", 
false);
+        this.think = descriptor.getArgument("think", true);
+        this.extractReasoning = descriptor.getArgument("extract_reasoning", 
true);
     }
 
     /**
@@ -90,6 +92,7 @@ public class OllamaChatModelSetup extends BaseChatModelSetup {
     public Map<String, Object> getParameters() {
         Map<String, Object> params = new HashMap<>();
         params.put("model", model);
+        params.put("think", think);
         params.put("extract_reasoning", extractReasoning);
         return params;
     }

Reply via email to