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