A lightweight Python framework for orchestrating multi-agent AI systems with A2A communication and multi-LLM support, built on Agent, Clan, and Tool components.
UnisonAI#
Overview#
UnisonAI is a lightweight Python framework designed to streamline the development of single and multi-agent systems. Its core innovation lies in the Clan concept for orchestrating multiple Agents to collaborate, supporting team-like task distribution and Agent-to-Agent (A2A) communication.
Tagline: "Orchestrate the Future of Multi-Agent AI"
Author: Anant Sharma (E5Anant) Current Version: v1.2 (Beta)
Core Components#
| Component | Purpose | Key Features |
|---|---|---|
| Agent | Independent agent or team member | Tool integration, history, inter-agent messaging |
| Clan | Multi-agent orchestration | Auto-planning, task distribution, A2A communication |
| Tool System | Extensible capability framework | @tool decorator, BaseTool class, type validation |
Key Features#
1. A2A Communication Architecture#
- Agents collaborate like team members on complex tasks
- Message passing and coordination between agents
2. Multi-LLM Provider Support#
Native support: Google Gemini, OpenAI, Anthropic, Cohere, Groq, Mistral AI, xAI (Grok), Cerebras, with custom model integration via BaseLLM extension.
3. Tool System#
- Decorator Mode (Recommended): Quick definition using
@tooldecorator - Class Mode (Complex Scenarios): Inherit from
BaseToolclass - Strong Type Validation: Based on
ToolParameterTypeand Pydantic - Standardized Results: Unified
ToolResultobject return
Installation & Quick Start#
pip install unisonai
Single Agent Example#
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"))
Multi-Agent Team (Clan) Example#
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",
)
writer = Agent(
llm=Gemini(model="gemini-2.0-flash"),
identity="Writer",
description="Writes clear reports from research",
)
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()
API Key Configuration#
# Method 1: Config system
from unisonai import config
config.set_api_key("gemini", "your-key")
# Method 2: Environment variable
# export GEMINI_API_KEY="your-key"
# Method 3: Direct initialization
from unisonai.llms import Gemini
llm = Gemini(api_key="your-key")
Custom Tool Creation#
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"
Use Cases#
- Complex Research Tasks: Multi-agent information gathering, analysis, and synthesis
- Workflow Automation: Coordinating multi-step business processes
- Content Creation: Specialized agents for research, writing, and editing
- Data Analysis: Distributed agents processing large datasets
Core Dependencies#
- Pydantic (≥2.4.2) - Data validation
- Rich, Colorama - Terminal UI
- nest-asyncio - Async support
- Various LLM SDKs (openai, anthropic, google-generativeai, etc.)