Additional Agent Ideas - curlyphries/Crew.AI-Ollama-Multi-Agent-System GitHub Wiki

Expanded Agents Overview

Table of Contents

  1. Household Chores Agent
  2. Diet & Meal Planning Agent
  3. Vision Board Agent
  4. Language Learning Agent
  5. Book Recommendation Agent
  6. Streaming Recommendation Agent
  7. Photo Management Agent
  8. Home Inventory Agent
  9. Expense Report Agent
  10. 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.

  1. Pick and choose which agents you want to enable in multi_agent_config.yaml.
  2. Add their imports and instantiations to your AgentManager.
  3. 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.