Skip to main content

EOT / Skipping Turns

The Problem

There are cases where an agent should not respond to the user immediately after a transcription is received. This often happens during data entry tasks where users naturally pause while thinking or reading information, such as dictating a credit card number or ID. For example:
U: Hello, my name is John Doe.
U: My ID is 33...     <-- Agent usually responds here, interrupting the user
U: 24...
U: 33.
If the agent “barges in” after the first “33”, it disrupts the flow and frustrates the user.

The Solution: skip_turn()

You can control this behavior by instructing the agent to use the skip_turn() tool. This tool explicitly tells the system: “I have received input, but I am choosing not to speak yet. I will wait for the user to continue.” skip_turn() allows the agent to effectively “pass” its turn, keeping the microphone open for the user to finish their thought.

Example Flow

Here is how the interaction looks when the agent uses skip_turn():
U: "My ID is 33..."
[Agent Reason]: The ID is incomplete. I will wait for more digits.
[Agent Action]: calls skip_turn()

U: "24..."
[Agent Reason]: Still incomplete.
[Agent Action]: calls skip_turn()

U: "33."
[Agent Reason]: ID looks complete (6 digits).
[Agent Action]: "Thank you, I have received your ID."

Advanced Pattern: Partial Input Validation

You can combine skip_turn() with validation tools to handle partial inputs robustly. Scenario: Collecting a credit card number.
  1. Tool Definition: Create a validate_credit_card(number) tool.
  2. Validation Logic: If the input number is too short, the tool should return a specific error message.
    • Error Message: “Input is too short. Call skip_turn() to wait for the user to finish speaking.”
  3. Agent Behavior: The agent calls the validation tool, sees the error instructing it to wait, and calls skip_turn().
This creates a self-correcting loop where the agent intelligently waits until valid data is fully received before proceeding.