Twilio

TwilioTools enables an Agent to send SMS messages, retrieve call details, and list recent messages through the Twilio REST API.

TwilioTools enables an Agent to interact with Twilio services, such as sending SMS, retrieving call details, and listing messages.

Prerequisites

The following examples require the twilio library and appropriate Twilio credentials, which can be obtained from here.

uv pip install agno twilio openai

Set the following environment variables:

export TWILIO_ACCOUNT_SID=***
export TWILIO_AUTH_TOKEN=***
export TWILIO_FROM_NUMBER="your-account-owned-sms-number"
export TWILIO_TO_NUMBER="your-recipient-number"

Example

Use your normal Twilio credentials and set both phone numbers in E.164 format. TWILIO_FROM_NUMBER must be an SMS-capable sender on your account; trial accounts also require an eligible recipient. The following agent sends a real SMS when run:

from os import environ
from agno.agent import Agent
from agno.tools.twilio import TwilioTools

agent = Agent(
    instructions=[
        "Use your tools to send SMS using Twilio.",
    ],
    tools=[TwilioTools(debug=True)],
    )

agent.print_response(
    f"Send an SMS from {environ['TWILIO_FROM_NUMBER']} to "
    f"{environ['TWILIO_TO_NUMBER']} saying 'Hello from Agno!'",
    markdown=True,
)

Toolkit Params

NameTypeDefaultDescription
account_sidOptional[str]NoneTwilio Account SID for authentication.
auth_tokenOptional[str]NoneTwilio Auth Token for authentication.
api_keyOptional[str]NoneTwilio API Key for alternative authentication.
api_secretOptional[str]NoneTwilio API Secret for alternative authentication.
regionOptional[str]NoneOptional Twilio region (e.g., au1).
edgeOptional[str]NoneOptional Twilio edge location (e.g., sydney).
debugboolFalseEnable debug logging for troubleshooting.
enable_send_smsboolTrueEnable the send_sms functionality.
enable_get_call_detailsboolTrueEnable the get_call_details functionality.
enable_list_messagesboolTrueEnable the list_messages functionality.
allboolFalseEnable all functionality.

Toolkit Functions

FunctionDescription
send_smsSends an SMS to a recipient. Takes recipient phone number, sender number (Twilio), and message body. Returns message SID if successful or error message if failed.
get_call_detailsRetrieves details of a call using its SID. Takes the call SID and returns a dictionary with call details (e.g., status, duration).
list_messagesLists recent SMS messages. Takes a limit for the number of messages to return (default 20). Returns a list of message details (e.g., SID, sender, recipient, body, status).

Developer Resources