Skip to main content

LlamaIndex tools for MultiMail -- give your LlamaIndex agents email capabilities

Project description

llamaindex-multimail

LlamaIndex tools for MultiMail -- give your LlamaIndex agents email capabilities with graduated human oversight.

Installation

pip install llamaindex-multimail

Quick Start

from llama_index.core.agent import ReActAgent
from llama_index.llms.openai import OpenAI
from llamaindex_multimail import MultiMailToolSpec

# Create tools from your API key
tool_spec = MultiMailToolSpec(api_key="mm_live_your_api_key")
tools = tool_spec.to_tool_list()

# Create agent
llm = OpenAI(model="gpt-4o")
agent = ReActAgent.from_tools(tools, llm=llm, verbose=True)

# Run
response = agent.chat("Check mailbox 'mbx_123' for new emails")
print(response)

Available Tools

Tool Description
send_email Send an email (held for approval if gated)
check_inbox List recent emails in a mailbox
read_email Read the full content of an email
reply_email Reply to an existing email thread
search_contacts Search contacts by name or email
list_pending List emails awaiting human approval
decide_email Approve or reject a pending email
get_thread Get all emails in a conversation
tag_email Add tags to an email for classification

Oversight Modes

MultiMail supports graduated oversight so your agent doesn't send unsupervised email:

  • gated_all -- Agent drafts, human approves everything
  • gated_send -- Agent reads freely, human approves outbound (default)
  • monitored -- Agent sends, human can review after
  • autonomous -- Full agent control

When a mailbox uses gated oversight, send_email returns pending_send_approval and the email waits for human review. The agent can check status with list_pending.

Using with Other LlamaIndex Patterns

The MultiMailToolSpec follows the standard LlamaIndex BaseToolSpec pattern, so it works with any agent framework that accepts LlamaIndex tools:

from llamaindex_multimail import MultiMailToolSpec

spec = MultiMailToolSpec(api_key="mm_live_your_api_key")

# Get all tools
tools = spec.to_tool_list()

# Or get a specific tool
send_tool = spec.to_tool_list(func_to_metadata_mapping={
    "send_email": {"name": "send_email", "description": "Send an email"},
})

Links

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

llamaindex_multimail-0.1.0.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

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

llamaindex_multimail-0.1.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file llamaindex_multimail-0.1.0.tar.gz.

File metadata

  • Download URL: llamaindex_multimail-0.1.0.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for llamaindex_multimail-0.1.0.tar.gz
Algorithm Hash digest
SHA256 98b014bc9060a0c0619aa0532d205c5b5f3c273f2c586fafc4366e4b54ad08b3
MD5 ed7cb172e1d71729a00eb1f45881c6a8
BLAKE2b-256 2bafb63d88af110576d0de788eb7b72c8b28cb778444497627c3f245d8638498

See more details on using hashes here.

File details

Details for the file llamaindex_multimail-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for llamaindex_multimail-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 311cf5a1114b063c82c719b42b5d4d5536e6f218b1f97f386f335c338242c4c0
MD5 cf465add6e3f14d1c33eff592935ab92
BLAKE2b-256 770a2ec0d4f0bcb38bc1719145211f95a04a20e3665e1e5f70222f52bc688e4d

See more details on using hashes here.

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