File size: 777 Bytes
5e1dfdc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import csv
from core.supervisor import Supervisor
from core.agents.base_agent import Agent

supervisor = Supervisor()

def parse_condition(expr):
    field, op_val = expr.split(">", 1)
    field = field.strip()
    val = float(op_val.strip('% '))
    return lambda metrics: metrics.get(field, 0) > val

def load_agents_from_csv(csv_path="master_plan.csv"):
    with open(csv_path) as f:
        reader = csv.DictReader(f)
        for row in reader:
            agent = Agent(
                id=row['agent_id'],
                role=row['role'],
                target_env=row['target_env'],
                dependencies=row['dependencies'].split(';'),
                trigger=parse_condition(row['trigger_condition'])
            )
            supervisor.register_agent(agent)