Additional Agent Ideas - curlyphries/Crew.AI-Ollama-Multi-Agent-System GitHub Wiki
Expanded Agents Overview
Table of Contents
- Household Chores Agent
- Diet & Meal Planning Agent
- Vision Board Agent
- Language Learning Agent
- Book Recommendation Agent
- Streaming Recommendation Agent
- Photo Management Agent
- Home Inventory Agent
- Expense Report Agent
- Affirmation Agent
Household Chores Agent
- Description: Organizes and assigns daily/weekly chores. Tracks status, due dates, and who’s responsible.
- Purpose: Keeps your household running smoothly without forgetting important tasks.
Implementation
from datetime import datetime
class HouseholdChoresAgent:
def __init__(self):
self.chores = {}
def can_handle(self, query: str) -> bool:
keywords = ["chore", "household", "cleaning", "laundry", "dishes", "assign chore"]
return any(keyword in query.lower() for keyword in keywords)
def handle_query(self, query: str, session: dict) -> (str, dict):
lower_query = query.lower()
response = ""
try:
if "add chore" in lower_query:
# Add chore logic...
# ...
pass
elif "list chores" in lower_query:
# List chores logic...
pass
elif "complete chore" in lower_query:
# Mark chore complete logic...
pass
else:
response = (
"Household Chores Agent can add chores, list chores, and mark chores as complete.\n"
"Examples:\n"
"- Add chore 'Laundry' assigned to Alice due 2025-06-10\n"
"- List chores\n"
"- Complete chore 'Laundry'"
)
except Exception as e:
response = f"Error handling household chores: {e}"
session.setdefault("household_chores_agent", {}).update(self.chores)
return response, session
Diet & Meal Planning Agent
- Description: Generates weekly meal plans, stores recipes, and helps you track dietary preferences.
- Purpose: Simplifies cooking decisions, ensuring varied and healthy meals throughout the week.
Implementation
import random
from datetime import datetime
class DietMealPlanningAgent:
def __init__(self):
self.weekly_plan = {
"monday": [],
"tuesday": [],
# ...
}
self.sample_recipes = {
"breakfast": [...],
"lunch": [...],
"dinner": [...]
}
def can_handle(self, query: str) -> bool:
keywords = ["meal plan", "diet", "recipes", "menu", "what to eat", "cook"]
return any(keyword in query.lower() for keyword in keywords)
def handle_query(self, query: str, session: dict) -> (str, dict):
# Implementation...
pass
Vision Board Agent
- Description: Creates and manages “vision boards” to visualize life goals or inspirations.
- Purpose: Helps maintain motivation by collecting images, quotes, and affirmations in one place.
Implementation
from datetime import datetime
class VisionBoardAgent:
def __init__(self):
self.vision_boards = {}
def can_handle(self, query: str) -> bool:
keywords = ["vision board", "dream board", "inspiration", "goals", "visualize"]
return any(keyword in query.lower() for keyword in keywords)
def handle_query(self, query: str, session: dict) -> (str, dict):
# Implementation...
pass
Language Learning Agent
- Description: Offers random vocabulary words, flashcard creation, and simple translations for select languages.
- Purpose: Encourages incremental learning and practice of a new language.
Implementation
import random
from datetime import datetime
class LanguageLearningAgent:
def __init__(self):
self.language_cards = {
"spanish": {"hello": "hola", ...},
"french": {"hello": "bonjour", ...}
}
def can_handle(self, query: str) -> bool:
keywords = ["learn language", "translate", "flashcards", "vocabulary", "spanish", "french"]
return any(keyword in query.lower() for keyword in keywords)
def handle_query(self, query: str, session: dict) -> (str, dict):
# Implementation...
pass
Book Recommendation Agent
- Description: Suggests books by genre, allows you to rate them, and stores your reading preferences.
- Purpose: Helps discover new favorites and keep track of your personal “to-read” or “have-read” list.
Implementation
import random
from datetime import datetime
class BookRecommendationAgent:
def __init__(self):
self.books_by_genre = {
"fantasy": [...],
"sci-fi": [...],
# ...
}
self.ratings = {}
def can_handle(self, query: str) -> bool:
keywords = ["recommend book", "book recommendation", "reading list", "genre", "novel", "read next"]
return any(keyword in query.lower() for keyword in keywords)
def handle_query(self, query: str, session: dict) -> (str, dict):
# Implementation...
pass
Streaming Recommendation Agent
- Description: Proposes TV shows or movies from various streaming platforms based on genre.
- Purpose: Makes entertainment choices easier and more varied.
Implementation
import random
from datetime import datetime
class StreamingRecommendationAgent:
def __init__(self):
self.stream_data = {
"netflix": {...},
"prime video": {...},
"disney+": {...}
}
def can_handle(self, query: str) -> bool:
keywords = ["streaming", "netflix", "prime video", "disney+", "show me a show", "recommend a movie"]
return any(keyword in query.lower() for keyword in keywords)
def handle_query(self, query: str, session: dict) -> (str, dict):
# Implementation...
pass
Photo Management Agent
- Description: Organizes photos by tags, date, or event name, with quick search functionality.
- Purpose: Prevents your personal photo collection from becoming an unmanageable mess.
Implementation
import os
from datetime import datetime
class PhotoManagementAgent:
def __init__(self):
self.photos = {}
def can_handle(self, query: str) -> bool:
keywords = ["photo", "gallery", "tag photo", "search photos", "organize photos"]
return any(keyword in query.lower() for keyword in keywords)
def handle_query(self, query: str, session: dict):
# Implementation...
pass
Home Inventory Agent
- Description: Tracks home items (electronics, furniture, etc.) along with purchase dates, warranty info, or storage location.
- Purpose: Makes it easy to find items or reference essential info like warranty expirations.
Implementation
from datetime import datetime
class HomeInventoryAgent:
def __init__(self):
self.inventory = {}
def can_handle(self, query: str) -> bool:
keywords = ["inventory", "home item", "warranty", "where is", "track item"]
return any(keyword in query.lower() for keyword in keywords)
def handle_query(self, query: str, session: dict):
# Implementation...
pass
Expense Report Agent
- Description: Logs expenses by category and date, producing simple monthly or overall summaries.
- Purpose: Helps keep finances in check, offering a lightweight budgeting tool.
Implementation
import math
from datetime import datetime
class ExpenseReportAgent:
def __init__(self):
self.expenses = {}
def can_handle(self, query: str) -> bool:
keywords = ["expense", "report", "spend", "spent", "reimburse", "budget"]
return any(keyword in query.lower() for keyword in keywords)
def handle_query(self, query: str, session: dict):
# Implementation...
pass
Affirmation Agent
- Description: Provides uplifting messages or positive statements to boost confidence and mood.
- Purpose: Delivers quick emotional support and motivation during a busy day.
Implementation
import random
from datetime import datetime
class AffirmationAgent:
def __init__(self):
self.affirmations = [
"You are capable of amazing things.",
"You have the power to create change.",
# ...
]
def can_handle(self, query: str) -> bool:
keywords = ["affirmation", "positive", "encourage me", "feel better", "self esteem"]
return any(keyword in query.lower() for keyword in keywords)
def handle_query(self, query: str, session: dict):
# Implementation...
pass
Wrapping Up
With these agents, your Crew.ai Ollama Multi-Agent System gains even more versatility—covering household chores, meal planning, personal inspiration, language practice, entertainment recommendations, photo organization, home inventory, finances, and daily affirmations.
- Pick and choose which agents you want to enable in
multi_agent_config.yaml
. - Add their imports and instantiations to your AgentManager.
- Interact via your standard POST /agent API route, sending queries like, “Add chore ‘Laundry’ assigned to Bob,” or “Teach me some Spanish.”
Enjoy building your enhanced personal assistant system! Feel free to modify the code, add features, or adapt these agents to suit your specific needs.