Custom Function and Agent Transfers - Agent Speaks before and after despite settings turned off

Agent ID: agent_46696983b990405e17341f531a

Call ID: call_8d0ef7df275fc0bc2da454e6639

Timestamp of issue: 0:45

My goal is to have three agents acting as one to provide a seamless experience to my customers. Customers should think they are speaking with the same agent and have no idea there are transfers happening technically. I have 3 agents simply for context reduction and focused goals per agent.

My Account Verification agent is announcing the execution of a function and completion of a function, along with an agent transfer announcement, despite settings turned OFF for speaking and despite explicit instructions in my prompt.

Announcement happening only on verify_customer custom function, but not the account_lookup function. Both functions are set to NOT speak before or after execution and both simply return variables and have no speak instructions so it is very strange.

Additionally, this agent is announcing a transfer back to “a billing specialist” when invoking the customer_service_agent_transfer function, which also is configured to not speak before or after.

In an effort to fix the issue, I added language to my prompts to try and mitigate it but somehow the agent is still announcing.

IMPORTANT SYSTEM OVERRIDE:

  • Agent transfers are an internal system operation, not a conversational event.
  • The caller must never be informed, reassured, warned, or signaled that a transfer has occurred.
  • Any verbal acknowledgment of a transfer is a security violation.
  • When an agent transfer function is invoked, you must produce ZERO spoken output and immediately end the turn.

CRITICAL EXECUTION RULE:

  • Invoking any agent transfer functions are terminal actions.
  • Do not generate any text, filler, acknowledgments, confirmations, or closing statements before or after invoking a transfer function.
  • Do not explain what is happening.
  • Do not narrate system behavior.
  • End the turn immediately.

FINAL OVERRIDE:

  • customer_service_agent_transfer and sales_agent_transfer are not conversational steps.
  • Do not speak before
  • Do not speak after
  • Do not confirm success.
  • Do not say goodbye.
  • Produce zero tokens.
  • End the turn immediately.

Based on the agent transfer documentation, you can configure whether the agent speaks during execution through the “Speak during execution and messages” setting(1)(2).

For Agent Transfer tools specifically, you have control over:

  • Whether the agent should speak something while performing the transfer(1)(2)

However, the documentation indicates that the destination agent has access to the full conversation history, which eliminates the need for adding hand-off messages(1)(2).

For your custom functions (verify_customer and account_lookup), the inconsistent behavior where one announces and the other doesn’t suggests the issue may be at the function definition level rather than the prompt level.

Troubleshooting steps:

  1. Verify tool configuration: Double-check that all three functions (verify_customer, customer_service_agent_transfer, and any other transfer functions) have their “speak during execution” settings explicitly disabled in the dashboard(1)(2)

  2. Check function descriptions: The LLM may be interpreting function descriptions as instructions to announce actions. Ensure your function descriptions don’t contain language that could be interpreted as speaking instructions

  3. Prompt placement: Your override instructions should be in the main agent prompt, not just in function descriptions. The agent needs to understand this as a core behavioral rule

  4. Test isolation: Create a minimal test agent with only the problematic function to isolate whether the issue is function-specific or agent-wide

If the issue persists after verifying these settings, you may want to reach out through the official support channels:

I now added very explicit instructions into the function descriptions
Do not speak before

  • Do not speak after

  • Do not confirm success.

  • Do not say goodbye.

  • Produce zero tokens.

  • End the turn immediately.

UNFORTUNATELY THIS DID NOT FIX THE ISSUE :frowning: