Open-source AI assistant framework with memory, tool integrations, automation workflows, and extensible architecture.
1
stars
6
commits
Python
primary language
Jun 13, 2026
updated
An open-source AI Assistant framework with memory, tool integration, automation workflows, and extensible architecture.
AI Assistant Framework is a modular, local-first framework for building intelligent AI assistants. It provides a complete toolkit for multi-agent orchestration, voice interactions, document intelligence, and business analytics — all while maintaining full control over your data and models.
| Feature | Description | Status |
|---|---|---|
| Multi-Agent Swarm | Orchestrate multiple specialized agents with seamless handoff | ✅ Available |
| Function Calling | Automatic tool integration with schema generation | ✅ Available |
| Streaming Responses | Real-time response streaming for interactive experiences | ✅ Available |
| Context Management | Shared state across agent interactions | ✅ Available |
| Local LLM Support | Works with Ollama for fully local deployments | ✅ Available |
| Module | Description | Status |
|---|---|---|
| Voice AI Assistant | Real-time voice conversations with Twilio + OpenAI Realtime API | ✅ Available |
| BI Dashboard | Natural language to SQL with AI-generated insights | ✅ Available |
| RAG System | Document Q&A with vector search (LangChain + Qdrant) | ✅ Available |
| Database Integration | SQLite support with SQL agent capabilities | ✅ Available |
┌─────────────────────────────────────────────────────────────┐
│ AI Assistant Framework │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Voice Module │ │ BI Dashboard │ │ RAG System │ │
│ │ (Phone AI) │ │ (Streamlit) │ │ (Document QA)│ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └──────────────────┼──────────────────┘ │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ Multi-Agent Swarm │ │
│ │ (Orchestration Core) │ │
│ └───────────┬─────────────┘ │
│ │ │
│ ┌────────────────┼────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌──────────┐ │
│ │ LLM │ │ Tools │ │ Memory │ │
│ │(Ollama, │ │(Functions│ │ (Context)│ │
│ │OpenAI) │ │ │ │ │ │
│ └─────────┘ └─────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
Swarm Core (swarm/): Multi-agent orchestration engine
Agent Types: Pre-built agent implementations
Router Agent: Intelligent request routingDB Agent: SQL query execution and database interactionOrder Agent: Business logic and external service integrationIntegration Modules:
For detailed architecture documentation, see docs/architecture.md.
git clone https://github.com/jamesou/ai-assistant-framework.git
cd ai-assistant-framework
pip install ai-assistant-framework
Or install with optional dependencies:
# Voice capabilities
pip install ai-assistant-framework[voice]
# Dashboard capabilities
pip install ai-assistant-framework[dashboard]
# RAG capabilities
pip install ai-assistant-framework[rag]
# All features
pip install ai-assistant-framework[all]
pip install -e .
Or for development:
pip install -e ".[dev]"
Create a .env file in the project root:
cp .env.example .env
Edit .env with your configuration:
# LLM Configuration
LLM_MODEL=qwen2.5-coder:7b
# API Keys (required for specific modules)
OPENAI_API_KEY=your_openai_key_here
ANTHROPIC_TOKEN=your_anthropic_key_here
COHERE_TOKEN=your_cohere_key_here
HF_TOKEN=your_huggingface_token_here
# Voice Module (optional)
MAKE_WEBHOOK_URL=your_make_com_webhook_url
PORT=5050
# Database
DATABASE_URL=sqlite:///rss-feed-database.db
python load_sql_data.py
Start the interactive CLI with the multi-agent system:
python run_swarm.py
Example interaction:
Starting Ollama Swarm CLI
User: Show me the latest news from the database
Router Agent: I'll help you query the database.
Router Agent: transfer_to_db_agent()
DB Agent: What specific information would you like to retrieve?
User: Show me all articles from last week
DB Agent: run_sql_select_statement(sql="SELECT * FROM rss_items WHERE published_date >= date('now', '-7 days')")
...
Start the phone assistant server:
python phone_assistant.py
The server will start on http://localhost:5050. Configure your Twilio webhook to point to /incoming-call.
Launch the Streamlit dashboard:
streamlit run dashboard.py
Access the dashboard at http://localhost:8501.
Load documents and start the Q&A interface:
# First, load your documents
python load_documents.py
# Then start the RAG system
python langchain_rag.py
Agents are defined in agents.py:
from swarm import Agent
custom_agent = Agent(
name="Custom Agent",
model="qwen2.5-coder:7b",
instructions="You are a specialized agent for...",
functions=[my_custom_function],
tool_choice="auto",
parallel_tool_calls=True
)
Configure the Swarm client for different LLM backends:
from openai import OpenAI
from swarm import Swarm
# Local deployment with Ollama
ollama_client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama"
)
swarm = Swarm(client=ollama_client)
# Or use OpenAI
openai_client = OpenAI(api_key="your-key")
swarm = Swarm(client=openai_client)
| Provider | Configuration | Status |
|---|---|---|
| Ollama (Local) | base_url="http://localhost:11434/v1" | ✅ Supported |
| OpenAI | api_key="your-key" | ✅ Supported |
from swarm import Swarm, Agent
client = Swarm()
agent = Agent(
name="Assistant",
instructions="You are a helpful assistant.",
model="qwen2.5-coder:7b"
)
response = client.run(
agent=agent,
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.messages[-1]["content"])
from swarm import Agent
def get_weather(location: str):
"""Get weather for a location."""
return f"The weather in {location} is sunny."
agent = Agent(
name="Weather Agent",
instructions="Help users with weather information.",
functions=[get_weather]
)
from swarm import Agent
sales_agent = Agent(name="Sales", instructions="Handle sales inquiries.")
support_agent = Agent(name="Support", instructions="Handle support tickets.")
def transfer_to_sales():
"""Transfer to sales agent."""
return sales_agent
def transfer_to_support():
"""Transfer to support agent."""
return support_agent
router = Agent(
name="Router",
instructions="Route to appropriate agent.",
functions=[transfer_to_sales, transfer_to_support]
)
See the examples directory for more detailed examples.
See docs/roadmap.md for detailed roadmap information.
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
# Fork and clone
git clone https://github.com/jamesou/ai-assistant-framework.git
# Create a branch
git checkout -b feature/your-feature
# Make changes and commit
git commit -am "Add new feature"
# Push and create PR
git push origin feature/your-feature
This project is licensed under the MIT License - see the LICENSE file for details.
Status: Beta — Actively developed and open for contributions!
6 commits
Python
100.0%
Open-source AI assistant framework with memory, tool integrations, automation workflows, and extensible architecture.
1
stars
6
commits
Python
primary language
Jun 13, 2026
updated
An open-source AI Assistant framework with memory, tool integration, automation workflows, and extensible architecture.
AI Assistant Framework is a modular, local-first framework for building intelligent AI assistants. It provides a complete toolkit for multi-agent orchestration, voice interactions, document intelligence, and business analytics — all while maintaining full control over your data and models.
| Feature | Description | Status |
|---|---|---|
| Multi-Agent Swarm | Orchestrate multiple specialized agents with seamless handoff | ✅ Available |
| Function Calling | Automatic tool integration with schema generation | ✅ Available |
| Streaming Responses | Real-time response streaming for interactive experiences | ✅ Available |
| Context Management | Shared state across agent interactions | ✅ Available |
| Local LLM Support | Works with Ollama for fully local deployments | ✅ Available |
| Module | Description | Status |
|---|---|---|
| Voice AI Assistant | Real-time voice conversations with Twilio + OpenAI Realtime API | ✅ Available |
| BI Dashboard | Natural language to SQL with AI-generated insights | ✅ Available |
| RAG System | Document Q&A with vector search (LangChain + Qdrant) | ✅ Available |
| Database Integration | SQLite support with SQL agent capabilities | ✅ Available |
┌─────────────────────────────────────────────────────────────┐
│ AI Assistant Framework │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Voice Module │ │ BI Dashboard │ │ RAG System │ │
│ │ (Phone AI) │ │ (Streamlit) │ │ (Document QA)│ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └──────────────────┼──────────────────┘ │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ Multi-Agent Swarm │ │
│ │ (Orchestration Core) │ │
│ └───────────┬─────────────┘ │
│ │ │
│ ┌────────────────┼────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌──────────┐ │
│ │ LLM │ │ Tools │ │ Memory │ │
│ │(Ollama, │ │(Functions│ │ (Context)│ │
│ │OpenAI) │ │ │ │ │ │
│ └─────────┘ └─────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
Swarm Core (swarm/): Multi-agent orchestration engine
Agent Types: Pre-built agent implementations
Router Agent: Intelligent request routingDB Agent: SQL query execution and database interactionOrder Agent: Business logic and external service integrationIntegration Modules:
For detailed architecture documentation, see docs/architecture.md.
git clone https://github.com/jamesou/ai-assistant-framework.git
cd ai-assistant-framework
pip install ai-assistant-framework
Or install with optional dependencies:
# Voice capabilities
pip install ai-assistant-framework[voice]
# Dashboard capabilities
pip install ai-assistant-framework[dashboard]
# RAG capabilities
pip install ai-assistant-framework[rag]
# All features
pip install ai-assistant-framework[all]
pip install -e .
Or for development:
pip install -e ".[dev]"
Create a .env file in the project root:
cp .env.example .env
Edit .env with your configuration:
# LLM Configuration
LLM_MODEL=qwen2.5-coder:7b
# API Keys (required for specific modules)
OPENAI_API_KEY=your_openai_key_here
ANTHROPIC_TOKEN=your_anthropic_key_here
COHERE_TOKEN=your_cohere_key_here
HF_TOKEN=your_huggingface_token_here
# Voice Module (optional)
MAKE_WEBHOOK_URL=your_make_com_webhook_url
PORT=5050
# Database
DATABASE_URL=sqlite:///rss-feed-database.db
python load_sql_data.py
Start the interactive CLI with the multi-agent system:
python run_swarm.py
Example interaction:
Starting Ollama Swarm CLI
User: Show me the latest news from the database
Router Agent: I'll help you query the database.
Router Agent: transfer_to_db_agent()
DB Agent: What specific information would you like to retrieve?
User: Show me all articles from last week
DB Agent: run_sql_select_statement(sql="SELECT * FROM rss_items WHERE published_date >= date('now', '-7 days')")
...
Start the phone assistant server:
python phone_assistant.py
The server will start on http://localhost:5050. Configure your Twilio webhook to point to /incoming-call.
Launch the Streamlit dashboard:
streamlit run dashboard.py
Access the dashboard at http://localhost:8501.
Load documents and start the Q&A interface:
# First, load your documents
python load_documents.py
# Then start the RAG system
python langchain_rag.py
Agents are defined in agents.py:
from swarm import Agent
custom_agent = Agent(
name="Custom Agent",
model="qwen2.5-coder:7b",
instructions="You are a specialized agent for...",
functions=[my_custom_function],
tool_choice="auto",
parallel_tool_calls=True
)
Configure the Swarm client for different LLM backends:
from openai import OpenAI
from swarm import Swarm
# Local deployment with Ollama
ollama_client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama"
)
swarm = Swarm(client=ollama_client)
# Or use OpenAI
openai_client = OpenAI(api_key="your-key")
swarm = Swarm(client=openai_client)
| Provider | Configuration | Status |
|---|---|---|
| Ollama (Local) | base_url="http://localhost:11434/v1" | ✅ Supported |
| OpenAI | api_key="your-key" | ✅ Supported |
from swarm import Swarm, Agent
client = Swarm()
agent = Agent(
name="Assistant",
instructions="You are a helpful assistant.",
model="qwen2.5-coder:7b"
)
response = client.run(
agent=agent,
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.messages[-1]["content"])
from swarm import Agent
def get_weather(location: str):
"""Get weather for a location."""
return f"The weather in {location} is sunny."
agent = Agent(
name="Weather Agent",
instructions="Help users with weather information.",
functions=[get_weather]
)
from swarm import Agent
sales_agent = Agent(name="Sales", instructions="Handle sales inquiries.")
support_agent = Agent(name="Support", instructions="Handle support tickets.")
def transfer_to_sales():
"""Transfer to sales agent."""
return sales_agent
def transfer_to_support():
"""Transfer to support agent."""
return support_agent
router = Agent(
name="Router",
instructions="Route to appropriate agent.",
functions=[transfer_to_sales, transfer_to_support]
)
See the examples directory for more detailed examples.
See docs/roadmap.md for detailed roadmap information.
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
# Fork and clone
git clone https://github.com/jamesou/ai-assistant-framework.git
# Create a branch
git checkout -b feature/your-feature
# Make changes and commit
git commit -am "Add new feature"
# Push and create PR
git push origin feature/your-feature
This project is licensed under the MIT License - see the LICENSE file for details.
Status: Beta — Actively developed and open for contributions!
6 commits
Python
100.0%