Skip to content

adi1985a/AI-agents-company

Repository files navigation

🏢🤖 AI OfficeSim: Asynchronous Workplace Simulator 📈

A Python-based AI-driven tool simulating a modern office environment with advanced task management, skill-based agent assignment, asynchronous communication, and a powerful real-time GUI monitor.

License: MIT Python AsyncIO Tkinter

📋 Table of Contents

  1. Overview
  2. Key Features
  3. Screenshots (Conceptual)
  4. System Requirements
  5. Core GUI Module (gui.py)
  6. Installation and Setup
  7. Usage Guide
  8. File Structure
  9. Technical Notes
  10. Contributing
  11. License
  12. Contact

📄 Overview

AI OfficeSim: Asynchronous Workplace Simulator is a Python application that models and simulates the dynamics of a modern digital office. It features advanced task management, a diverse team of AI-powered agents with unique roles and skills, asynchronous communication, and a comprehensive, real-time GUI for monitoring and interaction. The system is ideal for exploring collaborative workflows, AI delegation, and digital teamwork.



✨ Key Features

  • 📋 Advanced Task Management:
    • Create, assign, and track tasks with full lifecycle support.
    • Task statuses: Pending, In Progress, Blocked, Completed, Failed.
    • Task priorities: Low, Medium, High, Critical.
    • Task submission and management directly from the GUI.
  • 🤖 Diverse AI Agents:
    • Simulates a full digital team: CEO/Integrator, Web Developer, UX/UI Designer, Copywriter, AI Graphic Designer, Data Analyst, Project Manager, Marketing Strategist, QA/Feedback, Mobile Tester, AI Chatbot, Client Advisor, Hosting/DevOps.
    • Each agent has a unique role, skills, personality traits, and preferred tools.
    • Agents autonomously process, delegate, and communicate about tasks.
    • Agents can use local LLMs (Ollama/Qwen3), OpenAI, or built-in heuristics for AI responses.
  • 🗣️ Asynchronous Communication Bus:
    • Realistic, non-blocking message passing between agents for coordination, information sharing, and delegation.
    • All communication is logged and visible in the GUI.
  • 🖥️ Modern Real-Time GUI (Tkinter + Matplotlib):
    • Large, resizable main window with:
      • Task Submission: Add new tasks with title, description, and priority.
      • Agent Information: Browse all agents, their roles, and skills.
      • Task Status: Live log of all task status changes.
      • Task List: Overview of all tasks, statuses, priorities, and assignees.
      • Results & Code: Multi-tab notebook for:
        • Results (task outputs)
        • HTML, CSS, JavaScript code (generated by agents)
        • Reports (agent details, project summaries, etc.)
      • Conference Room: Real-time, scrollable log of agent-to-agent communication.
      • Agent Bar: Scrollable row of agent buttons for quick access to agent details.
      • Charts: Visualize agent work time and task status distribution (Matplotlib).
      • State Management: Save/load simulation state from the GUI.
      • All popups replaced by in-GUI tabs for seamless workflow.
  • 🧠 Skill-Based Task Assignment:
    • Tasks are automatically assigned to the most suitable agent(s) based on required and available skills.
  • 📊 Analytics and Reporting:
    • Built-in charts for agent activity and task status.
    • Detailed agent and project reports available in the GUI.
  • 💬 Full English Interface:
    • All labels, logs, and messages are in English.

🖼️ Screenshots (Conceptual)

The GUI features a modern, multi-pane layout with tabs for results, code, and reports, a live conference room, and interactive charts.

⚙️ System Requirements

  • Python Version: Python 3.8 or higher
  • Required Libraries:
    • tkinter (standard with Python)
    • matplotlib
    • requests (for Ollama integration, optional)
    • openai (for OpenAI integration, optional)
    • llama-cpp-python (for local Llama models, optional)
  • Recommended: Modern OS, 1920x1080+ screen for best GUI experience

Install dependencies:

pip install matplotlib
# Optional:
pip install requests openai llama-cpp-python

🧩 Core GUI Module (gui.py)

  • The GUI is implemented in gui.py using Tkinter and Matplotlib.
  • All windows, tabs, and logs are integrated into a single, resizable main window.
  • No popups: all agent details, code, and results are shown in the Results & Code notebook.
  • The GUI is launched via the run_gui() function from main.py.

🛠️ Installation and Setup

  1. Clone the Repository:
    git clone <repository-url>
    cd <repository-directory>
  2. Install Dependencies (see above)
  3. Run the Application:
    python main.py

💡 Usage Guide

  1. Launch the application with python main.py.
  2. Use the GUI to:
    • Add new tasks (title, description, priority)
    • Browse and inspect all agents and their skills
    • Track task status and agent activity in real time
    • View all agent communication in the Conference Room
    • See all results, code, and reports in the Results & Code notebook
    • Visualize agent work time and task status with charts
    • Save/load the simulation state at any time
  3. All agent actions, communications, and results are visible in the main window.
  4. The simulation runs until stopped or all tasks are completed.

🗂️ File Structure

  • main.py: Core simulation logic, agent/task management, communication bus, GUI launch
  • agents.py: Agent classes, roles, skills, AI logic (Ollama/OpenAI/heuristics)
  • tasks.py: Task and status definitions
  • gui.py: Modern Tkinter GUI with all-in-one window, charts, logs, and tabs
  • storage.py: State save/load logic
  • requirements.txt: Dependencies
  • README.markdown: This documentation

📝 Technical Notes

  • All-in-one GUI: No popups, all information is in the main window for maximum usability.
  • Agent AI: Agents can use local LLMs (Ollama/Qwen3), OpenAI, or built-in logic for task processing and communication.
  • Extensible: Add new agent types, skills, or task types by editing agents.py and tasks.py.
  • Charts: Real-time Matplotlib charts for agent work time and task status.
  • In-Memory Data: All data is in memory; use save/load for persistence.
  • Concurrency: Uses asyncio for agent logic and communication.

🤝 Contributing

Contributions are welcome! Ideas for new agent types, smarter AI, new GUI features, or integrations are encouraged.

  1. Fork the repository.
  2. Create a new branch for your feature (git checkout -b feature/YourFeature).
  3. Make your changes and commit (git commit -m 'Feature: ...').
  4. Push and open a Pull Request.

Please follow PEP 8, use type hints, and comment your code.

📃 License

This project is licensed under the MIT License. See the LICENSE file for details.

📧 Contact

Project concept by Adrian Lesniak. For questions, feedback, or issues, please open an issue on GitHub or contact the repository owner.


🚀 Simulating the future of work, one asynchronous task at a time!

About

AI-driven office simulation with task management and agent collaboration. Features task creation, assignment based on skills, messaging, and GUI for monitoring. Uses asyncio for async operations and supports task prioritization.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages