A multi-agent research system delegates archive work to a document analysis subagent through the MCP tool corpus_search. When the internal archive holds no passage matching a query, the tool returns a tool result with is_error set to true and the text "no result from archive". The coordinator treats that as an outage, retries three times, then writes into the report that the archive was unavailable. A quality review of 200 runs finds that in 60 percent of the runs carrying that sentence the archive was healthy and the query genuinely matched nothing. Which change most effectively addresses the reviewed defect?
- ARaise the corpus_search request timeout and increase the coordinator's retry count from three to six so that a slow archive has more opportunity to answer before the run gives up on it.
- BInstruct the synthesis subagent in its system prompt to read the phrase about the archive being unavailable as possibly meaning that nothing matched, and to soften the report wording accordingly.
- CReturn a successful tool result whose structured payload states that the search completed and matched no passages, and reserve is_error for cases where the archive could not be read at all. Correct
- DHave corpus_search widen each query with generated synonyms and re-run it internally before returning, so that a query matching no passage at all becomes far less common in practice.
Why A is wrong: Tempting because retries and timeouts are the usual response to an apparent outage, but the archive is answering correctly and quickly, so every added attempt repeats a call that returns the same accurate empty result at extra cost.
Why B is wrong: Tempting because it addresses the visible report sentence, but it asks a downstream model to guess at an ambiguity the tool created, and the coordinator has already burned three retries before the synthesis subagent sees anything.
Why C is correct: Correct because a query that runs to completion and matches nothing is a valid answer rather than a failure, and separating the two states stops the coordinator converting an accurate negative finding into a false outage claim.
Why D is wrong: Tempting because it reduces how often the empty case arises, but it changes retrieval semantics without consent and leaves the underlying signalling defect intact for any query that still matches nothing.