Skip to main content
UnisonAI Banner

Table of Contents

UnisonAI

Orchestrate the Future of Multi-Agent AI

Stars

License

Python Version


Overview

UnisonAI is a lightweight Python framework for building single-agent and multi-agent AI systems.

  • Agent — standalone or part of a clan, with tool integration and conversation history.

  • Clan — coordinate multiple agents on a shared goal with built-in A2A messaging.

  • Tool System — create tools with @tool decorator or BaseTool class; type-validated, standardized results.

Supports Gemini, OpenAI, Anthropic, Cohere, Groq, Mixtral, xAI, Cerebras, and any custom model (extend BaseLLM).


Quick Start

pip install unisonai-sdk
from unisonai import Agent

from unisonai.llms import Gemini



agent = Agent(

    llm=Gemini(model="gemini-2.0-flash"),

    identity="Assistant",

    description="A helpful AI assistant",

)



print(agent.unleash(task="Explain quantum computing in 3 sentences"))

What Makes UnisonAI Special

Agent-to-Agent (A2A) communication — agents talk to each other as if they were teammates collaborating on complex tasks.

Example

Perfect For

  • Complex Research — multiple agents gathering, analyzing, and synthesizing information

  • Workflow Automation — coordinated agents handling multi-step processes

  • Content Creation — specialized agents for research, writing, and editing

  • Data Analysis — distributed agents processing data with different expertise


Core Components

| Component | Purpose | Key Features |

|-----------|---------|--------------|

| Agent | Standalone or clan member | Tool integration, history, inter-agent messaging |

| Clan | Multi-agent orchestration | Automatic planning, task distribution, A2A communication |

| Tool System | Extensible capabilities | @tool decorator, BaseTool class, type validation |


Usage Examples

Individual Agent

from unisonai import Agent

from unisonai.llms import Gemini



agent = Agent(

    llm=Gemini(model="gemini-2.0-flash"),

    identity="Research Assistant",

    description="An AI assistant for research tasks",

)



agent.unleash(task="Summarize the key benefits of renewable energy")

Agent with Tools

from unisonai import Agent

from unisonai.llms import Gemini

from unisonai.tools.tool import tool



@tool(name="calculator", description="Arithmetic on two numbers")

def calculator(operation: str, a: float, b: float) -> str:

    ops = {"add": a + b, "subtract": a - b, "multiply": a * b, "divide": a / b if b else "err"}

    return str(ops.get(operation, "unknown op"))



agent = Agent(

    llm=Gemini(model="gemini-2.0-flash"),

    identity="Math Helper",

    description="An assistant with a calculator tool",

    tools=[calculator()],

)



agent.unleash(task="What is 1500 * 32?")

Multi-Agent Clan

from unisonai import Agent, Clan

from unisonai.llms import Gemini



researcher = Agent(

    llm=Gemini(model="gemini-2.0-flash"),

    identity="Researcher",

    description="Gathers information on topics",

    task="Research assigned topics",

)



writer = Agent(

    llm=Gemini(model="gemini-2.0-flash"),

    identity="Writer",

    description="Writes clear reports from research",

    task="Write polished reports",

)



clan = Clan(

    clan_name="Research Team",

    manager=researcher,

    members=[researcher, writer],

    shared_instruction="Researcher gathers info, Writer produces the report.",

    goal="Write a brief report on AI in healthcare",

    output_file="report.txt",

)



clan.unleash()

Custom Tools

UnisonAI supports two ways to create tools:

from unisonai.tools.tool import tool



@tool(name="calculator", description="Math operations")

def calculator(operation: str, a: float, b: float) -> str:

    if operation == "add":

        return str(a + b)

    elif operation == "multiply":

        return str(a * b)

    return "Unknown operation"

2. Class-based (For complex/stateful tools)

from unisonai.tools.tool import BaseTool, Field

from unisonai.tools.types import ToolParameterType



class Calculator(BaseTool):

    def __init__(self):

        self.name = "calculator"

        self.description = "Math operations"

        self.params = [

            Field(name="operation", description="add or multiply",

                  field_type=ToolParameterType.STRING, required=True),

            Field(name="a", description="First number",

                  field_type=ToolParameterType.FLOAT, required=True),

            Field(name="b", description="Second number",

                  field_type=ToolParameterType.FLOAT, required=True),

        ]

        super().__init__()



    def _run(self, operation: str, a: float, b: float) -> float:

        return a + b if operation == "add" else a * b

API Key Configuration

  1. Environment Variables:

    export GEMINI_API_KEY="your-key"
    
    export OPENAI_API_KEY="your-key"
    
  2. Direct Initialization:

    llm = Gemini(api_key="your-key")
    

Documentation Hub

Getting Started

Core Documentation

Advanced Features

Examples


FAQ

What is UnisonAI?

Python framework for building and orchestrating AI agents with A2A communication.

When should I use a Clan?

For complex, multi-step tasks requiring specialized agents working together.

Can I add custom LLMs?

Yes! Extend BaseLLM to integrate any model provider.

What are tools?

Reusable components that extend agent capabilities. Create them with the @tool decorator or the BaseTool class.

How do I manage API keys?

Use environment variables or pass directly to the LLM constructor.


Contributing

Author: Anant Sharma (E5Anant)

PRs and issues welcome!

Open Issues •

Submit PRs •

Suggest Features


Metadata

Release files for unisonai-sdk 1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unisonai-sdk 1.4
File Size Uploaded
unisonai_sdk-1.4.tar.gz 32.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for unisonai-sdk 1.4
File Interpreter ABI Platform
unisonai_sdk-1.4-py3-none-any.whl Python 3 none any Details

Total release size: 75.2 kB

Release files / unisonai_sdk-1.4.tar.gz

Download URL unisonai_sdk-1.4.tar.gz
Size 32.6 kB
Tags Source
SHA-256 checksum
How to use checksums
fd0e072e66def553b5b6554b06d063e89863c4a4252c47c44d44fce3bb962399
BLAKE2b-256 checksum
How to use checksums
234c7ada3f8a44b76b0ac0e74bbae6156bc94096a358018865ef82145694cba6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / unisonai_sdk-1.4-py3-none-any.whl

Download URL unisonai_sdk-1.4-py3-none-any.whl
Size 42.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
906c9c01df5752911a5dc087cec808333fa5fd64a813c832c6f93346cd47ef8a
BLAKE2b-256 checksum
How to use checksums
5909cf6ca92db0b5e475d4b799b0d046b7ab954f020cf82417d14c3da6d95585
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

1.4 This release

2 release files

1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page