refactor: restructure to make sure the Bel agents are also part of BDI.

ref: N25B-257
This commit is contained in:
Björn Otgaar
2025-11-12 12:01:37 +01:00
parent dfebe6f772
commit 9365f109ab
17 changed files with 46 additions and 40 deletions

View File

@@ -1 +1,5 @@
from .bdi_core_agent import BDICoreAgent as BDICoreAgent
from .bdi_belief_collector_agent.bel_collector_agent import (
BDIBeliefCollectorAgent as BDIBeliefCollectorAgent,
)
from .bdi_core_agent.bdi_core_agent import BDICoreAgent as BDICoreAgent
from .bdi_text_belief_agent.bdi_text_belief_agent import BDITextBeliefAgent as BDITextBeliefAgent

View File

@@ -3,9 +3,9 @@ from control_backend.agents.base import BaseAgent
from .behaviours.continuous_collect import ContinuousBeliefCollector
class BelCollectorAgent(BaseAgent):
class BDIBeliefCollectorAgent(BaseAgent):
async def setup(self):
self.logger.info("BelCollectorAgent starting (%s)", self.jid)
self.logger.info("BDIBeliefCollectorAgent starting (%s)", self.jid)
# Attach the continuous collector behaviour (listens and forwards to BDI)
self.add_behaviour(ContinuousBeliefCollector())
self.logger.info("BelCollectorAgent ready.")
self.logger.info("BDIBeliefCollectorAgent ready.")

View File

@@ -32,7 +32,7 @@ class BeliefSetterBehaviour(CyclicBehaviour):
self.agent.logger.debug("Processing message from sender: %s", sender)
match sender:
case settings.agent_settings.bel_collector_agent_name:
case settings.agent_settings.bdi_belief_collector_agent_name:
self.agent.logger.debug(
"Message is from the belief collector agent. Processing as belief message."
)

View File

@@ -3,6 +3,6 @@ from control_backend.agents.base import BaseAgent
from .behaviours.text_belief_extractor import BeliefFromText
class BelTextExtractAgent(BaseAgent):
class BDITextBeliefAgent(BaseAgent):
async def setup(self):
self.add_behaviour(BeliefFromText())

View File

@@ -71,7 +71,7 @@ class BeliefFromText(CyclicBehaviour):
belief_message = Message()
belief_message.to = (
settings.agent_settings.bel_collector_agent_name
settings.agent_settings.bdi_belief_collector_agent_name
+ "@"
+ settings.agent_settings.host
)
@@ -95,7 +95,9 @@ class BeliefFromText(CyclicBehaviour):
belief_msg = Message()
belief_msg.to = (
settings.agent_settings.bel_collector_agent_name + "@" + settings.agent_settings.host
settings.agent_settings.bdi_belief_collector_agent_name
+ "@"
+ settings.agent_settings.host
)
belief_msg.body = payload
belief_msg.thread = "beliefs"

View File

@@ -1,4 +0,0 @@
from .bel_collector_agent.bel_collector_agent import BelCollectorAgent as BelCollectorAgent
from .bel_text_extract_agent.bel_text_extract_agent import (
BelTextExtractAgent as BelTextExtractAgent,
)

View File

@@ -11,7 +11,7 @@ class BelTextAgent(Agent):
class SendOnceBehaviourBlfText(OneShotBehaviour):
async def run(self):
to_jid = (
settings.agent_settings.bel_collector_agent_name
settings.agent_settings.bdi_belief_collector_agent_name
+ "@"
+ settings.agent_settings.host
)

View File

@@ -47,7 +47,7 @@ class PerTranscriptionAgent(BaseAgent):
async def _share_transcription(self, transcription: str):
"""Share a transcription to the other agents that depend on it."""
receiver_jids = [
settings.agent_settings.texbel_text_extractor_agent_name
settings.agent_settings.texbdi_text_belief_agent_name
+ "@"
+ settings.agent_settings.host,
] # Set message receivers here

View File

@@ -10,8 +10,8 @@ class ZMQSettings(BaseModel):
class AgentSettings(BaseModel):
host: str = "localhost"
bdi_core_agent_agent_name: str = "bdi_core_agent"
bel_collector_agent_name: str = "bel_collector_agent"
bel_text_extractor_agent_name: str = "bel_text_extractor_agent"
bdi_belief_collector_agent_name: str = "bdi_belief_collector_agent"
bdi_text_belief_agent_name: str = "bdi_text_belief_agent"
per_vad_agent_name: str = "per_vad_agent"
llm_agent_name: str = "llm_agent"
test_agent_name: str = "test_agent"

View File

@@ -9,10 +9,11 @@ from zmq.asyncio import Context
# Act agents
# BDI agents
from control_backend.agents.bdi_agents import BDICoreAgent
# Believe Agents
from control_backend.agents.bel_agents import BelCollectorAgent, BelTextExtractAgent
from control_backend.agents.bdi_agents import (
BDIBeliefCollectorAgent,
BDICoreAgent,
BDITextBeliefAgent,
)
# Communication agents
from control_backend.agents.com_agents import ComRIAgent
@@ -104,22 +105,22 @@ async def lifespan(app: FastAPI):
"asl": "src/control_backend/agents/bdi/rules.asl",
},
),
"BelCollectorAgent": (
BelCollectorAgent,
"BDIBeliefCollectorAgent": (
BDIBeliefCollectorAgent,
{
"name": settings.agent_settings.bel_collector_agent_name,
"jid": f"{settings.agent_settings.bel_collector_agent_name}@"
"name": settings.agent_settings.bdi_belief_collector_agent_name,
"jid": f"{settings.agent_settings.bdi_belief_collector_agent_name}@"
f"{settings.agent_settings.host}",
"password": settings.agent_settings.bel_collector_agent_name,
"password": settings.agent_settings.bdi_belief_collector_agent_name,
},
),
"TBeliefExtractor": (
BelTextExtractAgent,
BDITextBeliefAgent,
{
"name": settings.agent_settings.bel_text_extractor_agent_name,
"jid": f"{settings.agent_settings.bel_text_extractor_agent_name}@"
"name": settings.agent_settings.bdi_text_belief_agent_name,
"jid": f"{settings.agent_settings.bdi_text_belief_agent_name}@"
f"{settings.agent_settings.host}",
"password": settings.agent_settings.bel_text_extractor_agent_name,
"password": settings.agent_settings.bdi_text_belief_agent_name,
},
),
"PerVADAgent": (