← Back to Concept Contrast

Concept Contrast Fable

Tool invocation and tool selection

Conclusion first:Tool invocation is the execution step after the model decides which tool to call—sending the call request and receiving the returned result. Tool selection is the decision step of determining "whether to call a tool and which tool to call." The two sit right next to each other on one pipeline, but only by separating the questions do you learn where it is stuck: poor output quality may not be a wrongly written call, but a wrongly chosen tool.

Tool invocation is the execution step after the model decides which tool to call—sending the call request and receiving the returned result. Tool selection is the decision step of determining "whether to call a tool and which tool to call." The two sit right next to each other on one pipeline, but only by separating the questions do you learn where it is stuck: poor output quality may not be a wrongly written call, but a wrongly chosen tool.

Fable

The food runner and the person reading the menu

The banquet hall's kitchen line is divided into two processes. The first is the menu reader—after guests order, they must judge which dish can be made at which stove, which should be cooked first, and whether a substitute is needed. The second is the food runner—after the stove finishes cooking, the runner carries the dish to the guest's table.

The new foreman Xiao Kong noticed that customers had recently been complaining about slow service, so he focused directly on getting the food runner to improve. The runner's speed increased from two trips a minute to three, but complaints did not drop. Xiao Kong added another food runner, and the two ran together, but complaints still did not drop. Xiao Kong grew anxious and said the problem was in the food-running step.

Old Tu, the senior chef in the back kitchen, pulled Little Kong over to stand beside the menu reader for ten minutes. Old Tu said: watch what he is doing. When this person gets a menu, he does not sort it first; he reads straight down in the order on the slip. Braised pork takes forty minutes, while smashed cucumber takes only two. He called out the braised pork first, and the five cold dishes behind it all got stuck waiting. No matter how fast the runner is, there is no dish on the stove to run.

The small hole changed the process. The person reading the menu classified first: fast dishes were ordered first, slow dishes were marked with estimated times, and similar dishes could be cooked together. After classification, it was passed to the stove, and after the stove finished cooking, it went to the server. On the day of the change, average serving time dropped from twenty-eight minutes to fourteen. Complaints fell to zero.

Xiao Kong later reviewed this and drew a process card. What the menu reader does is called "dish scheduling"—choosing which stove, in what order, and whether there is a substitute. What the food runner does is called "dish delivery"—carrying the cooked dishes to the table. The two roles sit next to each other, but the bottleneck is in the first one. He spent two months optimizing the second, which only amplified the errors of the first.

Old Tu said: Slow food delivery may be the server's problem, or it may be that there is simply no food on the stove. Look at the stove first, then at the delivery—when there is no food on the stove, the server standing still is not because he is lazy, but because the earlier decision gave him nothing to deliver. Pairing a fast server with a confused menu reader is like giving an extremely responsive system the wrong tools.

The banquet hall later produced a training manual. The first page had a flowchart with four words written beside it: Dispatch comes first. During new employee onboarding, Old Tu would call them over and have them feel what it's like to be a food runner sprinting down the corridor empty-handed. After one lap, he'd ask: Do you think he ran fast enough? Everyone said yes. Then he'd ask: So why do you think he had no dishes in his hands?

The answer to the last question was written on page two of the manual: when serving is slow, do not first assume the food runner is not fast enough. First check the person reading the menu—whether he chose the right stove, whether he ordered the sequence correctly, and whether there is an alternative.

Tool calling

After the model decides to use a particular tool, the execution step of generating structured call parameters, sending the request, and handling the returned result. It focuses on whether the call format is correct and whether the result is usable.

Tool selection

The decision step in which a model judges, based on user intent and context, whether a tool needs to be called and, among multiple available tools, which one is most suitable. It focuses on "whether to call, and which one to call."

Story Mapping

  • The server carrying dishes: tool invocation—the transfer and return at the execution level.
  • The person reading the menu chooses the stove and the sequence: tool selection—tool matching and scheduling at the decision-making level.
  • Serving braised pork first jams the five cold dishes behind it: the wrong tool choice blocks everything downstream.
  • Optimizing food-running speed is useless: fixing only the invocation step without fixing the selection step leaves the bottleneck untouched.
  • Scheduling comes first: tool selection is a precondition for tool invocation, and if the selection is wrong, no amount of speed in invocation will help.

In the project

When troubleshooting Agent output quality issues, separate tool selection from tool invocation. First check whether the right choice was made—whether the model called a tool when it should not have, failed to call one when it should have, or chose the least efficient among multiple tools. Then check whether the call was written correctly—parameter format, boundary values, and parsing of returned results. For selection errors, look more at the clarity of tool descriptions and decision guidance in the prompt; for invocation errors, look more at schema definitions and error handling.

京ICP备2026014272号