owl-agent / .cursor /rules /cursor_project_rules.mdc
zoe102's picture
Upload folder using huggingface_hub
1482718 verified
---
description: Apply these rules when creating the project
globs:
alwaysApply: true
---
## Project Overview
* **Type:** cursor_project_rules
* **Description:** OWL (Optimized Workforce Learning for General Multi-Agent Assistance) is a cutting-edge multi-agent collaboration framework built on top of the CAMEL-AI framework. It focuses on dynamic agent interactions to solve complex, real-world tasks by leveraging toolkits and multiple LLM backends to automate processes efficiently.
* **Primary Goal:** Create a robust multi-agent system capable of solving complex, real-world tasks through dynamic collaboration, extensibility, and seamless integration with various toolkits and LLM backends.
## Project Structure
### Framework-Specific Routing
* **Directory Rules:**
* **[gradio@latest]:** Routes are managed via a Gradio-based web interface. The primary entry point is a single-file or modularized layout (e.g., `ui/app.py`) that defines the interactive components and backend calls.
* Example: For a Python project using Gradio, routing is handled within the application code rather than through a dedicated folder structure like Next.js routers.
### Core Directories
* **Versioned Structure:**
* `owl/agents`**:** Contains implementations for multi-agent roles including user and assistant agents, ensuring version-specific logic and interactions as per CAMEL-AI framework.
* `owl/toolkits`**:** Holds integration logic for various toolkits (Web, Document Processing, Code Execution, etc.) that agents utilize during task execution.
* `owl/ui`**:** Consists of the Gradio-based web interface files, configuration scripts, and components facilitating user interaction.
* `docker`**:** Contains Dockerfiles and related scripts to ensure cross-platform (macOS/Linux, Windows) consistency in deployments.
### Key Files
* **Stack-Versioned Patterns:**
* `main.py`**:** The primary entry point that initializes the agent society, orchestrates tool integration, and manages the overall workflow.
* `owl/agents/agent.py`**:** Implements the core functionalities for both user and assistant agents based on CAMEL-AI standards.
* `owl/ui/app.py`**:** Establishes the web interface using Gradio, integrating model selection, task input, and output display.
* `docker/Dockerfile`**:** Contains configuration for containerized deployment ensuring environment consistency.
## Tech Stack Rules
* **Version Enforcement:**
* **[email protected]+:** Enforce use of type hints, modern Python practices, and adherence to PEP 8 standards.
* **camel_ai@stable:** Maintain core multi-agent communication patterns without deviating from the prescribed agent roles.
* **gradio@latest:** Use the latest Gradio conventions to build an interactive and responsive UI.
* **docker@latest:** Ensure containerization aligns with current Docker best practices for reproducible deployments.
* **Other Libraries (openai_gpt_4o, qwen, deepseek, ollama, playwright, langchain, tiktoken, selenium, beautifulsoup4, requests, pydantic, lxml, chromadb):** Use versions as specified in the tech stack document; adhere to each library’s best practices and update guidelines.
## PRD Compliance
* **Non-Negotiable:**
* "OWL is a cutting-edge multi-agent collaboration framework designed to automate complex real-world tasks." This mandates that all development strictly follows the dynamic agent interaction model, robust tool integration, and extensibility requirements as detailed in the PRD.
## App Flow Integration
* **Stack-Aligned Flow:**
* Example: "OWL Multi-Agent Flow" – The process begins with user input (via command line or web UI), followed by the construction of an agent society in `owl/agents/agent.py`. The assistant agent then selects and utilizes appropriate toolkits (located in `owl/toolkits`) to process tasks, execute code if necessary, and ultimately generate comprehensive responses. The Gradio UI (`owl/ui/app.py`) ensures that these interactions are visible and manageable by the user.
## Best Practices
* **python**
* Write clean, modular code with proper type annotations and adhere to PEP 8.
* Utilize virtual environments to manage dependencies and isolate projects.
* Implement comprehensive logging and error-handling mechanisms.
* **camel_ai**
* Keep agent role definitions clear and decoupled to facilitate maintenance and updates.
* Regularly update and test communication protocols between agents.
* Maintain thorough documentation for custom agent behaviors and toolkit integrations.
* **openai_gpt_4o, qwen, deepseek, ollama**
* Follow API usage best practices and ensure secure key management.
* Monitor performance and adjust model parameters to optimize response times and accuracy.
* Validate outputs rigorously to handle unexpected model behavior.
* **gradio**
* Design intuitive UI layouts that promote ease of use and quick task initiation.
* Ensure responsive design and quick feedback loops for user inputs.
* Keep the UI code modular to facilitate future enhancements.
* **playwright**
* Write robust selectors for browser automation to ensure reliability in dynamic web environments.
* Implement retries and error handling for network-related issues.
* Keep automation scripts separate from core logic to maintain modularity.
* **langchain**
* Maintain clear documentation for data connectors and custom chain implementations.
* Ensure secure handling of data passing between components.
* Regularly test integrations with various LLM backends.
* **docker**
* Build minimal and secure container images following Docker best practices.
* Use multi-stage builds to optimize image size and security.
* Regularly update base images to incorporate security patches.
* **tiktoken, selenium, beautifulsoup4, requests, pydantic, lxml, chromadb**
* Adhere to version-specific guidelines provided in the tech stack documentation.
* Write unit tests to cover key functionality for each library integration.
* Monitor for updates and breaking changes to maintain compatibility.
## Rules
* Derive folder/file patterns directly from the tech stack documented versions and structure (e.g., `owl/agents` for agent logic, `owl/toolkits` for integrations, and `owl/ui` for the web interface).
* For Python and Gradio-based projects, enforce a clear separation between business logic, agent interactions, and UI components.
* Maintain consistency and do not mix version-specific patterns across different segments of the project (e.g., avoid blending modular UI components with monolithic script patterns).
* Ensure that any changes follow the core guidelines defined in the PRD, respecting both non-negotiable requirements and version-specific constraints.
* Regularly review and update documentation to reflect any changes in the underlying tech stack versions or architectural decisions.