Dynamic Tool Name Leaking to Frontend Chat Interface — [done] Showing to Users

Hi MindStudio Team,

I am building an AI interviewer bot and have encountered
a bug that I need help resolving urgently.

AGENT DETAILS:

  • Agent Name: CYVANTIC AI Recruiter
  • Agent ID: 436f2140-c6f0-4a56-aa16-38ab16bab786
  • Workflow: Main.flow
  • Model: GPT-4o

THE BUG:
When a Dynamic Tool is invoked inside a Chat block,
the tool name appears as a visible chat message to
the end user.

The user sees: [done]

This is the name of my Dynamic Tool. It should never
be visible to the user — it is backend logic that
should execute silently.

MY CURRENT SETUP:

  • Chat block with Dynamic Tool named “done”
  • Tool Type: Foreground
  • Destination: Generate Text block
  • Template field: set to {{Chat.lastMessage}}
  • Transition Control: Dynamic Tool Use

WHAT I HAVE ALREADY TRIED:

  1. Changed tool Type to Background — the Workflow
    dropdown appears but is completely unclickable
    and shows no options, making Background tools
    unusable for workflow transitions
  2. Set Template field to {{Chat.lastMessage}} —
    tool name still shows
  3. Renamed tool to shorter names — the name still
    appears as a chat message in brackets
  4. Added output rules to System Prompt — partially
    helped but did not fully resolve the issue
  5. Cleared System Introduction field completely

WHAT I SEE IN CHAT HISTORY (from debugger):
{“source”:“system”,“content”:“internal::tool::Done({})”}

The tool call syntax is being saved INTO the chat
history and rendered to the user.

ADDITIONAL BUG — Background Tool Workflow Dropdown:
When Tool Type is set to Background, a Workflow
dropdown field appears but is completely unclickable
and shows no available workflows. This makes
Background tools completely unusable for triggering
workflow transitions, which forces us to use
Foreground — which leaks the tool name to users.

This feels like two connected bugs:

  1. Foreground tool names rendering visibly in chat
  2. Background tool Workflow dropdown not functioning

EXPECTED BEHAVIOR:
When the model invokes a Dynamic Tool, the tool
call should execute completely silently. Only clean
conversational text should be visible to the user.

ACTUAL BEHAVIOR:
The tool name appears in square brackets [done]
as a visible chat message to the candidate
immediately after the goodbye message.

IMPACT:
This makes the product look broken and
unprofessional to end users and is currently
blocking us from launching.

Please advise on the correct fix or confirm if
this is a known bug being worked on.

Thank you,
CYVANTIC Team

Hi,

Thanks for the detailed post! Let me answer your questions one by one.

On the tool syntax appearing in the chat: this is actually intended behavior. When the model in the Chat block triggers a background process, the tool call activity is displayed while it runs, so the user knows something is happening rather than seeing a frozen interface. There’s no way to hide this within MindStudio’s native chat UI.

If you need a fully clean interface, the workaround is to build your own frontend and connect it to your agent via API. Your frontend handles the display, and you pass user messages to the agent programmatically. Keep in mind that this approach requires you to maintain conversation history on your end.

On the Background tool Workflow dropdown: the dropdown is empty because it’s looking for workflows that already exist in your agent. The fix is to create a separate workflow for each Dynamic Tool in your agent first. Once those workflows exist, they’ll appear as selectable options in the dropdown. Make sure to define Launch Variables in the Start block of each workflow and configure the key-value pairs in the End blocks.

Here’s a tutorial that walks through the full Dynamic Tools setup:

And here’s a sample agent you can remix to explore the structure:
https://app.mindstudio.ai/agents/dynamic-tools-in-chat-8650c49b/remix

Let me know if you have any questions.

1 Like

Thanks for the reply. i will follow what you have stated and give you a feedback on it .