hashiruAI / README.md
Kunal Pai
Python file + README cleanup
4be2bb5
|
raw
history blame
3.05 kB

HASHIRU: Hierarchical Agent System for Hybrid Intelligent Resource Utilization

HASHIRU_ARCH

Project Overview

This project provides a framework for creating and managing AI agents and tools. It includes features for managing resource and expense budgets, loading tools and agents, and interacting with various language models.

Directory Structure

  • src/: Contains the source code for the project.
    • tools/: Contains the code for the tools that can be used by the agents.
      • default_tools/: Contains the default tools provided with the project.
      • user_tools/: Contains the tools created by the user.
    • config/: Contains configuration files for the project.
    • utils/: Contains utility functions and classes used throughout the project.
    • models/: Contains the configurations and system prompts for the agents. Includes models.json which stores agent definitions.
    • manager/: Contains the core logic for managing agents, tools, and budgets.
      • agent_manager.py: Manages the creation, deletion, and invocation of AI agents. Supports different agent types like Ollama, Gemini, and Groq.
      • budget_manager.py: Manages the resource and expense budgets for the project.
      • tool_manager.py: Manages the loading, running, and deletion of tools.
      • llm_models.py: Defines abstract base classes for different language model integrations.
    • data/: Contains data files, such as memory and secret words.

Key Components

  • Agent Management: The AgentManager class in src/manager/agent_manager.py is responsible for creating, managing, and invoking AI agents. It supports different agent types, including local (Ollama) and cloud-based (Gemini, Groq) models.
  • Tool Management: The ToolManager class in src/manager/tool_manager.py handles the loading and running of tools. Tools are loaded from the src/tools/default_tools and src/tools/user_tools directories.
  • Budget Management: The BudgetManager class in src/manager/budget_manager.py manages the resource and expense budgets for the project. It tracks the usage of resources and expenses and enforces budget limits.
  • Model Integration: The project supports integration with various language models, including Ollama, Gemini, and Groq. The llm_models.py file defines abstract base classes for these integrations.

Usage

To use the project, you need to:

  1. Configure the budget in src/manager/budget_manager.py.
  2. Create tools and place them in the src/tools/default_tools or src/tools/user_tools directories.
  3. Create agents using the AgentCreator tool or the AgentManager class.
  4. Invoke agents using the AskAgent tool or the AgentManager class.
  5. Manage tools and agents using the ToolManager and AgentManager classes.

Contributing

Contributions are welcome! Please submit pull requests with bug fixes, new features, or improvements to the documentation.