Skip to main content

Use Composio to get an array of tools with your autogen agent.

Project description

composio-autogen

Adapts Composio tools to AutoGen FunctionTool objects and registers them with your caller and executor agents, so your AutoGen agents can take action across 1000+ apps.

Installation

pip install composio composio-autogen 'ag2[openai]'

Set COMPOSIO_API_KEY (from the dashboard) and OPENAI_API_KEY in your environment.

Quickstart

import os

from autogen import AssistantAgent, LLMConfig, UserProxyAgent
from composio import Composio
from composio_autogen import AutogenProvider

composio = Composio(provider=AutogenProvider())

# Each session is scoped to one of your users
session = composio.create(user_id="user_123")
tools = session.tools()

chatbot = AssistantAgent(
    "chatbot",
    system_message="Reply TERMINATE when the task is done or when user's content is empty",
    llm_config=LLMConfig({
        "api_type": "openai",
        "model": "gpt-5.2",
        "api_key": os.environ["OPENAI_API_KEY"],
    }),
)

user_proxy = UserProxyAgent(
    "user_proxy",
    is_termination_msg=lambda msg: "TERMINATE" in (msg.get("content", "") or ""),
    human_input_mode="NEVER",
    code_execution_config={"use_docker": False},
)

# Register tools with both agents
composio.provider.register_tools(caller=chatbot, executor=user_proxy, tools=tools)

response = user_proxy.initiate_chat(
    chatbot,
    message="Send an email to john@example.com with the subject 'Hello' and body 'Hello from Composio!'",
)

print(response.chat_history)

For multi-turn use, store session.session_id and reuse it with composio.use(session_id) instead of calling create() again.

Provider specifics

AutoGen needs tools registered with two agents, not passed once. Call composio.provider.register_tools(caller=..., executor=..., tools=tools): the caller decides which tool to invoke, and the executor runs it. This method is unique to the AutoGen provider.

AutoGen caps function names at 64 characters, so the provider hashes and truncates long tool slugs to stay under the limit. The registered name will not always match the original Composio slug.

Links

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

composio_autogen-0.18.0.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

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

composio_autogen-0.18.0-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file composio_autogen-0.18.0.tar.gz.

File metadata

  • Download URL: composio_autogen-0.18.0.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for composio_autogen-0.18.0.tar.gz
Algorithm Hash digest
SHA256 b76601fe884e8795654c06f2e19351d080e3f012ab21d7ee7f4d019ebd777e68
MD5 600ed4909603a4c56c2cf3fdd240b79a
BLAKE2b-256 c84655980803773d0f0c8cddb9a619c5210ff7d5c08d4437c6e4d796278b23fe

See more details on using hashes here.

File details

Details for the file composio_autogen-0.18.0-py3-none-any.whl.

File metadata

File hashes

Hashes for composio_autogen-0.18.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a99adba3a6fee3097673b1fc8e773cef9127d3f093230941911e12be0f71f168
MD5 9caa6279fbad9a114e92c385686c6c9c
BLAKE2b-256 cbf41b44f9722ce44c93a94d76c00ddd8afa3bab29411c78b6e6b040449bc3e1

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