Tools
Tools extend your agent’s capabilities beyond conversation. They allow the agent to perform real actions during a call — like calling an external API, transferring the call to a human, or ending the call based on specific conditions.Tool Types
Callem Studio supports three types of tools:HTTP Tool
HTTP tools leverage the function calling capability of modern LLMs to invoke external APIs during a conversation.How It Works
1
Define the tool
Create a tool with a name, description, parameters (JSON Schema), and an API endpoint.
2
Attach to an agent
Link the tool to one or more agents via the Model tab → Knowledge & Tools section.
3
LLM decides when to call
During a call, the LLM analyzes the conversation and determines when a tool invocation is appropriate based on its description and the caller’s intent.
4
Execution
The system calls your API endpoint with the extracted parameters. Your endpoint processes the request and returns a result.
5
Response integration
The tool’s response is fed back to the LLM, which uses it to continue the conversation naturally (e.g. “I’ve booked your appointment for Tuesday at 3pm”).
HTTP Tool Configuration
Async Mode
When async is enabled, the agent sends the API request but does not wait for the response before continuing the conversation. This is useful for:- Logging events to an external system
- Sending notifications (email, SMS, Slack)
- Triggering background processes that don’t affect the conversation flow
Writing Effective Descriptions
The tool description is critical — it tells the LLM when to use the tool. Bad description:“Handles appointments”Good description:
“Book a new appointment for the caller. Use this tool ONLY when the caller has explicitly confirmed they want to schedule a visit and has provided their name, preferred date, and time. Do NOT use this tool for general questions about availability.”
Parameter Definition (JSON Schema)
Parameters use JSON Schema format. Each parameter needs:type— data type (string,number,boolean,object,array)description— what this parameter represents (the LLM reads this to extract the right value from the conversation)
Example: Appointment Booking Tool
Example: CRM Lookup Tool
Transfer Call Tool
The Transfer Call tool lets you define conditions under which the agent should transfer the call to another phone number.Configuration
Each Transfer Call tool contains one or more conditions, each with:
You can define multiple conditions with different target numbers:
End Call Tool
The End Call tool lets you define conditions under which the agent should terminate the call.Configuration
Each End Call tool contains one or more conditions:
Multiple conditions can be defined:
Linking Tools to an Agent
You can attach tools to agents in the agent’s Model tab → Knowledge & Tools section. Select one or more tools from the dropdown. Tools can be shared across multiple agents.Tool Invocation During Calls
When a tool is invoked during a call, you can see it in:- Chat sidebar (test mode) — shows tool name, input parameters, and output
- Call transcript (call detail view) — logged as part of the conversation flow
- Observability (if configured) — traced in Langfuse/Langsmith for debugging
Best Practices
Write precise, condition-specific descriptions
Write precise, condition-specific descriptions
The LLM uses the tool description to decide when to call it. Include explicit trigger conditions and counter-conditions. For example: “Use when X. Do NOT use when Y.”
Return human-readable responses from HTTP tools
Return human-readable responses from HTTP tools
Your API endpoint should return clear messages the agent can relay to the caller. Instead of
{"status": 200, "id": "apt_123"}, return {"message": "Appointment confirmed for Tuesday March 15 at 3:00 PM."}.Handle errors gracefully
Handle errors gracefully
Return meaningful error messages from HTTP endpoints. The agent will relay these to the caller. Example:
{"error": "No available slots on that date. Please suggest an alternative."}.Use async for fire-and-forget actions
Use async for fire-and-forget actions
Enable async mode for tools that log events, send notifications, or trigger background processes where the agent doesn’t need to wait for a response.
One tool = one action
One tool = one action
Don’t create a “do everything” tool. Split complex workflows into multiple tools with clear responsibilities. The LLM handles orchestration between tools naturally.
Use Transfer Call for escalation paths
Use Transfer Call for escalation paths
Instead of hardcoding transfer numbers in the system prompt, use a Transfer Call tool with explicit conditions. This makes the logic visible, editable, and independent from the prompt.
Test with real scenarios
Test with real scenarios
Call your agent and try to trigger each tool. Verify the parameters are passed correctly and the response is used appropriately in the conversation.