﻿# MiniMax-M2.5 tool errors: evaluate argument repair and stopping

Test MiniMax-M2.5 recovery from a tool validation error, separating XML parsing, argument types, schema violations and repeated invalid proposals.

Author: Retrivium team
Updated: 2026-11-03
Canonical URL: https://retrivium.ai/journal/minimax-m25-tool-error-recovery/
Language: en

MiniMax-M2.5 can propose tool calls, but a useful recovery test asks whether it corrects the actual invalid argument after receiving a precise error. Repeating a call in a different wrapper is not sufficient.

## Understand the model-specific tool format

The [tool-calling guide](https://huggingface.co/MiniMaxAI/MiniMax-M2.5/blob/main/docs/tool_calling_guide.md) says M2.5 uses the same tool-call syntax as M2. It documents structured XML-style output with a MiniMax tool-call wrapper, invoke entries and named parameter tags.

The [model card](https://huggingface.co/MiniMaxAI/MiniMax-M2.5) describes tool use as a capability. This does not make every proposal valid. Parsing the model's format, validating arguments and deciding whether to execute a tool remain separate application operations.

## Construct a bounded validation error

Use a mocked read-only lookup accepting a location and a unit selected from celsius or fahrenheit. The user explicitly requests celsius. Provide a candidate proposal using kelvin and return a clear validation error identifying the allowed values.

This is a deliberately constructed fixture, not an observed model failure. It tests the recovery transition: after seeing the error, does the next proposal preserve the location and correct the invalid unit without inventing another function?

## Separate failure layers

| Layer | Example failure |
| --- | --- |
| Raw output parsing | A tool wrapper or parameter tag is incomplete |
| Argument representation | An array arrives where a string is expected |
| Schema validation | A unit lies outside the allowed enumeration |
| Tool observation | The lookup reports an application-level failure |
| Model recovery | The next proposal repeats or misinterprets the error |

The [official repository](https://github.com/MiniMax-AI/MiniMax-M2.5) provides model usage references. The documented output format should be checked before a parser failure is labelled poor model reasoning.

## Feed back a useful observation

Return the validation issue as a tool observation associated with the actual proposal. Keep the error specific enough to identify the field, expected type or allowed values. Do not replace it with a vague message saying something went wrong.

Protect the schema during the experiment. A model that expands the allowed enumeration to include kelvin has changed the acceptance target rather than repaired its argument. A valid recovery uses the permitted tool and satisfies the existing request.

## Define recovery and stopping outcomes

Accept a corrected proposal only after independent validation. Then provide a fixed mocked result and check whether the final answer uses that result. A syntactically valid call alone does not complete the user task.

Record repeated invalid proposals, unrelated function changes and incomplete responses separately. End the bounded test at the declared retry limit rather than treating an endless loop as progress. The resulting transcript demonstrates one recovery behavior under known conditions; it does not prove universal tool reliability or justify executing arbitrary proposals without validation.

## Related reading

- [Tool calling through OpenRouter: the model proposes, your app executes](/journal/openrouter-tool-calling/)
- [Align vLLM tool parsers, chat templates and tool-result messages](/journal/vllm-tool-parser-template-contract/)
