mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-15 12:55:51 +00:00
fix: 防止 MCP 工具调用失败后的 SearchExtraTools/ExecuteExtraTool 死循环
This commit is contained in:
@@ -15,5 +15,12 @@ Inputs:
|
||||
- tool_name: The exact name of the target tool (string)
|
||||
- params: The parameters to pass to the target tool (object)
|
||||
|
||||
If the tool is not found, an error message will be returned suggesting to use SearchExtraTools to discover available tools.`
|
||||
If the tool is not found, an error message will be returned suggesting to use SearchExtraTools to discover available tools.
|
||||
|
||||
FAILURE HANDLING — CRITICAL:
|
||||
If ExecuteExtraTool returns an error (missing parameters, validation error, permission denied, tool not found, or any other failure), you MUST:
|
||||
1. Stop immediately — do NOT retry the same tool.
|
||||
2. Do NOT call SearchExtraTools again for the same tool name.
|
||||
3. Inform the user about the failure and suggest alternatives.
|
||||
Never enter a SearchExtraTools → ExecuteExtraTool retry loop for the same tool.`
|
||||
}
|
||||
|
||||
@@ -27,6 +27,9 @@ const PROMPT_TAIL = ` Returns matching tool names.
|
||||
|
||||
IMPORTANT: ExecuteExtraTool is always available in your tool list. After this search returns tool names, you MUST call ExecuteExtraTool with {"tool_name": "<returned_name>", "params": {...}} to invoke the deferred tool. This is the ONLY way to execute deferred tools — do not read source code or analyze whether the tool is callable, just use ExecuteExtraTool directly.
|
||||
|
||||
FAILURE RETRY POLICY:
|
||||
If ExecuteExtraTool fails for a tool, do NOT search for that same tool again. Searching again will not fix the failure — it will only repeat the same error in a loop. Stop immediately and inform the user about the failure.
|
||||
|
||||
Query forms:
|
||||
- "select:CronCreate,Snip" — fetch these exact tools by name
|
||||
- "discover:schedule cron job" — pure discovery, returns tool info (name, description) without loading. Use when you want to understand available tools before deciding which to invoke.
|
||||
|
||||
Reference in New Issue
Block a user