diff --git a/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/agent/MLChatAgentRunner.java b/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/agent/MLChatAgentRunner.java index c5f7c22ed6..c52cd5427c 100644 --- a/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/agent/MLChatAgentRunner.java +++ b/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/agent/MLChatAgentRunner.java @@ -701,7 +701,13 @@ private static void runTool( ); nextStepListener .onResponse( - String.format(Locale.ROOT, "Failed to run the tool %s with the error message %s.", finalAction, e.getMessage()) + String + .format( + Locale.ROOT, + "Failed to run the tool %s with the error message %s.", + finalAction, + e.getMessage().replaceAll("\\n", "\n") + ) ); }); if (tools.get(action) instanceof MLModelTool) { diff --git a/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/agent/MLPlanExecuteAndReflectAgentRunner.java b/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/agent/MLPlanExecuteAndReflectAgentRunner.java index ef12c385c7..0c529b4622 100644 --- a/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/agent/MLPlanExecuteAndReflectAgentRunner.java +++ b/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/agent/MLPlanExecuteAndReflectAgentRunner.java @@ -520,6 +520,11 @@ private String extractJsonFromMarkdown(String response) { if (response.contains("```")) { response = response.substring(0, response.lastIndexOf("```")); } + } else { + // extract content from {} block + if (response.contains("{") && response.contains("}")) { + response = response.substring(response.indexOf("{"), response.lastIndexOf("}") + 1); + } } response = response.trim(); diff --git a/ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/IndexMappingTool.java b/ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/IndexMappingTool.java index 3a41dfc2d1..80f497335a 100644 --- a/ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/IndexMappingTool.java +++ b/ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/IndexMappingTool.java @@ -95,7 +95,11 @@ public void run(Map parameters, ActionListener listener) try { List indexList = new ArrayList<>(); if (StringUtils.isNotBlank(parameters.get("index"))) { - indexList = gson.fromJson(parameters.get("index"), List.class); + try { + indexList = gson.fromJson(parameters.get("index"), List.class); + } catch (Exception e) { + indexList.add(parameters.get("index")); + } } if (indexList.isEmpty()) {