The result is the next observation
After a tool runs, the model sees only what you return. If you return a noisy dump, the next decision becomes noisy. If you return a crisp observation, the next decision improves.
Summarize for decision-making
A good result says whether the call succeeded, what changed, which facts matter, and what the model can do next. It does not include every field the upstream API returned.
For large results, return a preview plus handles. Let the model ask for details by id rather than filling the context window with material it may never use.
Errors are observations too
Do not hide errors behind generic failure text. Return structured error type, retryability, and a recovery suggestion. The model can often adapt if the observation is clear.