diff --git a/src/control_backend/agents/bdi/agentspeak_generator.py b/src/control_backend/agents/bdi/agentspeak_generator.py index f90e63e..9ab409d 100644 --- a/src/control_backend/agents/bdi/agentspeak_generator.py +++ b/src/control_backend/agents/bdi/agentspeak_generator.py @@ -3,6 +3,7 @@ from functools import singledispatchmethod from slugify import slugify from control_backend.agents.bdi.agentspeak_ast import ( + AstAtom, AstBinaryOp, AstExpression, AstLiteral, @@ -215,7 +216,11 @@ class AgentSpeakGenerator: match norm: case ConditionalNorm(condition=cond): - rule = AstRule(self._astify(norm), self._astify(phase) & self._astify(cond)) + rule = AstRule( + self._astify(norm), + self._astify(phase) & self._astify(cond) + | AstAtom(f"force_{self.slugify(norm)}"), + ) case BasicNorm(): rule = AstRule(self._astify(norm), self._astify(phase)) diff --git a/src/control_backend/agents/bdi/bdi_core_agent.py b/src/control_backend/agents/bdi/bdi_core_agent.py index 44e9a63..206e411 100644 --- a/src/control_backend/agents/bdi/bdi_core_agent.py +++ b/src/control_backend/agents/bdi/bdi_core_agent.py @@ -341,7 +341,6 @@ class BDICoreAgent(BaseAgent): norm_update_message = InternalMessage( to=settings.agent_settings.user_interrupt_name, - sender=self.name, thread="active_norms_update", body=str(norms), ) @@ -364,6 +363,14 @@ class BDICoreAgent(BaseAgent): norms = agentspeak.grounded(term.args[1], intention.scope) goal = agentspeak.grounded(term.args[2], intention.scope) + norm_update_message = InternalMessage( + to=settings.agent_settings.user_interrupt_name, + thread="active_norms_update", + body=str(norms), + ) + + self.add_behavior(self.send(norm_update_message)) + self.logger.debug( '"reply_with_goal" action called with message=%s, norms=%s, goal=%s', message_text,