chore: move magic numbers to env and cleanup

This commit is contained in:
2026-01-26 19:28:16 +01:00
parent d8dc558d3e
commit 650050fa0f
7 changed files with 20 additions and 6 deletions

2
.gitignore vendored
View File

@@ -223,7 +223,7 @@ docs/*
!docs/conf.py !docs/conf.py
# Generated files # Generated files
agentspeak.asl *.asl

View File

@@ -18,6 +18,7 @@ from control_backend.agents.bdi.agentspeak_ast import (
StatementType, StatementType,
TriggerType, TriggerType,
) )
from control_backend.core.config import settings
from control_backend.schemas.program import ( from control_backend.schemas.program import (
BaseGoal, BaseGoal,
BasicNorm, BasicNorm,
@@ -524,6 +525,7 @@ class AgentSpeakGenerator:
:return: The corresponding AgentSpeak statement. :return: The corresponding AgentSpeak statement.
""" """
match step: match step:
# Note that SpeechAction gets included in the ACHIEVE_GOAL, since it's a goal internally
case Goal() | SpeechAction() | LLMAction() as a: case Goal() | SpeechAction() | LLMAction() as a:
return AstStatement(StatementType.ACHIEVE_GOAL, self._astify(a)) return AstStatement(StatementType.ACHIEVE_GOAL, self._astify(a))
case GestureAction() as a: case GestureAction() as a:
@@ -560,7 +562,12 @@ class AgentSpeakGenerator:
subgoals.append(step) subgoals.append(step)
# Arbitrary wait for UI to display nicely # Arbitrary wait for UI to display nicely
body.append(AstStatement(StatementType.DO_ACTION, AstLiteral("wait", [AstNumber(2000)]))) body.append(
AstStatement(
StatementType.DO_ACTION,
AstLiteral("wait", [AstNumber(settings.behaviour_settings.trigger_time_to_wait)]),
)
)
body.append( body.append(
AstStatement( AstStatement(

View File

@@ -75,7 +75,7 @@ class BDIProgramManager(BaseAgent):
asl_str = asg.generate(program) asl_str = asg.generate(program)
file_name = "src/control_backend/agents/bdi/agentspeak.asl" file_name = settings.behaviour_settings.agentspeak_file
with open(file_name, "w") as f: with open(file_name, "w") as f:
f.write(asl_str) f.write(asl_str)

View File

@@ -145,7 +145,7 @@ class RICommunicationAgent(BaseAgent):
# At this point, we have a valid response # At this point, we have a valid response
try: try:
self.logger.debug("Negotiation successful. Handling rn") self.logger.debug("Negotiation successful.")
await self._handle_negotiation_response(received_message) await self._handle_negotiation_response(received_message)
# Let UI know that we're connected # Let UI know that we're connected
topic = b"ping" topic = b"ping"

View File

@@ -77,6 +77,8 @@ class BehaviourSettings(BaseModel):
:ivar transcription_words_per_token: Estimated words per token for transcription timing. :ivar transcription_words_per_token: Estimated words per token for transcription timing.
:ivar transcription_token_buffer: Buffer for transcription tokens. :ivar transcription_token_buffer: Buffer for transcription tokens.
:ivar conversation_history_length_limit: The maximum amount of messages to extract beliefs from. :ivar conversation_history_length_limit: The maximum amount of messages to extract beliefs from.
:ivar trigger_time_to_wait: Amount of milliseconds to wait before informing the UI about trigger
completion.
""" """
# ATTENTION: When adding/removing settings, make sure to update the .env.example file # ATTENTION: When adding/removing settings, make sure to update the .env.example file
@@ -100,6 +102,10 @@ class BehaviourSettings(BaseModel):
# Text belief extractor settings # Text belief extractor settings
conversation_history_length_limit: int = 10 conversation_history_length_limit: int = 10
# AgentSpeak related settings
trigger_time_to_wait: int = 2000
agentspeak_file: str = "src/control_backend/agents/bdi/agentspeak.asl"
class LLMSettings(BaseModel): class LLMSettings(BaseModel):
""" """

View File

@@ -59,7 +59,7 @@ async def test_create_agentspeak_and_send_to_bdi(mock_settings):
await manager._create_agentspeak_and_send_to_bdi(program) await manager._create_agentspeak_and_send_to_bdi(program)
# Check file writing # Check file writing
mock_file.assert_called_with("src/control_backend/agents/bdi/agentspeak.asl", "w") mock_file.assert_called_with(mock_settings.behaviour_settings.agentspeak_file, "w")
handle = mock_file() handle = mock_file()
handle.write.assert_called() handle.write.assert_called()
@@ -67,7 +67,7 @@ async def test_create_agentspeak_and_send_to_bdi(mock_settings):
msg: InternalMessage = manager.send.await_args[0][0] msg: InternalMessage = manager.send.await_args[0][0]
assert msg.thread == "new_program" assert msg.thread == "new_program"
assert msg.to == mock_settings.agent_settings.bdi_core_name assert msg.to == mock_settings.agent_settings.bdi_core_name
assert msg.body == "src/control_backend/agents/bdi/agentspeak.asl" assert msg.body == mock_settings.behaviour_settings.agentspeak_file
@pytest.mark.asyncio @pytest.mark.asyncio

View File

@@ -32,6 +32,7 @@ def mock_settings():
mock.agent_settings.vad_name = "vad_agent" mock.agent_settings.vad_name = "vad_agent"
mock.behaviour_settings.sleep_s = 0.01 # Speed up tests mock.behaviour_settings.sleep_s = 0.01 # Speed up tests
mock.behaviour_settings.comm_setup_max_retries = 1 mock.behaviour_settings.comm_setup_max_retries = 1
mock.behaviour_settings.agentspeak_file = "src/control_backend/agents/bdi/agentspeak.asl"
yield mock yield mock