ams-core-api / engines /goal_loop_engine.py
Amssou's picture
Create goal_loop_engine.py
92b9322 verified
Raw
History Blame Contribute Delete
964 Bytes
import logging
logger = logging.getLogger("ONYX")
class GoalLoopEngine:
def __init__(self, planner, executor, max_steps=5):
self.planner = planner
self.executor = executor
self.max_steps = max_steps
# =========================
# RUN GOAL LOOP
# =========================
def run(self, goal, context):
logger.info(f"GoalLoop started: {goal}")
history = []
result = None
for step in range(self.max_steps):
logger.info(f"GoalLoop step {step + 1}")
plan = self.planner.plan(goal)
result = self.executor.execute(plan, context)
history.append(result)
# condition simple d'arrêt
if result.get("video") or result.get("image") or result.get("project"):
logger.info("GoalLoop finished")
break
return {
"result": result,
"steps": history
}