From 7340633429f631817f10da44e95715506ff93899 Mon Sep 17 00:00:00 2001 From: youjin Date: Thu, 27 Nov 2025 14:54:42 +0800 Subject: [PATCH] [hotfix] Fix the type loss issue in agent plan deserialization --- docs/content/docs/development/workflow_agent.md | 2 +- .../flink/agents/examples/agents/ReviewAnalysisAgent.java | 2 +- .../integrations/chatmodels/ollama/OllamaChatModelSetup.java | 2 +- .../plan/serializer/ResourceProviderJsonDeserializer.java | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/content/docs/development/workflow_agent.md b/docs/content/docs/development/workflow_agent.md index e60f3dea..346f80dd 100644 --- a/docs/content/docs/development/workflow_agent.md +++ b/docs/content/docs/development/workflow_agent.md @@ -144,7 +144,7 @@ public class ReviewAnalysisAgent extends Agent { .addInitialArgument("model", "qwen3:8b") .addInitialArgument("prompt", "reviewAnalysisPrompt") .addInitialArgument("tools", Collections.singletonList("notifyShippingManager")) - .addInitialArgument("extract_reasoning", "true") + .addInitialArgument("extract_reasoning", true) .build(); } diff --git a/examples/src/main/java/org/apache/flink/agents/examples/agents/ReviewAnalysisAgent.java b/examples/src/main/java/org/apache/flink/agents/examples/agents/ReviewAnalysisAgent.java index b82e78ae..bbba3c86 100644 --- a/examples/src/main/java/org/apache/flink/agents/examples/agents/ReviewAnalysisAgent.java +++ b/examples/src/main/java/org/apache/flink/agents/examples/agents/ReviewAnalysisAgent.java @@ -66,7 +66,7 @@ public static ResourceDescriptor reviewAnalysisModel() { .addInitialArgument("model", "qwen3:8b") .addInitialArgument("prompt", "reviewAnalysisPrompt") .addInitialArgument("tools", Collections.singletonList("notifyShippingManager")) - .addInitialArgument("extract_reasoning", "true") + .addInitialArgument("extract_reasoning", true) .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 8b78f8f9..81255006 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 @@ -62,7 +62,7 @@ public OllamaChatModelSetup( ResourceDescriptor descriptor, BiFunction getResource) { super(descriptor, getResource); this.model = descriptor.getArgument("model"); - this.extractReasoning = Boolean.parseBoolean(descriptor.getArgument("extract_reasoning")); + this.extractReasoning = descriptor.getArgument("extract_reasoning"); } /** diff --git a/plan/src/main/java/org/apache/flink/agents/plan/serializer/ResourceProviderJsonDeserializer.java b/plan/src/main/java/org/apache/flink/agents/plan/serializer/ResourceProviderJsonDeserializer.java index b548b4d3..6f43b996 100644 --- a/plan/src/main/java/org/apache/flink/agents/plan/serializer/ResourceProviderJsonDeserializer.java +++ b/plan/src/main/java/org/apache/flink/agents/plan/serializer/ResourceProviderJsonDeserializer.java @@ -82,7 +82,7 @@ private PythonResourceProvider deserializePythonResourceProvider(JsonNode node) JsonNode kwargsNode = node.get("kwargs"); Map kwargs = new HashMap<>(); if (kwargsNode != null && kwargsNode.isObject()) { - kwargs = (Map) parseJsonNode(kwargsNode); + kwargs = mapper.convertValue(kwargsNode, Map.class); } return new PythonResourceProvider( name, ResourceType.fromValue(type), module, clazz, kwargs); @@ -98,7 +98,7 @@ private PythonSerializableResourceProvider deserializePythonSerializableResource JsonNode serializedNode = node.get("serialized"); Map serialized = new HashMap<>(); if (serializedNode != null && serializedNode.isObject()) { - serialized = (Map) parseJsonNode(serializedNode); + serialized = mapper.convertValue(serializedNode, Map.class); } return new PythonSerializableResourceProvider( name, ResourceType.fromValue(type), module, clazz, serialized);