reasonkit/orchestration/
mod.rs

1//! # Long-Horizon Task Orchestration System
2//!
3//! This module implements ReasonKit's long-horizon task orchestration system that leverages
4//! MiniMax M2's exceptional 100+ tool calling capability for complex multi-step operations.
5//!
6//! ## Core Features
7//!
8//! - **100+ Tool Calling Support**: Leverage M2's proven long-horizon execution capability
9//! - **Complex Task Orchestration**: Coordinate multi-step operations across ReasonKit components
10//! - **State Persistence**: Maintain context across extended execution sequences
11//! - **Multi-Component Coordination**: Orchestrate Core, Web, Mem, and Pro components
12//! - **Performance Monitoring**: Real-time tracking and optimization
13//! - **Error Recovery**: Robust handling and recovery mechanisms
14
15pub mod component_coordinator;
16pub mod error_recovery;
17pub mod long_horizon_orchestrator;
18pub mod performance_tracker;
19pub mod state_manager;
20pub mod task_graph;
21
22use serde::{Deserialize, Serialize};
23
24pub use component_coordinator::{ComponentCoordinator, ComponentTask, CoordinationResult};
25pub use error_recovery::{ErrorRecovery, RecoveryResult, RecoveryStrategy};
26pub use long_horizon_orchestrator::{
27    LongHorizonOrchestrator, OrchestrationConfig, OrchestrationResult, TaskExecutionPlan,
28};
29pub use performance_tracker::{PerformanceTracker, RealTimeMetrics, ResourceUtilization};
30
31pub type PerformanceMetrics = performance_tracker::PerformanceSummary;
32pub use state_manager::{ContextSnapshot, StateManager, StatePersistence};
33pub use task_graph::{DependencyGraph, TaskGraph, TaskNode, TaskPriority, TaskStatus};
34
35/// Long-horizon orchestration result with comprehensive metrics
36#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct LongHorizonResult {
38    pub execution_id: String,
39    pub success: bool,
40    pub total_duration_ms: u64,
41    pub tool_call_count: u32,
42    pub components_coordinated: Vec<String>,
43    pub state_transitions: Vec<StateTransition>,
44    pub performance_metrics: LongHorizonPerformanceMetrics,
45    pub error_recovery_log: Vec<RecoveryLog>,
46    pub final_output: serde_json::Value,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
50pub struct StateTransition {
51    pub from_state: String,
52    pub to_state: String,
53    pub timestamp: i64,
54    pub trigger: String,
55    pub metadata: serde_json::Value,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
59pub struct LongHorizonPerformanceMetrics {
60    pub avg_tool_call_time_ms: f64,
61    pub throughput: f64,
62    pub memory_efficiency: f64,
63    pub cost_per_tool_call: f64,
64    pub reliability_score: f64,
65    pub error_rate: f64,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
69pub struct RecoveryLog {
70    pub error_id: String,
71    pub recovery_strategy: String,
72    pub success: bool,
73    pub recovery_time_ms: u64,
74    pub details: String,
75}
76
77/// Configuration for long-horizon orchestration
78#[derive(Debug, Clone, Serialize, Deserialize)]
79pub struct LongHorizonConfig {
80    pub max_tool_calls: u32,
81    pub timeout_ms: u64,
82    pub memory_limit_mb: u64,
83    pub enable_error_recovery: bool,
84    pub enable_state_persistence: bool,
85    pub enable_performance_monitoring: bool,
86    pub component_timeout_ms: u64,
87    pub batch_size: usize,
88    pub checkpoint_interval: u32,
89}
90
91impl Default for LongHorizonConfig {
92    fn default() -> Self {
93        Self {
94            max_tool_calls: 100,
95            timeout_ms: 3_600_000, // 1 hour
96            memory_limit_mb: 2048,
97            enable_error_recovery: true,
98            enable_state_persistence: true,
99            enable_performance_monitoring: true,
100            component_timeout_ms: 300_000, // 5 minutes per component
101            batch_size: 10,
102            checkpoint_interval: 10,
103        }
104    }
105}