diff --git a/.run/Debug Skills.run.xml b/.run/Debug Skills.run.xml
new file mode 100644
index 00000000..1dd23b84
--- /dev/null
+++ b/.run/Debug Skills.run.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/opensearch/agent/tools/RCATool.java b/src/main/java/org/opensearch/agent/tools/RCATool.java
index 94d62ef5..ed662399 100644
--- a/src/main/java/org/opensearch/agent/tools/RCATool.java
+++ b/src/main/java/org/opensearch/agent/tools/RCATool.java
@@ -5,11 +5,8 @@
package org.opensearch.agent.tools;
-import static org.apache.commons.text.StringEscapeUtils.unescapeJson;
-
import java.io.IOException;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
@@ -22,6 +19,7 @@
import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainRequest;
import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainResponse;
import org.opensearch.agent.tools.utils.ClusterStatsUtil;
+import org.opensearch.agent.tools.utils.RCADoc;
import org.opensearch.client.Client;
import org.opensearch.common.xcontent.XContentFactory;
import org.opensearch.core.action.ActionListener;
@@ -36,7 +34,6 @@
import org.opensearch.ml.common.spi.tools.ToolAnnotation;
import org.opensearch.ml.common.transport.prediction.MLPredictionTaskAction;
import org.opensearch.ml.common.transport.prediction.MLPredictionTaskRequest;
-import org.opensearch.ml.common.utils.StringUtils;
import lombok.Getter;
import lombok.Setter;
@@ -94,16 +91,14 @@ public boolean validate(Map parameters) {
@SuppressWarnings("unchecked")
public void runOption1(Map parameters, ActionListener listener) {
String knowledge = parameters.get(KNOWLEDGE_BASE_TOOL_OUTPUT_FIELD);
- knowledge = unescapeJson(knowledge);
- Map knowledgeBase = StringUtils.gson.fromJson(knowledge, Map.class);
- List