Contributing
Internals
What’s under the hood
Core Components
Engine
The Engine is the central component that:
- Manages task execution
- Coordinates resources
- Handles caching
- Controls parallelism
Scheduler
The Scheduler manages task execution:
- Tracks task states
- Handles task dependencies
- Manages execution order
- Coordinates parallel tasks
Task priorities:
- Tasks with cached results
- Tasks with cached plans
- Subtasks of running tasks
- Tasks with paused executors
- Remaining tasks (FIFO)
Tasks can be in different states:
- Scheduled: Task is queued for execution
- Running: Task is currently executing
- Completed: Task has finished execution
Resource Manager
Handles system resources:
- Browser instances
- Memory usage
- Cost tracking
- Resource cleanup
Cache Manager
Manages two types of caches both in memory and on disk:
- Results cache (task outputs)
- Plans cache (execution plans generated by LLM)
Planner
Generates natural language execution plans given user-provided task description.
Data Flow
-
Task Creation
-
Cache Check
- Check results cache
- Check plans cache
- Return cached result if available
-
Resource Allocation
- Wait for prerequisites
- Allocate browser if needed
- Assign executor
-
Execution
- Run task via executor
- Stream progress updates
- Cache results
-
Cleanup
- Release resources
- Update cache
- Handle errors
Code Structure
Configuration
Settings and constraints control behavior:
Error Handling
BLAST handles various error types:
- Browser errors
- Resource limits
- Task failures
- Cache issues
Error recovery:
- Log error details
- Clean up resources
- Retry if possible
- Report to user
Extending BLAST
You can extend BLAST by:
- Adding tools for further optimization
- Creating custom executors
- Tune better scheduling policy
Next Steps
- Read the Setup Guide
- Learn how to Contribute
- Check the Roadmap