Twilio

Send SMS messages and retrieve call or message details with TwilioTools.

TwilioTools gives an agent functions for sending SMS messages, listing messages, and retrieving call details.

twilio_tools.py
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.twilio import TwilioTools

# Example 1: Enable specific Twilio functions
agent = Agent(
    name="Twilio Agent",
    instructions=[
        """You can help users by:
        - Sending SMS messages
        - Checking message history
        - getting call details
        """
    ],
    model=OpenAIChat(id="gpt-4o"),
    tools=[
        TwilioTools(
            enable_send_sms=True,
            enable_get_call_details=True,
            enable_list_messages=True,
        )
    ],
    markdown=True,
)

# Example 2: Enable all Twilio functions
agent_all = Agent(
    name="Twilio Agent All",
    model=OpenAIChat(id="gpt-4o"),
    tools=[TwilioTools(all=True)],
    markdown=True,
)

# Example 3: Enable only SMS functionality
sms_agent = Agent(
    name="SMS Agent",
    model=OpenAIChat(id="gpt-4o"),
    tools=[
        TwilioTools(
            enable_send_sms=True,
            enable_get_call_details=False,
            enable_list_messages=False,
        )
    ],
    markdown=True,
)

sender_phone_number = "+1234567890"
receiver_phone_number = "+1234567890"

if __name__ == "__main__":
    agent.print_response(
        f"Can you send an SMS saying 'Your package has arrived' to {receiver_phone_number} from {sender_phone_number}?"
    )

Save the code as twilio_tools.py. The active request sends a real SMS. A returned message SID confirms submission to Twilio; use message status to check delivery. Only agent runs; agent_all and sms_agent are alternative configurations.

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno openai twilio

Export your credentials

export OPENAI_API_KEY="your_openai_api_key_here"
export TWILIO_ACCOUNT_SID="your_account_sid_here"
export TWILIO_AUTH_TOKEN="your_auth_token_here"

Set the phone numbers

Replace sender_phone_number with your Twilio phone number and receiver_phone_number with the recipient's E.164 phone number.

Run the example

python twilio_tools.py

Full source: cookbook/91_tools/twilio_tools.py