Skip to content
OperadeDocs

Search documentation

Type to search documentation.

Documentation
Copy page
Open raw Markdown

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 on the draft. Exercise a normal webhook call, a failed call, and the ending condition. In Conversation detail, 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.

On this page
  1. Tool-loop boundary
  2. Enable end_call
  3. Verify the behavior