# End call and Tool runtime

At runtime, the model can request attached webhook Tools and, when enabled, the built-in `end_call` Tool. Operade records each request, executes it, returns the result to the model, and lets the model compose the customer-facing answer.

## Tool-loop boundary

One user turn allows five model tool-calling rounds to execute, and one round may contain multiple Tool calls that are all executed. If the model asks for Tools again after those five rounds, Operade does not run that next batch: it removes Tools, records `tool_loop_exhausted`, and makes a final model call to answer from the information already available. This boundary controls repeated side effects and model cost; it is not a retry guarantee.

Each webhook also has its own timeout from 5 to 300 seconds. Invalid arguments, a missing Tool or Secret, timeout, network error, private destination, and HTTP failure are returned as Tool results. Ordinary Tool failures do not close the conversation automatically; the model may explain the failure or use another permitted path.

## Enable `end_call`

`end_call` is a built-in Agent behavior setting, not a webhook Tool you create. Its name is reserved. Enable it only when the agent should decide that a conversation is complete. You can customize its description to clarify when the model may use it.

When the model calls `end_call`, Operade records the Tool call, removes all Tools, and asks for a brief farewell. The conversation closes after that farewell is produced, with the end reason `agent_ended`. A later customer message is rejected because the conversation has ended.

## Verify the behavior

Use [Test chat](/docs/agents/test-chat) on the draft. Exercise a normal webhook call, a failed call, and the ending condition. In Conversation detail, **[Activity](/docs/monitor/transcript-and-activity)** shows `tool_call` and loop events. Confirm that external side effects happened once and that the final customer message is not blank.

For endpoint-specific failures, continue to [Tool troubleshooting](/docs/tools/troubleshooting).
