Build Intelligent Agents
with Async Python.

Orchestrate usage of LLMs, Tools, and RAG with a unified, robust, and production-ready framework. Built for speed and scalability.

pip install ai-parrot

Why AI-Parrot?

Unified Agent API

Simple Chatbot interface to create agents with built-in memory, vector store support, and conversation history management.

Powerful Tooling

Use the @tool decorator, class-based AbstractToolkit, or instantly convert OpenAPI specs into tools with OpenAPIToolkit.

Orchestration

Manage multi-agent workflows with AgentCrew. Support for Sequential, Parallel, Flow, and Loop execution modes.

Connectivity

Native Agent-to-Agent (A2A) protocol and first-class support for Model Context Protocol (MCP).

Multi-Provider

Switch seamlessly between OpenAI, Anthropic, Google Gemini, Groq, X.AI, and Ollama without changing your code.

Scheduling

Give your agents agency with the @schedule decorator to run background tasks like daily briefings or monitoring.

Write Less, Do More.

weather_bot.py
import asyncio
from parrot.bots import Chatbot
from parrot.tools import tool

# 1. Define a tool with type hints
@tool
def get_weather(location: str) -> str:
    """Get the current weather for a location."""
    return f"The weather in {location} is Sunny, 25°C"

async def main():
    # 2. Create the Agent
    bot = Chatbot(
        name="WeatherBot",
        llm="openai:gpt-4o",
        tools=[get_weather],
        system_prompt="You are a helpful weather assistant."
    )
    
    # 3. Configure & Chat
    await bot.configure()
    response = await bot.ask("What's the weather like in Madrid?")
    print(response)

if __name__ == "__main__":
    asyncio.run(main())

Architecture

Modular design enabling agents to act as both consumers and providers.

graph TD User["User / Client"] --> API["AgentTalk Handlers"] API --> Bot["Chatbot / BaseBot"] subgraph Core["Agent Core"] Bot --> Memory["Memory / Vector Store"] Bot --> LLM["LLM Client"] Bot --> TM["Tool Manager"] end subgraph Tools["Capabilities"] TM --> LocalTools["Local Tools"] TM --> Toolkits["Toolkits (OpenAPI)"] TM --> MCPServer["MCP Servers"] end subgraph Connect["Connectivity"] Bot -.-> A2A["A2A Protocol"] Bot -.-> MCP["MCP Protocol"] Bot -.-> Integrations["Telegram / Teams"] end subgraph Orch["Orchestration"] Crew["AgentCrew"] --> Bot Crew --> OtherBots["Other Agents"] end