The NAF contains a tools system that automatically triggers backend actions based on agent commitments. After each conversational turn, an LLM analyzes the agent's latest message against a set of available tools and determines which tools need to be called immediately to fulfill the agent's promises.
How It Works
The Problem: Conversational agents can make promises to users, but without an execution layer, these remain unfulfilled commitments.
The Solution: After each agent turn, the system:
Examines the latest agent message
Evaluates it against all available tool conditions
Triggers any tools whose conditions are met
Executes the promised actions automatically
Available Tools
check_availability_tool
Purpose: Search for available reservation slots.
Conditions:
agentPromised: The agent clearly states they are going to search for available slots or look up new availability exactly in their latest message [enclosed in <LatestConvoAgentAnswer>]
create_booking_tool
Purpose: Submit and finalize a reservation.
Conditions:
agentPromised: The agent clearly states that they are going to submit a booking right now. So their <LatestConvoAgentAnswer> should contain something like: "I'm submitting your booking now..." or "I will submit your booking in a moment...", etc.
transfer_call_tool
Purpose: Transfer or forward the call to another party.
Conditions:
agentPromised: The agent clearly states that they are going to connect [transfer or forward call] right now or they are connecting, Involving / transferring / the call. So their <LatestConvoAgentAnswer> should contain something like: "I will connect you with a manager right away...", "I will connect you with a co-worker right away...", "I will transfer you to our voicemail...", "I am transferring you to..."
send_sms_tool
Purpose: Send SMS/text message to the customer.
Conditions:
agentPromised: The agent clearly state that they are going to send an sms. So their <LatestConvoAgentAnswer> should contain something like: "I will send you an SMS / text message shortly...", "Give me a moment, I will send you an SMS / text_message with the appointment request details.", "I'm sending a text message / SMS...", "Let me try sending it [confirming SMS or text_message] again...", "I will resend an SMS / text message..." etc.
