mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-30 19:02:16 +00:00
Trace-driven learning pipeline: - TrainingDataMiner: extract SFT/routing/agent pairs from traces - LoRATrainer: fine-tune local models from trace-derived data - AgentConfigEvolver: rewrite agent configs from trace analysis - LearningOrchestrator: coordinate mine→train→evolve cycle, wired into SystemBuilder Eval framework (15 real IPW benchmarks): - Datasets: SuperGPQA, GPQA, MMLU-Pro, MATH-500, Natural Reasoning, HLE, SimpleQA, WildChat, IPW, GAIA, FRAMES, SWE-bench, SWEfficiency, TerminalBench, TerminalBench Native - Scorers: MCQ extraction, LLM-judge, exact match, structural validation - CLI: jarvis eval list|run|compare|report Composable abstractions: - Recipe system: TOML composition of all 5 pillars (3 built-in recipes) - Agent templates: 15 pre-configured TOML manifests with system prompts - Bundled skills: 20 ready-to-use TOML skill manifests - Operator recipes: researcher (4h), correspondent (5min), sentinel (2h) 102 files changed, ~11,500 lines added. 3241 tests pass (44 skipped). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
"""Tests for LearningOrchestrator integration with SystemBuilder."""
|
|
|
|
|
|
class TestSystemLearningIntegration:
|
|
def test_learning_orchestrator_not_created_when_disabled(self):
|
|
"""Default config has training_enabled=False, so no orchestrator."""
|
|
from openjarvis.core.config import JarvisConfig
|
|
from openjarvis.system import SystemBuilder
|
|
|
|
config = JarvisConfig()
|
|
assert config.learning.training_enabled is False
|
|
result = SystemBuilder._setup_learning_orchestrator(config)
|
|
assert result is None
|
|
|
|
def test_learning_orchestrator_created_when_enabled(self):
|
|
"""When training_enabled=True, orchestrator is created."""
|
|
from openjarvis.core.config import JarvisConfig
|
|
from openjarvis.learning.learning_orchestrator import LearningOrchestrator
|
|
from openjarvis.system import SystemBuilder
|
|
|
|
config = JarvisConfig()
|
|
config.learning.training_enabled = True
|
|
result = SystemBuilder._setup_learning_orchestrator(config)
|
|
assert isinstance(result, LearningOrchestrator)
|
|
|
|
def test_config_has_training_fields(self):
|
|
"""LearningConfig has the training pipeline fields."""
|
|
from openjarvis.core.config import LearningConfig
|
|
|
|
config = LearningConfig()
|
|
assert config.training_enabled is False
|
|
assert config.training_schedule == ""
|
|
assert config.lora_rank == 16
|
|
assert config.lora_alpha == 32
|
|
assert config.min_sft_pairs == 50
|
|
assert config.min_improvement == 0.02
|
|
|
|
def test_training_components_exported(self):
|
|
"""Learning package exports all training components."""
|
|
from openjarvis.learning import (
|
|
AgentConfigEvolver,
|
|
LearningOrchestrator,
|
|
LoRATrainer,
|
|
TrainingDataMiner,
|
|
)
|
|
|
|
assert TrainingDataMiner is not None
|
|
assert LoRATrainer is not None
|
|
assert AgentConfigEvolver is not None
|
|
assert LearningOrchestrator is not None
|