Skip to main content

Official Dial AutoGen tools — phone numbers, SMS, OTP, and voice calls for Microsoft AutoGen agents

Project description

dial-autogen

Official Dial tools for Microsoft AutoGen — give an AutoGen agent the ability to send SMS, receive OTP codes, and place AI voice calls through Dial. Agents automating signups and web tasks get a real phone identity.

It's the AutoGen sibling of dial-langchain and dial-crewai: each tool is an autogen_core.tools.FunctionTool wrapping the dial-sdk client. It adds nothing to the REST contract — it just shapes Dial's operations into AutoGen tools.

Targeting Microsoft's newer Agent Framework instead of AutoGen? Use dial-agentframework.

Install

pip install dial-autogen

This pulls in dial-sdk and autogen-agentchat.

Give the tools to an agent

Build one DialClient, pass it to dial_tools, and hand the result to an AssistantAgent. Every tool shares that one client — a single connection pool for the whole agent session — and you own its lifecycle (await client.close() when done):

from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import AzureOpenAIChatCompletionClient
from dial_sdk import DialClient, DialConfig
from dial_autogen import dial_tools

dial = DialClient(DialConfig(api_key="sk_live_..."))  # close with `await dial.close()`

model_client = AzureOpenAIChatCompletionClient(
    azure_deployment="gpt-4o",
    model="gpt-4o",
    api_version="2024-10-21",
    azure_endpoint="https://<your-resource>.openai.azure.com/",
)

agent = AssistantAgent(
    name="phone_agent",
    model_client=model_client,
    tools=dial_tools(dial),
    system_message="You operate the team's Dial phone number for SMS, OTP, and voice calls.",
)

DialConfig also takes an optional base_url to target a non-default deployment.

Or pick individual tools

Each builder takes the shared DialClient and returns one FunctionTool:

from dial_autogen import send_message_tool, wait_for_message_tool

tools = [
    send_message_tool(dial),
    wait_for_message_tool(dial),
]

Available tools

Each builder takes your shared DialClient:

Builder Tool name Action
list_numbers_tool list_numbers List your phone numbers
purchase_number_tool purchase_number Provision a new number (billable)
set_number_properties_tool set_number_properties Update a number's nickname / inbound instruction
send_message_tool send_message Send an SMS (optionally MMS)
list_messages_tool list_messages List recent messages
make_call_tool make_call Place an AI voice call
list_calls_tool list_calls List recent calls
get_call_tool get_call Fetch one call by id
get_billing_tool get_billing Credit balance, subscription, per-number mode
wait_for_message_tool wait_for_message Block until the next inbound SMS arrives, or time out

OTP flow

The point of phone identity for an agent: send a code and read the reply. wait_for_message blocks until the next inbound SMS arrives, so an agent can:

  1. trigger a signup that texts a code to your Dial number,
  2. call wait_for_message to read the inbound code,
  3. enter it back into the signup form.

See examples/signup_autogen.ipynb for a runnable agent.

Notes

  • AutoGen runs tools in an async loop, so these tools are async-native — no async→sync bridge (the one difference from the CrewAI sibling).
  • send_message is a write action and isn't idempotent — a re-invoke after a failure can send a duplicate. make_call accepts an idempotency_key.
  • wait_for_message is backed by Dial's presence-based event stream — for durable, at-least-once delivery, register a webhook.

See the AutoGen integration docs for the full guide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dial_autogen-0.10.0.tar.gz (99.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dial_autogen-0.10.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file dial_autogen-0.10.0.tar.gz.

File metadata

  • Download URL: dial_autogen-0.10.0.tar.gz
  • Upload date:
  • Size: 99.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dial_autogen-0.10.0.tar.gz
Algorithm Hash digest
SHA256 9232171d4d71de6828ce024570db8f69c40f8bba947f4d3c7391636d15c2e787
MD5 edeaaa1c1bbb4b4ae6f722fe7bb7ae0b
BLAKE2b-256 9d4b6511b7ee40fd2fa6e8aa34d5cc3f7a3f1b013a1a4b04f8f0ccc7aa912d61

See more details on using hashes here.

Provenance

The following attestation bundles were made for dial_autogen-0.10.0.tar.gz:

Publisher: publish-sdk-autogen.yml on GENWAY-AI/dial

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dial_autogen-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: dial_autogen-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dial_autogen-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3ab9d2767e2dc77c15c8b1e9e75ec8d16834d80dc6ebbb43b4f190c4bf207632
MD5 274b849b26cd3b0bce5d33cfbe7027d3
BLAKE2b-256 c1dae68d26fc10bd12832be7a85f35c736333e9331b763d3a11da19569d6b123

See more details on using hashes here.

Provenance

The following attestation bundles were made for dial_autogen-0.10.0-py3-none-any.whl:

Publisher: publish-sdk-autogen.yml on GENWAY-AI/dial

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page