Backend
Backoffice
Bauri - Task Scheduler

Bauri - Task Scheduler Agent

Bauri is the agent responsible for managing scheduled tasks and recurring events in the TKM AI Agency Platform. It provides a robust scheduling system that enables automated execution of tasks across different agents.

Overview

The Bauri agent handles:

  • Task scheduling and management
  • Recurring event execution
  • Event lifecycle management
  • Cross-agent task coordination

Directory Structure

Bauri/
├── bauri.py            # Main agent implementation
├── api_bauri.py        # FastAPI router and endpoints
├── tools.py            # Core functionality and utilities
├── tools_schema.py     # Data models and schemas
├── bauri_migrations.py # Database migrations
└── test_bauri.py      # Unit tests

Core Components

Event Models

Scheduled Event

class ScheduledEvent(BaseModel):
    id: str
    auth0_id: str
    organization_id: str
    type_of_event: str
    recurrency: Literal["daily", "weekly", "monthly"]
    start_event: datetime
    end_date: Optional[datetime]
    created_at: datetime
    updated_at: datetime

Event Request

class EventRequest(BaseModel):
    auth0_id: str
    organization_id: str
    type_of_event: str
    recurrency: Literal["daily", "weekly", "monthly"]
    start_event: datetime
    end_date: Optional[datetime]

API Endpoints

Event Management

Create Event

POST /api/bauri/events
{
    "auth0_id": str,
    "organization_id": str,
    "type_of_event": str,
    "recurrency": "daily" | "weekly" | "monthly",
    "start_event": datetime,
    "end_date": Optional[datetime]
}

Update Event

PUT /api/bauri/events/{event_id}
{
    "auth0_id": str,
    "organization_id": str,
    "type_of_event": str,
    "recurrency": "daily" | "weekly" | "monthly",
    "start_event": datetime,
    "end_date": Optional[datetime]
}

Delete Event

DELETE /api/bauri/events/{event_id}

List Events

GET /api/bauri/events

Query Parameters:

  • auth0_id: Optional[str]
  • organization_id: Optional[str]

Execute Event Now

POST /api/bauri/events/{event_id}/execute

Main Features

Task Scheduling

  • Support for daily, weekly, and monthly recurring tasks
  • Flexible scheduling with start and end dates
  • Immediate task execution capability
  • Cross-agent task coordination

Event Management

  • CRUD operations for scheduled events
  • Event filtering by user and organization
  • Event lifecycle tracking
  • Automatic cleanup of expired events

Scheduler Features

  • Asynchronous task execution
  • Cron-based scheduling
  • Event persistence
  • Error recovery

Integration

With Other Agents

Bauri can schedule tasks for any agent in the system:

await self.mediator.route_request(
    from_agent="bauri",
    to_agent=event.type_of_event,
    data={
        "action": "execute_scheduled_task",
        "event_id": event.id,
        "user_id": event.auth0_id,
        "organization_id": event.organization_id
    }
)

Error Handling

The agent implements comprehensive error handling for:

  • Scheduling conflicts
  • Invalid recurrence patterns
  • Failed task executions
  • Integration errors

Performance Features

Scheduling Optimization

  • Efficient task queuing
  • Resource usage management
  • Concurrent task execution
  • Task prioritization

State Management

  • Persistent event storage
  • In-memory scheduler state
  • Event synchronization
  • Automatic recovery on restart