A production-ready multi-agent orchestration system that automates complex workflows across Slack, Jira, and enterprise memory systems.
The Agentic AI Assistant leverages CrewAI to coordinate specialized AI agents that work together to complete intelligent workflows. The system reads from Slack, manages Jira tickets, and maintains semantic memory—all through a unified REST API or interactive web interface.
- Multi-Agent Orchestration: Hierarchical delegation system with specialized agents
- Slack Integration: Read, summarize, and extract information from Slack channels
- Jira Management: Create, update, and search project tickets programmatically
- Semantic Memory: Store and retrieve information using vector embeddings
- REST API: FastAPI-based HTTP endpoints for programmatic access
- Web Interface: Streamlit UI for interactive task management
- Async Processing: Background task execution with real-time status tracking
- Error Resilience: Automatic retry logic and graceful failure handling
| Component | Technology | Version |
|---|---|---|
| Orchestration | CrewAI | Latest |
| API Framework | FastAPI | 0.100+ |
| Web UI | Streamlit | 1.28+ |
| Vector DB | Weaviate | Cloud |
| LLM Provider | OpenAI | GPT-4o-mini |
| Runtime | Python | 3.10+ |
- Python 3.10 or higher
- pip package manager
- Internet connection
- API keys for OpenAI, Slack, Jira, and Weaviate
- Clone repository
git clone <repository-url>
cd AI_ASSISTANT- Create virtual environment
python -m venv .venv
source .venv/bin/activate
# On Windows: .venv\Scripts\activate- Install dependencies
pip install -r requirements.txt- Configure environment
cp .env.example .env
# Edit .env with your API keys- Launch system
python main.pyChoose from:
- Option 1: REST API (http://localhost:8000)
- Option 2: Web UI (http://localhost:8501)
- Navigate to "Submit Task" tab
- Enter: "Read the latest 5 messages from Slack"
- Set priority: "high"
- Click "Submit Task"
- Check status in "Task Status" tab
project-root/
├── main.py # Application entry point
├── src/
| ├── config/
| | ├── __init__.py
| | ├── agent_config.yaml
| | └── weaviate_schema.json
│ ├── llm/
│ │ ├── __init__.py
│ │ └── openai_client.py
│ ├── api/ # REST API layer
│ │ ├── main.py # FastAPI application
│ │ ├── routes.py # Endpoint definitions
│ │ ├── models.py # Pydantic models
│ │ ├── background.py # Task execution
│ │ └── dependencies.py # Dependency injection
│ ├── ui/
| | ├── main.py
│ │ ├── streamlit_app.py # Web interface
│ │ └── __init__.py
│ ├── agents/ # AI agent definitions
│ │ ├── base_agent.py
│ │ ├── planner_agent.py
│ │ ├── slack_agent.py
│ │ ├── jira_agent.py
│ │ └── memory_agent.py
│ ├── tools/ # Tool implementations
│ │ ├── __init__.py
│ │ ├── slack_tools_crewai.py
│ │ ├── slack_tools/
| | | ├── slack_reader.py
| | | ├── slack_summarizer.py
| │ │ └── __init__.py
│ │ ├── jira_tools/
| | | ├── jira_creator.py
| | | ├── jira_updater.py
| │ │ └── __init__.py
│ │ └── memory_tools/
| | ├── memory_store.py
| | ├── memory_retrieve.py
| │ └── __init__.py
│ ├── orchestration/
│ │ ├── __init__.py
│ │ ├── approval_workflow.py
│ │ ├── error_handler.py
│ │ ├── tast_executer.py
│ │ └── crew_manager.py # CrewAI orchestration
│ └── memory/
│ └── weaviate_client.py # Vector database client
├── scripts/
| └── wetup_weaviate.py
├── config/
| ├── __init__.py
| ├── agent_config.yaml
| └── weaviate_schema.json
├── tests/
| ├── quick_test_delegation.py
| └── test_multi_agent.py
├── docs/ # Documentation
├── requirements.txt # Python dependencies
├── .env.example # Example configuration
└── README.md # This file
Analyzes user requests and coordinates specialist agents using delegation tools. Routes tasks to appropriate specialists and consolidates results.
Specialized for Slack interactions. Reads messages, summarizes conversations, and extracts relevant information from channel discussions.
Manages Jira tickets. Creates new issues, updates status, searches existing tickets, and tracks project work.
Maintains long-term context using Weaviate vector database. Stores important information and performs semantic similarity searches.
curl -X POST http://localhost:8000/task \
-H "Content-Type: application/json" \
-d '{
"request": "Read recent Slack messages and create Jira tickets for bugs",
"priority": "high",
"dry_run": false
}'curl http://localhost:8000/memory \
-G -d "query=important%20decisions" \
-d "limit=5" \
-d "min_importance=0.5"curl http://localhost:8000/status/task-abc123Interactive API documentation available at:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
Full API reference: See API.md
Environment variables required in .env:
# OpenAI
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini
# Slack
SLACK_BOT_TOKEN=xoxb-...
SLACK_CHANNEL_ID=C...
# Jira
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_EMAIL=user@domain.com
JIRA_API_TOKEN=ATATT...
JIRA_PROJECT_KEY=SCRUM
# Weaviate
WEAVIATE_URL=https://cluster.weaviate.cloud
WEAVIATE_API_KEY=...
# System
CREWAI_TRACING_ENABLED=trueDetailed setup instructions: See SETUP.md
System diagram and detailed architecture: See ARCHITECTURE.md
Key features:
- Sequential task processing
- Hierarchical agent delegation
- Asynchronous background execution
- Real-time status tracking
- Error handling and retries
- SETUP.md - Installation and configuration
- ARCHITECTURE.md - System design and data flow
- AGENTS.md - Agent capabilities and configurations
- API.md - Endpoint reference and examples
- TOOLS.md - Tool documentation
- TROUBLESHOOTING.md - Common issues and solutions
- Task execution time: 5-30 seconds (depending on complexity)
- Memory queries: <1 second (semantic search)
- Concurrent task limit: Limited by API rate limits
- Task storage: In-memory (restart clears history)
- Never commit
.envfile to version control - Regenerate API keys if exposed
- Use environment variables for sensitive data
- Implement rate limiting for production
- Add authentication layer for API endpoints
curl http://localhost:8000/healthConnection refused: Ensure API server is running with python main.py
OpenAI error: Verify OPENAI_API_KEY is valid and account has credits
Slack/Jira errors: Check API tokens and permissions in respective services
Weaviate timeout: Check internet connection and Weaviate cluster status
See TROUBLESHOOTING.md for detailed solutions.
Guidelines for contributions: See CONTRIBUTING.md
Proprietary - All rights reserved
Current version: 1.0.0
Last updated: October 2025