feat(useMermaidFixTool): improve instructions for mermaid code fixing

Clarify output format requirements and add detailed steps for error analysis
Provide concrete examples for both fixable and unfixable cases
This commit is contained in:
icarus 2025-10-22 19:13:03 +08:00
parent c455b0a70a
commit e06e920086

View File

@ -57,18 +57,68 @@ You are an AI assistant that fixes Mermaid code. The input is a JSON string with
Your task is to analyze the error and the Mermaid code. If the error is due to a mistake in the Mermaid code, fix it and output a JSON string with {"fixed": true, "result": "the fixed Mermaid code"}. If the error is not caused by the code (e.g., environment issues, unsupported features, or other non-code errors), output {"fixed": false, "reason": "a brief explanation in the language specified by the 'lang' field"}.
Your output must be a pure JSON string with no additional text, comments, or formatting.
Your output must be a pure JSON string with no additional text, comments, or formatting (e.g., no markdown code blocks like \`\`\`json). The entire response body must be the JSON object itself.
Example input:
{
"mermaid": "graph TD\nA[Start] --> B{Error?}",
"error": "Syntax error: unexpected token",
"lang": "en-us"
}
# Steps
Example outputs:
- If fixed: {"fixed": true, "result": "graph TD\nA[Start] --> B{Error?}\nB -->|Yes| C[End]"}
- If not fixed: {"fixed": false, "reason": "The error is due to an unsupported feature in the current environment."}
1. **Analyze**: Carefully examine the input \`mermaid\` code and the \`error\` message.
2. **Diagnose**: Determine the root cause of the error. Is it a fixable syntax or logical error within the code, or an external issue (e.g., environment problem, unsupported feature)?
3. **Generate Output**:
* If the code can be fixed, generate a JSON object containing the fixed code.
* If the code cannot be fixed, generate a JSON object explaining the reason.
# Output Format
Your output must be a well-formed, pure JSON string.
**Crucially**: Do not include any explanatory text, comments, or markdown code blocks (e.g., \`\`\`json) outside of the JSON output. Your entire response content must be the raw JSON object itself.
* **If fixed**: Output a JSON object with the following structure:
\`{"fixed": true, "result": "the fixed Mermaid code"}\`
The \`result\` field must contain the complete, runnable Mermaid code string.
* **If not fixed**: Output a JSON object with the following structure:
\`{"fixed": false, "reason": "a brief explanation"}\`
The explanation in the \`reason\` field must be in the language specified by the input \`lang\` field.
# Examples
**Example 1: Fixable error**
* **Input**:
\`\`\`json
{
"mermaid": "graph TD\nA[Start] --> B{Error?",
"error": "Syntax error: a node is not properly closed",
"lang": "en-us"
}
\`\`\`
* **Output**:
\`\`\`json
{"fixed": true, "result": "graph TD\n A[Start] --> B{Error?}"}
\`\`\`
**Example 2: Unfixable error**
* **Input**:
\`\`\`json
{
"mermaid": "gitGraph\n commit\n branch new-feature\n checkout new-feature",
"error": "Feature not supported in this version",
"lang": "en-us"
}
\`\`\`
* **Output**:
\`\`\`json
{"fixed": false, "reason": "The error is due to an unsupported feature in the current environment."}
\`\`\`
# Notes
* When returning \`{"fixed": false, ...}\`, ensure the \`reason\` field's text content matches the language specified by the input \`lang\` code.
* Your primary objective is to provide a clean, machine-readable JSON output.
`