# Echo AI 🤖 Multi-Agent AI Framework
A powerful, plugin-based multi-agent conversational AI framework built on FastAPI and LangGraph, featuring intelligent
agent orchestration, efficient conversation storage, and comprehensive multi-provider LLM support.
## 🚀 Quick Start
### For End Users
```bash
# Install and start everything
pip install echo-cli
echo_ai start all
```
### For Developers
```bash
# Clone and setup
git clone <your-repo-url>
cd echo_ai
poetry install
echo_ai start all --debug
```
## 📋 Table of Contents
- [Features](#-features)
- [Installation](#-installation)
- [Usage](#-usage)
- [API Documentation](#-api-documentation)
- [Plugin Development](#-plugin-development)
- [Configuration](#-configuration)
- [Development](#-development)
- [Deployment](#-deployment)
- [Architecture](#-architecture)
## 🌟 Features
### 🤖 Multi-Agent Orchestration
- **LangGraph-Based Coordination**: Intelligent conversation routing between specialized agents
- **Plugin System**: SDK-based agent discovery with hot reload capabilities
- **Safety Mechanisms**: Configurable limits for agent hops and tool calls
- **State Management**: Comprehensive conversation state tracking with checkpoint persistence
### 💾 Storage Architecture
- **Conversation Turns**: Stores user input and AI responses with context
- **Multi-Backend Support**: PostgreSQL, Redis, and in-memory options
- **Token Tracking**: Precise cost attribution and optimization
### 🧠 Multi-Provider LLM Support
- **OpenAI**: GPT models with function calling
- **Anthropic**: Claude models with large context windows
- **Google**: Gemini models with multimodal capabilities
- **Azure OpenAI**: Enterprise-grade hosted models
### 🖥️ Command Line Interface
- **Simple & Reliable**: Built with argparse for maximum compatibility
- **Service Orchestration**: Start multiple services with a single command
- **Development Tools**: Debug mode, custom ports, dependency checking
## 📦 Installation
### Prerequisites
- **Python 3.13+**
- **Poetry** (for development)
- **PostgreSQL** (optional, for persistent storage)
- **Redis** (optional, for session storage)
### From PyPI (End Users)
```bash
pip install echo-cli
```
### From Source (Developers)
```bash
git clone <your-repo-url>
cd echo_ai
poetry install
```
## 🎯 Usage
### Starting Services
```bash
# Start both API and UI servers
echo_ai start all
# Start only the API server
echo_ai start api
# Start only the UI server
echo_ai start ui
# Start with custom configuration
echo_ai start all --api-port 8080 --ui-port 8502
# Start with debug mode
echo_ai start all --debug
# Skip dependency checking (faster startup)
echo_ai start api --no-check-deps
```
### CLI Commands
```bash
# Show version information
echo_ai version
# Show system information
echo_ai info
# List available plugins
echo_ai plugins
# Show help
echo_ai --help
echo_ai start --help
```
## 📖 API Documentation
### Interactive Docs
- **Swagger UI**: `http://localhost:8000/docs`
- **ReDoc**: `http://localhost:8000/redoc`
### Core Endpoints
#### Chat Processing
```bash
curl -X POST "http://localhost:8000/api/v1/chat" \
-H "Content-Type: application/json" \
-d '{
"message": "Help me solve 2x + 5 = 15",
"thread_id": "user-123-session",
"user_id": "user-123"
}'
```
#### Plugin Management
```bash
# List available plugins
curl "http://localhost:8000/api/v1/plugins"
# Get plugin details
curl "http://localhost:8000/api/v1/plugins/math_agent"
# Reload plugins (development)
curl -X POST "http://localhost:8000/api/v1/plugins/reload"
```
#### System Health
```bash
# Simple health check
curl "http://localhost:8000/api/v1/health"
# Detailed system status
curl "http://localhost:8000/api/v1/status"
```
## 🔌 Plugin Development
### Quick Plugin Example
Create a minimal plugin:
```python
# plugins/hello_agent/plugin.py
from echo_sdk.base.plugin import BasePlugin
from echo_sdk.base.metadata import PluginMetadata
class HelloPlugin(BasePlugin):
@staticmethod
def get_metadata() -> PluginMetadata:
return PluginMetadata(
name="hello_agent",
version="0.1.0",
description="Replies with a friendly greeting",
capabilities=["greeting"],
)
@staticmethod
def create_agent() -> BasePluginAgent:
from .agent import HelloAgent
return HelloAgent(HelloPlugin.get_metadata())
```
```python
# plugins/hello_agent/agent.py
from echo_sdk.base.agent import BasePluginAgent
class HelloAgent(BasePluginAgent):
async def ainvoke(self, message: str) -> str:
return f"Hello from {self.metadata.name}! You said: {message}"
```
### Plugin Structure
```
plugins/
└── your_plugin/
├── __init__.py
├── plugin.py # Plugin contract and metadata
├── agent.py # Agent implementation
└── tools.py # Tool implementations
```
### Docker Compose Setup
```yaml
services:
echo_ai:
build: ..
ports:
- "8000:8000"
- "8501:8501"
environment:
- ECHO_DEFAULT_LLM_PROVIDER=openai
- ECHO_PLUGINS_DIR=["/usr/src/echo_ai/plugins"]
volumes:
- ../plugins:/usr/src/echo_ai/plugins:ro
```
**Note**: The Docker setup uses the new CLI commands via supervisord to manage both API and UI services.
## ⚙️ Configuration
### Environment Variables
```bash
# LLM Provider
ECHO_DEFAULT_LLM_PROVIDER=openai
ECHO_OPENAI_API_KEY=your-openai-key
ECHO_ANTHROPIC_API_KEY=your-claude-key
ECHO_GOOGLE_API_KEY=your-gemini-key
# Database (optional - defaults to in-memory)
ECHO_CONVERSATION_STORAGE_BACKEND=memory # or postgresql
# Plugin Configuration
ECHO_PLUGINS_DIR=["./plugins/src/echo_plugins"]
# API Server
ECHO_API_HOST=0.0.0.0
ECHO_API_PORT=8000
ECHO_DEBUG=true
```
### CLI Override
Most settings can be overridden via CLI arguments:
```bash
echo_ai start api --api-host 127.0.0.1 --api-port 8080 --debug
```
### Safety and Performance
```bash
# Agent Routing Limits
ECHO_MAX_AGENT_HOPS=25
ECHO_MAX_TOOL_HOPS=50
ECHO_GRAPH_RECURSION_LIMIT=50
# Session Management
ECHO_SESSION_TIMEOUT=3600
ECHO_MAX_SESSION_HISTORY=100
```
## 🔧 Development
### Setup
```bash
# Install development dependencies
poetry install --with dev
# Run with auto-reload using CLI (recommended)
echo_ai start all --debug
```
### Development Commands
```bash
# Run tests
poetry run pytest
# Code formatting
poetry run black src/
poetry run isort src/
# Show detailed system information
echo_ai info
# List and manage plugins
echo_ai plugins
```
### Project Structure
```
echo_ai/
├── src/echo/ # Main application code
│ ├── api/ # FastAPI routes and schemas
│ ├── cli.py # Command-line interface (argparse)
│ ├── core/ # Multi-agent orchestration
│ ├── domain/ # Business models and DTOs
│ ├── infrastructure/ # External service integrations
│ ├── config/ # Configuration management
│ └── ui/ # Streamlit chat interface
├── plugins/ # Plugin ecosystem
├── sdk/ # Echo SDK for plugin development
├── docs/ # Documentation
├── migrations/ # Database migrations
├── deploy.sh # PyPI deployment script
└── tests/ # Test suite
```
## 🚀 Deployment
### Health Checks
```bash
# Load balancer health check
GET /api/v1/health
→ {"status": "healthy"}
# Detailed system status
GET /api/v1/status
→ {
"status": "operational",
"available_plugins": ["math_agent", "search_agent"],
"healthy_plugins": ["math_agent", "search_agent"],
"failed_plugins": [],
"total_sessions": 42
}
```
### Docker Deployment
```dockerfile
FROM python:3.13-slim
WORKDIR /app
COPY . .
RUN pip install poetry && poetry install
EXPOSE 8000 8501
# Use the CLI for better control
CMD ["poetry", "run", "echo_ai", "start", "all"]
```
### PyPI Deployment (Maintainers)
```bash
# Deploy with patch version bump
./deploy.sh --patch
# Deploy with minor version bump
./deploy.sh --minor
# Deploy to TestPyPI first
./deploy.sh --test
# Deploy without version bump
./deploy.sh --no-bump
```
## 🏗️ Architecture
### Framework Architecture
```
Echo AI Framework Architecture
├── CLI Layer (argparse)
│ ├── Service Management (start/stop api, ui, or both)
│ ├── System Information (version, info, plugins)
│ └── Development Tools (debug mode, custom config)
├── API Layer (FastAPI)
│ ├── Chat Endpoints (/api/v1/chat)
│ ├── Plugin Management (/api/v1/plugins)
│ └── System Monitoring (/api/v1/status, /api/v1/health)
├── Application Services
│ ├── ConversationService (Complete conversation lifecycle)
│ ├── OrchestratorService (LangGraph coordination wrapper)
│ └── ServiceContainer (Dependency injection and lifecycle)
├── Core Orchestration
│ ├── MultiAgentOrchestrator (LangGraph-based routing)
│ ├── AgentState (Conversation state management)
│ └── Coordinator (Tool-routed graph execution)
├── Domain Models
│ ├── Thread (Conversation containers with cost tracking)
│ ├── Conversation (User-assistant exchanges)
│ ├── User & Organization (Multi-tenant support)
│ └── DTOs (Data transfer objects for API)
└── Infrastructure
├── Database (Multi-backend: PostgreSQL/Redis/Memory)
├── LLM Factory (Multi-provider with caching)
└── Plugin Manager (SDK-based agent discovery)
```
### Storage Architecture
```
📝 Stores: User Input → AI Response
💾 Storage: Conversation turns with context
🔄 Context: Full reconstruction capability for LangGraph
```
### Benefits
- **Efficient Storage**: Optimized conversation history management
- **Fast Loading**: Streamlined conversation history retrieval
- **Context Preservation**: Full LangGraph context reconstruction
- **Token Tracking**: Precise cost attribution and optimization
## 🤝 Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes with proper documentation
4. Add tests for new functionality
5. Ensure all tests pass (`poetry run pytest`)
6. Run code formatting (`poetry run black src/ && poetry run isort src/`)
7. Commit your changes (`git commit -m 'Add amazing feature'`)
8. Push to the branch (`git push origin feature/amazing-feature`)
9. Open a Pull Request
## 📜 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- **LangGraph**: For powerful multi-agent orchestration capabilities
- **FastAPI**: For high-performance async API framework
- **Echo SDK**: For comprehensive plugin development support
- **Pydantic**: For robust data validation and serialization
- **Streamlit**: For interactive development interface
---
**Echo AI Framework** - Empowering intelligent multi-agent conversations with production-ready performance and
developer-friendly architecture.
Raw data
{
"_id": null,
"home_page": null,
"name": "echo-cli",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.13",
"maintainer_email": null,
"keywords": "ai, agents, echo-ai, orchestration, coordination, langchain, langgraph, multi-agent, cli",
"author": "Jonas Kahn",
"author_email": "me@ifelse.one",
"download_url": "https://files.pythonhosted.org/packages/ea/8a/4db4985084ea010cce3b6297bbf972aa190a9bd5d950a756857ab309a650/echo_cli-1.0.2.tar.gz",
"platform": null,
"description": "# Echo AI \ud83e\udd16 Multi-Agent AI Framework\n\nA powerful, plugin-based multi-agent conversational AI framework built on FastAPI and LangGraph, featuring intelligent\nagent orchestration, efficient conversation storage, and comprehensive multi-provider LLM support.\n\n## \ud83d\ude80 Quick Start\n\n### For End Users\n\n```bash\n# Install and start everything\npip install echo-cli\necho_ai start all\n```\n\n### For Developers\n\n```bash\n# Clone and setup\ngit clone <your-repo-url>\ncd echo_ai\npoetry install\necho_ai start all --debug\n```\n\n## \ud83d\udccb Table of Contents\n\n- [Features](#-features)\n- [Installation](#-installation)\n- [Usage](#-usage)\n- [API Documentation](#-api-documentation)\n- [Plugin Development](#-plugin-development)\n- [Configuration](#-configuration)\n- [Development](#-development)\n- [Deployment](#-deployment)\n- [Architecture](#-architecture)\n\n## \ud83c\udf1f Features\n\n### \ud83e\udd16 Multi-Agent Orchestration\n\n- **LangGraph-Based Coordination**: Intelligent conversation routing between specialized agents\n- **Plugin System**: SDK-based agent discovery with hot reload capabilities\n- **Safety Mechanisms**: Configurable limits for agent hops and tool calls\n- **State Management**: Comprehensive conversation state tracking with checkpoint persistence\n\n### \ud83d\udcbe Storage Architecture\n\n- **Conversation Turns**: Stores user input and AI responses with context\n- **Multi-Backend Support**: PostgreSQL, Redis, and in-memory options\n- **Token Tracking**: Precise cost attribution and optimization\n\n### \ud83e\udde0 Multi-Provider LLM Support\n\n- **OpenAI**: GPT models with function calling\n- **Anthropic**: Claude models with large context windows\n- **Google**: Gemini models with multimodal capabilities\n- **Azure OpenAI**: Enterprise-grade hosted models\n\n### \ud83d\udda5\ufe0f Command Line Interface\n\n- **Simple & Reliable**: Built with argparse for maximum compatibility\n- **Service Orchestration**: Start multiple services with a single command\n- **Development Tools**: Debug mode, custom ports, dependency checking\n\n## \ud83d\udce6 Installation\n\n### Prerequisites\n\n- **Python 3.13+**\n- **Poetry** (for development)\n- **PostgreSQL** (optional, for persistent storage)\n- **Redis** (optional, for session storage)\n\n### From PyPI (End Users)\n\n```bash\npip install echo-cli\n```\n\n### From Source (Developers)\n\n```bash\ngit clone <your-repo-url>\ncd echo_ai\npoetry install\n```\n\n## \ud83c\udfaf Usage\n\n### Starting Services\n\n```bash\n# Start both API and UI servers\necho_ai start all\n\n# Start only the API server\necho_ai start api\n\n# Start only the UI server\necho_ai start ui\n\n# Start with custom configuration\necho_ai start all --api-port 8080 --ui-port 8502\n\n# Start with debug mode\necho_ai start all --debug\n\n# Skip dependency checking (faster startup)\necho_ai start api --no-check-deps\n```\n\n### CLI Commands\n\n```bash\n# Show version information\necho_ai version\n\n# Show system information\necho_ai info\n\n# List available plugins\necho_ai plugins\n\n# Show help\necho_ai --help\necho_ai start --help\n```\n\n## \ud83d\udcd6 API Documentation\n\n### Interactive Docs\n\n- **Swagger UI**: `http://localhost:8000/docs`\n- **ReDoc**: `http://localhost:8000/redoc`\n\n### Core Endpoints\n\n#### Chat Processing\n\n```bash\ncurl -X POST \"http://localhost:8000/api/v1/chat\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"message\": \"Help me solve 2x + 5 = 15\",\n \"thread_id\": \"user-123-session\",\n \"user_id\": \"user-123\"\n }'\n```\n\n#### Plugin Management\n\n```bash\n# List available plugins\ncurl \"http://localhost:8000/api/v1/plugins\"\n\n# Get plugin details\ncurl \"http://localhost:8000/api/v1/plugins/math_agent\"\n\n# Reload plugins (development)\ncurl -X POST \"http://localhost:8000/api/v1/plugins/reload\"\n```\n\n#### System Health\n\n```bash\n# Simple health check\ncurl \"http://localhost:8000/api/v1/health\"\n\n# Detailed system status\ncurl \"http://localhost:8000/api/v1/status\"\n```\n\n## \ud83d\udd0c Plugin Development\n\n### Quick Plugin Example\n\nCreate a minimal plugin:\n\n```python\n# plugins/hello_agent/plugin.py\nfrom echo_sdk.base.plugin import BasePlugin\nfrom echo_sdk.base.metadata import PluginMetadata\n\n\nclass HelloPlugin(BasePlugin):\n @staticmethod\n def get_metadata() -> PluginMetadata:\n return PluginMetadata(\n name=\"hello_agent\",\n version=\"0.1.0\",\n description=\"Replies with a friendly greeting\",\n capabilities=[\"greeting\"],\n )\n\n @staticmethod\n def create_agent() -> BasePluginAgent:\n from .agent import HelloAgent\n return HelloAgent(HelloPlugin.get_metadata())\n```\n\n```python\n# plugins/hello_agent/agent.py\nfrom echo_sdk.base.agent import BasePluginAgent\n\n\nclass HelloAgent(BasePluginAgent):\n async def ainvoke(self, message: str) -> str:\n return f\"Hello from {self.metadata.name}! You said: {message}\"\n```\n\n### Plugin Structure\n\n```\nplugins/\n\u2514\u2500\u2500 your_plugin/\n \u251c\u2500\u2500 __init__.py\n \u251c\u2500\u2500 plugin.py # Plugin contract and metadata\n \u251c\u2500\u2500 agent.py # Agent implementation\n \u2514\u2500\u2500 tools.py # Tool implementations\n```\n\n### Docker Compose Setup\n\n```yaml\nservices:\n echo_ai:\n build: ..\n ports:\n - \"8000:8000\"\n - \"8501:8501\"\n environment:\n - ECHO_DEFAULT_LLM_PROVIDER=openai\n - ECHO_PLUGINS_DIR=[\"/usr/src/echo_ai/plugins\"]\n volumes:\n - ../plugins:/usr/src/echo_ai/plugins:ro\n```\n\n**Note**: The Docker setup uses the new CLI commands via supervisord to manage both API and UI services.\n\n## \u2699\ufe0f Configuration\n\n### Environment Variables\n\n```bash\n# LLM Provider\nECHO_DEFAULT_LLM_PROVIDER=openai\nECHO_OPENAI_API_KEY=your-openai-key\nECHO_ANTHROPIC_API_KEY=your-claude-key\nECHO_GOOGLE_API_KEY=your-gemini-key\n\n# Database (optional - defaults to in-memory)\nECHO_CONVERSATION_STORAGE_BACKEND=memory # or postgresql\n\n# Plugin Configuration\nECHO_PLUGINS_DIR=[\"./plugins/src/echo_plugins\"]\n\n# API Server\nECHO_API_HOST=0.0.0.0\nECHO_API_PORT=8000\nECHO_DEBUG=true\n```\n\n### CLI Override\n\nMost settings can be overridden via CLI arguments:\n\n```bash\necho_ai start api --api-host 127.0.0.1 --api-port 8080 --debug\n```\n\n### Safety and Performance\n\n```bash\n# Agent Routing Limits\nECHO_MAX_AGENT_HOPS=25\nECHO_MAX_TOOL_HOPS=50\nECHO_GRAPH_RECURSION_LIMIT=50\n\n# Session Management\nECHO_SESSION_TIMEOUT=3600\nECHO_MAX_SESSION_HISTORY=100\n```\n\n## \ud83d\udd27 Development\n\n### Setup\n\n```bash\n# Install development dependencies\npoetry install --with dev\n\n# Run with auto-reload using CLI (recommended)\necho_ai start all --debug\n```\n\n### Development Commands\n\n```bash\n# Run tests\npoetry run pytest\n\n# Code formatting\npoetry run black src/\npoetry run isort src/\n\n# Show detailed system information\necho_ai info\n\n# List and manage plugins\necho_ai plugins\n```\n\n### Project Structure\n\n```\necho_ai/\n\u251c\u2500\u2500 src/echo/ # Main application code\n\u2502 \u251c\u2500\u2500 api/ # FastAPI routes and schemas\n\u2502 \u251c\u2500\u2500 cli.py # Command-line interface (argparse)\n\u2502 \u251c\u2500\u2500 core/ # Multi-agent orchestration\n\u2502 \u251c\u2500\u2500 domain/ # Business models and DTOs\n\u2502 \u251c\u2500\u2500 infrastructure/ # External service integrations\n\u2502 \u251c\u2500\u2500 config/ # Configuration management\n\u2502 \u2514\u2500\u2500 ui/ # Streamlit chat interface\n\u251c\u2500\u2500 plugins/ # Plugin ecosystem\n\u251c\u2500\u2500 sdk/ # Echo SDK for plugin development\n\u251c\u2500\u2500 docs/ # Documentation\n\u251c\u2500\u2500 migrations/ # Database migrations\n\u251c\u2500\u2500 deploy.sh # PyPI deployment script\n\u2514\u2500\u2500 tests/ # Test suite\n```\n\n## \ud83d\ude80 Deployment\n\n### Health Checks\n\n```bash\n# Load balancer health check\nGET /api/v1/health\n\u2192 {\"status\": \"healthy\"}\n\n# Detailed system status\nGET /api/v1/status\n\u2192 {\n \"status\": \"operational\",\n \"available_plugins\": [\"math_agent\", \"search_agent\"],\n \"healthy_plugins\": [\"math_agent\", \"search_agent\"], \n \"failed_plugins\": [],\n \"total_sessions\": 42\n}\n```\n\n### Docker Deployment\n\n```dockerfile\nFROM python:3.13-slim\n\nWORKDIR /app\nCOPY . .\n\nRUN pip install poetry && poetry install\nEXPOSE 8000 8501\n\n# Use the CLI for better control\nCMD [\"poetry\", \"run\", \"echo_ai\", \"start\", \"all\"]\n```\n\n### PyPI Deployment (Maintainers)\n\n```bash\n# Deploy with patch version bump\n./deploy.sh --patch\n\n# Deploy with minor version bump\n./deploy.sh --minor\n\n# Deploy to TestPyPI first\n./deploy.sh --test\n\n# Deploy without version bump\n./deploy.sh --no-bump\n```\n\n## \ud83c\udfd7\ufe0f Architecture\n\n### Framework Architecture\n\n```\nEcho AI Framework Architecture\n\u251c\u2500\u2500 CLI Layer (argparse)\n\u2502 \u251c\u2500\u2500 Service Management (start/stop api, ui, or both)\n\u2502 \u251c\u2500\u2500 System Information (version, info, plugins)\n\u2502 \u2514\u2500\u2500 Development Tools (debug mode, custom config)\n\u251c\u2500\u2500 API Layer (FastAPI)\n\u2502 \u251c\u2500\u2500 Chat Endpoints (/api/v1/chat)\n\u2502 \u251c\u2500\u2500 Plugin Management (/api/v1/plugins) \n\u2502 \u2514\u2500\u2500 System Monitoring (/api/v1/status, /api/v1/health)\n\u251c\u2500\u2500 Application Services\n\u2502 \u251c\u2500\u2500 ConversationService (Complete conversation lifecycle)\n\u2502 \u251c\u2500\u2500 OrchestratorService (LangGraph coordination wrapper)\n\u2502 \u2514\u2500\u2500 ServiceContainer (Dependency injection and lifecycle)\n\u251c\u2500\u2500 Core Orchestration\n\u2502 \u251c\u2500\u2500 MultiAgentOrchestrator (LangGraph-based routing)\n\u2502 \u251c\u2500\u2500 AgentState (Conversation state management)\n\u2502 \u2514\u2500\u2500 Coordinator (Tool-routed graph execution)\n\u251c\u2500\u2500 Domain Models\n\u2502 \u251c\u2500\u2500 Thread (Conversation containers with cost tracking)\n\u2502 \u251c\u2500\u2500 Conversation (User-assistant exchanges)\n\u2502 \u251c\u2500\u2500 User & Organization (Multi-tenant support)\n\u2502 \u2514\u2500\u2500 DTOs (Data transfer objects for API)\n\u2514\u2500\u2500 Infrastructure\n \u251c\u2500\u2500 Database (Multi-backend: PostgreSQL/Redis/Memory)\n \u251c\u2500\u2500 LLM Factory (Multi-provider with caching)\n \u2514\u2500\u2500 Plugin Manager (SDK-based agent discovery)\n```\n\n### Storage Architecture\n\n```\n\ud83d\udcdd Stores: User Input \u2192 AI Response\n\ud83d\udcbe Storage: Conversation turns with context\n\ud83d\udd04 Context: Full reconstruction capability for LangGraph\n```\n\n### Benefits\n\n- **Efficient Storage**: Optimized conversation history management\n- **Fast Loading**: Streamlined conversation history retrieval\n- **Context Preservation**: Full LangGraph context reconstruction\n- **Token Tracking**: Precise cost attribution and optimization\n\n## \ud83e\udd1d Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes with proper documentation\n4. Add tests for new functionality\n5. Ensure all tests pass (`poetry run pytest`)\n6. Run code formatting (`poetry run black src/ && poetry run isort src/`)\n7. Commit your changes (`git commit -m 'Add amazing feature'`)\n8. Push to the branch (`git push origin feature/amazing-feature`)\n9. Open a Pull Request\n\n## \ud83d\udcdc License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- **LangGraph**: For powerful multi-agent orchestration capabilities\n- **FastAPI**: For high-performance async API framework\n- **Echo SDK**: For comprehensive plugin development support\n- **Pydantic**: For robust data validation and serialization\n- **Streamlit**: For interactive development interface\n\n---\n\n**Echo AI Framework** - Empowering intelligent multi-agent conversations with production-ready performance and\ndeveloper-friendly architecture.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Echo AI - Multi-agent AI orchestration system with plugin management",
"version": "1.0.2",
"project_urls": {
"Documentation": "https://echo_ai.readthedocs.io/",
"Homepage": "https://github.com/jonaskahn/echo-ai",
"Repository": "https://github.com/jonaskahn/echo-ai.git",
"issues": "https://github.com/jonaskahn/echo-ai/issues"
},
"split_keywords": [
"ai",
" agents",
" echo-ai",
" orchestration",
" coordination",
" langchain",
" langgraph",
" multi-agent",
" cli"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "5da962e22bd77d8cd73952f76557911141cc6264c5c3685176b0a37df13c91e1",
"md5": "1a4aabe9602d061990e2d6fc598766b4",
"sha256": "5a7e9b805c52c41be3cbf702958f58ac627bfe753ca999d07d5534d481cf3755"
},
"downloads": -1,
"filename": "echo_cli-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1a4aabe9602d061990e2d6fc598766b4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.13",
"size": 127427,
"upload_time": "2025-08-27T09:06:03",
"upload_time_iso_8601": "2025-08-27T09:06:03.023895Z",
"url": "https://files.pythonhosted.org/packages/5d/a9/62e22bd77d8cd73952f76557911141cc6264c5c3685176b0a37df13c91e1/echo_cli-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ea8a4db4985084ea010cce3b6297bbf972aa190a9bd5d950a756857ab309a650",
"md5": "59cc79acbef7531a40c7103c9c17784d",
"sha256": "bb6fd788d8a34b4719e2297fbed31db2e65e59eaa29afe20e4f36c3fc4a92661"
},
"downloads": -1,
"filename": "echo_cli-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "59cc79acbef7531a40c7103c9c17784d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.13",
"size": 91192,
"upload_time": "2025-08-27T09:06:05",
"upload_time_iso_8601": "2025-08-27T09:06:05.311512Z",
"url": "https://files.pythonhosted.org/packages/ea/8a/4db4985084ea010cce3b6297bbf972aa190a9bd5d950a756857ab309a650/echo_cli-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-27 09:06:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jonaskahn",
"github_project": "echo-ai",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "echo-cli"
}