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 openaiSet 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
| Name | Type | Default | Description |
|---|---|---|---|
account_sid | Optional[str] | None | Twilio Account SID for authentication. |
auth_token | Optional[str] | None | Twilio Auth Token for authentication. |
api_key | Optional[str] | None | Twilio API Key for alternative authentication. |
api_secret | Optional[str] | None | Twilio API Secret for alternative authentication. |
region | Optional[str] | None | Optional Twilio region (e.g., au1). |
edge | Optional[str] | None | Optional Twilio edge location (e.g., sydney). |
debug | bool | False | Enable debug logging for troubleshooting. |
enable_send_sms | bool | True | Enable the send_sms functionality. |
enable_get_call_details | bool | True | Enable the get_call_details functionality. |
enable_list_messages | bool | True | Enable the list_messages functionality. |
all | bool | False | Enable all functionality. |
Toolkit Functions
| Function | Description |
|---|---|
send_sms | Sends 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_details | Retrieves details of a call using its SID. Takes the call SID and returns a dictionary with call details (e.g., status, duration). |
list_messages | Lists 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). |