Skip to main content

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:
Write conditions as clearly as possible. The LLM evaluates these conditions against the conversation context to decide when to trigger the transfer.

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

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.”
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."}.
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."}.
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.
Don’t create a “do everything” tool. Split complex workflows into multiple tools with clear responsibilities. The LLM handles orchestration between tools naturally.
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.
Call your agent and try to trigger each tool. Verify the parameters are passed correctly and the response is used appropriately in the conversation.