The Big One #43

Merged
k.marinus merged 93 commits from feat/reset-experiment-and-phase into dev 2026-01-26 19:20:45 +00:00
2 changed files with 11 additions and 4 deletions
Showing only changes of commit 3a8d1730a1 - Show all commits

View File

@@ -415,6 +415,11 @@ class AgentSpeakGenerator:
def slugify(element: ProgramElement) -> str: def slugify(element: ProgramElement) -> str:
raise NotImplementedError(f"Cannot convert element {element} to a slug.") raise NotImplementedError(f"Cannot convert element {element} to a slug.")
@slugify.register
@staticmethod
def _(n: Norm) -> str:
return f"norm_{AgentSpeakGenerator._slugify_str(n.norm)}"
@slugify.register @slugify.register
@staticmethod @staticmethod
def _(sb: SemanticBelief) -> str: def _(sb: SemanticBelief) -> str:

View File

@@ -8,7 +8,7 @@ from control_backend.agents import BaseAgent
from control_backend.agents.bdi.agentspeak_generator import AgentSpeakGenerator from control_backend.agents.bdi.agentspeak_generator import AgentSpeakGenerator
from control_backend.core.agent_system import InternalMessage from control_backend.core.agent_system import InternalMessage
from control_backend.core.config import settings from control_backend.core.config import settings
from control_backend.schemas.program import Program from control_backend.schemas.program import BasicNorm, Program
from control_backend.schemas.ri_message import GestureCommand, RIEndpoint, SpeechCommand from control_backend.schemas.ri_message import GestureCommand, RIEndpoint, SpeechCommand
@@ -211,15 +211,17 @@ class UserInterruptAgent(BaseAgent):
self._goal_map[str(goal.id)] = AgentSpeakGenerator.slugify(goal) self._goal_map[str(goal.id)] = AgentSpeakGenerator.slugify(goal)
for norm in phase.norms: for norm in phase.norms:
if norm.condition: if not isinstance(norm, BasicNorm):
asl_slug = AgentSpeakGenerator.slugify(norm) asl_slug = AgentSpeakGenerator.slugify(norm)
belief_id = str(norm.condition)
belief_id = str(norm.condition.id)
self._cond_norm_map[belief_id] = asl_slug self._cond_norm_map[belief_id] = asl_slug
self._cond_norm_reverse_map[asl_slug] = belief_id self._cond_norm_reverse_map[asl_slug] = belief_id
self.logger.info( self.logger.info(
f"Mapped {len(self._trigger_map)} triggers and {len(self._goal_map)} goals." f"Mapped {len(self._trigger_map)} triggers and {len(self._goal_map)} goals "
f"and {len(self._cond_norm_map)} conditional norms for UserInterruptAgent."
) )
except Exception as e: except Exception as e:
self.logger.error(f"Mapping failed: {e}") self.logger.error(f"Mapping failed: {e}")