LYCURGUS - Orchestrator Agent
LYCURGUS is the central orchestrator that coordinates the multi-agent mission lifecycle. It runs a state machine graph and manages transitions across discovery, research, prototype, evolution, and submission.
Role
- Initialize and configure specialized agents
- Execute the state machine graph
- Manage phase transitions
- Handle error recovery and retries
- Emit events for the UI dashboard
Basic Usage
from agent_k.agents.lycurgus import LycurgusOrchestrator
from agent_k.core.models import MissionCriteria
async def run_mission():
async with LycurgusOrchestrator() as orchestrator:
result = await orchestrator.execute_mission(
competition_id="titanic",
criteria=MissionCriteria(target_leaderboard_percentile=0.10),
)
print(result)
Configuration
LycurgusSettings
from agent_k.agents.lycurgus import LycurgusSettings
config = LycurgusSettings(
default_model="anthropic:claude-3-haiku-20240307",
max_evolution_rounds=100,
)
LycurgusSettings.from_file() expects a JSON file:
from pathlib import Path
from agent_k.agents.lycurgus import LycurgusSettings
settings = LycurgusSettings.from_file(Path("config/mission.json"))
Devstral Helper
config = LycurgusSettings.with_devstral(
base_url="http://localhost:1234/v1" # Optional
)
Model Override
orchestrator = LycurgusOrchestrator(model="openrouter:mistralai/devstral-small-2-2512")
Platform Adapter Selection
- If
KAGGLE_USERNAMEandKAGGLE_KEYare present, LYCURGUS usesKaggleAdapter. - Otherwise it falls back to
OpenEvolveAdapterfor an in-memory workflow.
Mission Execution Flow
- Build the graph:
Graph(nodes=(DiscoveryNode, ResearchNode, PrototypeNode, EvolutionNode, SubmissionNode)) - Initialize
MissionStatewith criteria. - Execute the graph starting at
DiscoveryNode. - Return
MissionResultwith final score/rank metadata.
Event Emission
LYCURGUS emits events through EventEmitter for the AG-UI dashboard, including:
phase-start/phase-completetask-start/task-completetool-start/tool-resultgeneration-start/generation-completesubmission-resulterror-occurred