Tools

Tools enable your agents to make external API calls during a conversation to fetch data, send data, and take actions. This extends your agent's capabilities beyond simple conversation, allowing them to:

  • Look up information in real-time (e.g., checking order status or inventory)

  • Perform calculations (e.g., pricing, shipping estimates)

  • Execute business logic

  • Interact with external systems (e.g., booking appointments, updating CRM tickets)

Enabling & Configuring Tools in Your Agent

You can manage the tools available to your agent directly from the Tools tab in the main agent builder.

  • Select Tools: Use the dropdown to select and enable pre-configured tools for your agent (e.g., book_meeting, care_appointment_check).

  • Configure Tool Messages: Expand any enabled tool to customize how the agent communicates while the tool is executing. Tools take time to run, so managing silence and interruptions is crucial for a natural experience.

Message Type

Purpose

Example

Start Message

What the agent says before using the tool. You can set this to a "Fixed" string or provide instructions for the LLM to generate it contextually.

"Sure, let me look that up for you."

Interruption message

What the agent says if the user tries to interrupt while the tool is running. Tools are uninterruptible, so this acknowledges the user while the system finishes.

"Bear with me, I'm still looking that up for you."

Using Tools in Your Agent Flow

How and where you use a tool depends on whether your agent is a Single Prompt Agent or a Multi Prompt (Flow) Agent.

Single Prompt Agent Tools added to the agent are accessible globally throughout the entire conversation.

Multi Prompt Agent (Flow-based) In multi-prompt agents, tools can be configured more flexibly:

  • Inside a node: The tool is available to the agent only while it's in that specific node. Invoking the tool does not cause a node switch. (Use case: Checking eligibility or fetching customer details while staying in the same conversational step). Tools added to the global node are available across all nodes.

  • Transition: When invoked, the tool triggers the transition. The tool output then becomes available in the destination node. (Use case: Routing logic based on tool output—e.g., verifying KYC, then deciding which node to go to next).

Creating a New Tool

To create a new tool from scratch, you will need to define its parameters, API configuration, and response handling.

1. Tool Basics

Field

Description

Example

Name

An explanatory name for the tool

get_order_by_phone

Category

Logical grouping

custom

Description

Clear explanation of what the tool does and when the agent should use it.

Use to fetch order history using registered phone number.

2. Parameters

Define the inputs your API expects. The agent passes these during runtime.

Field

Description

Example

Name

Parameter name

phone

Type

string, string(enum), boolean, or number

string

Required

Whether this parameter is mandatory

true

Validation

Optional regex formula for strict input validation

^\d{10}$

Description

What this input represents and how it's used

Valid 10 digit phone number without country code.

Pro-Tip for Validation:

  • Use regex to enforce strict formats (e.g., ^GI\d{4}$ ensures an order ID starts with GI followed by 4 digits).

  • Use string(enum) when you want the agent to pick from a predefined list of values like delivered, cancelled, etc.

3. API Configuration

Configure how the agent calls your external API. Use the ${variable} syntax to inject parameters into the Body or URL.

Field

Description

Example

Method

HTTP method

POST

URL

Endpoint to call

https://api.example.com/orders

Timeout

Milliseconds before aborting

15000

Headers

Key-value headers

Content-Type: application/json

Body (Raw)

JSON body to inject parameter variables.

{ "phone": "${phone}" }

4. Response Variable Mapping

Specify which parts of the API response the agent should memorize. Use dot notation for nested keys.

Variable name (agent)

JSON path in response

customerName

customer.name

latestOrderId

orders[0].orderId

5. Calculated Variables

Use logic to derive new variables strictly from response variables. This helps classify data for better LLM prompting without needing external backend logic.

  • Calculated Variable: highValueCustomer

  • Logic: If lifetimeSpend > 10000 ➔ true, else false

Special Built-in Endpoints

If you do not need to hit an external API, you can use HoomanLabs' internal tools:

Endpoint

Purpose

Example

identity

Returns input as-is

Echo tool input to validate it directly in a flow.

sum, product, average, maximum, minimum

Perform reliable arithmetic on input parameters.

Let the agent calculate totals, discounts, or percentages reliably (since LLMs struggle with math).