v0.18.0
KaibanJS v0.18.0 🚀
🎮 Features & Improvements
Workflow Execution Control
-
⏯️ Pause/Resume
- Temporarily halt workflow execution
- Preserve complete workflow state
- Resume from exact pause point
- Maintain task queue integrity
-
🛑 Stop Workflow
- Immediate workflow termination
- Proper resource cleanup
- Task queue clearance
- State reset handling
Task Orchestration
- Deterministic Execution Patterns
new Task({ // The referenceId is used to define dependencies between tasks // and track task status throughout the workflow lifecycle referenceId: 'data-processing', description: 'Process dataset batch', agent: processor, allowParallelExecution: true, // Enable parallel processing dependencies: ['data-validation'] // Define task dependencies });
- Sequential processing for ordered operations
- Dependency-based execution for complex workflows
- Parallel task support for improved performance
- Automatic dependency resolution and validation
Enhanced Developer Experience
-
Improved Observability
- Comprehensive logging system with configurable levels
- Real-time workflow state visualization
- Clear task execution pattern tracking
- Detailed performance metrics and statistics
-
Robust Error Management
- Graceful error handling with specialized abort controllers
- State preservation during interruptions
- Detailed error reporting and diagnostics
- Automatic recovery mechanisms
📚 Use Cases
Content Production Pipeline
const contentTeam = new Team({
name: 'Content Team',
agents: [researcher, writer, editor, seoSpecialist, imageDesigner],
tasks: [
new Task({
referenceId: 'topic-research',
description: 'Research market trends and competitor content',
agent: researcher,
allowParallelExecution: true
}),
new Task({
referenceId: 'keyword-analysis',
description: 'Analyze SEO keywords and search intent',
agent: seoSpecialist,
allowParallelExecution: true
}),
new Task({
referenceId: 'outline',
description: 'Create content outline based on research',
agent: writer,
dependencies: ['topic-research', 'keyword-analysis']
}),
new Task({
referenceId: 'draft',
description: 'Write initial content draft',
agent: writer,
dependencies: ['outline']
}),
new Task({
referenceId: 'images',
description: 'Create supporting visuals',
agent: imageDesigner,
dependencies: ['outline'],
allowParallelExecution: true
}),
new Task({
referenceId: 'seo-optimization',
description: 'Optimize content for search engines',
agent: seoSpecialist,
dependencies: ['draft'],
allowParallelExecution: true
}),
new Task({
referenceId: 'edit',
description: 'Review and polish content',
agent: editor,
dependencies: ['draft', 'seo-optimization']
}),
new Task({
referenceId: 'final-review',
description: 'Final review with all assets',
agent: editor,
dependencies: ['edit', 'images']
})
]
});Data Processing Workflow
const dataTeam = new Team({
name: 'Data Processing Team',
agents: [validator, processor, analyzer, visualizer, qualityChecker],
tasks: [
new Task({
referenceId: 'data-validation',
description: 'Validate raw data integrity',
agent: validator
}),
// Parallel validation tasks after initial check
new Task({
referenceId: 'schema-validation',
description: 'Validate data schema compliance',
agent: validator,
dependencies: ['data-validation'],
allowParallelExecution: true
}),
new Task({
referenceId: 'quality-check',
description: 'Check data quality metrics',
agent: qualityChecker,
dependencies: ['data-validation'],
allowParallelExecution: true
}),
// Parallel processing of different data segments
new Task({
referenceId: 'process-segment-1',
description: 'Process first data segment',
agent: processor,
dependencies: ['schema-validation', 'quality-check'],
allowParallelExecution: true
}),
new Task({
referenceId: 'process-segment-2',
description: 'Process second data segment',
agent: processor,
dependencies: ['schema-validation', 'quality-check'],
allowParallelExecution: true
}),
// Parallel analysis tasks
new Task({
referenceId: 'trend-analysis',
description: 'Analyze trends in processed data',
agent: analyzer,
dependencies: ['process-segment-1', 'process-segment-2'],
allowParallelExecution: true
}),
new Task({
referenceId: 'anomaly-detection',
description: 'Detect anomalies in processed data',
agent: analyzer,
dependencies: ['process-segment-1', 'process-segment-2'],
allowParallelExecution: true
}),
// Parallel visualization tasks
new Task({
referenceId: 'trend-visualization',
description: 'Create trend visualizations',
agent: visualizer,
dependencies: ['trend-analysis'],
allowParallelExecution: true
}),
new Task({
referenceId: 'anomaly-visualization',
description: 'Create anomaly visualizations',
agent: visualizer,
dependencies: ['anomaly-detection'],
allowParallelExecution: true
}),
// Final report compilation
new Task({
referenceId: 'final-report',
description: 'Compile final analysis report',
agent: analyzer,
dependencies: ['trend-visualization', 'anomaly-visualization']
})
]
});🚀 Getting Started
Check out our updated documentation:
🙏 Acknowledgments
Special thanks to:
- @anthonydevs17 for implementing the core pause/resume functionality and workflow control features
- @ernestocarrasco for the task management refactoring and test suite improvements
No breaking changes. These features maintain backward compatibility while significantly enhancing workflow control and task management capabilities.
We're excited to see how you'll use these new workflow control features in your applications! Share your experiences and feedback with us on GitHub.