#2869 - Changes to agent refactor config schema, removal of state variables that aren't necessary to be in config

This commit is contained in:
Charlie Crane
2024-12-13 11:05:24 +00:00
parent 86ad872cba
commit 4ac90c3c10
5 changed files with 24 additions and 25 deletions

View File

@@ -98,6 +98,8 @@ class AbstractAgent(BaseModel, ABC, identifier="Abstract_Agent"):
_registry: ClassVar[Dict[str, Type[AbstractAgent]]] = {} _registry: ClassVar[Dict[str, Type[AbstractAgent]]] = {}
config: "AbstractAgent.ConfigSchema" config: "AbstractAgent.ConfigSchema"
agent_name: str = "Abstact_Agent"
logger: AgentLog = AgentLog(agent_name)
class ConfigSchema(BaseModel): class ConfigSchema(BaseModel):
""" """
@@ -115,9 +117,6 @@ class AbstractAgent(BaseModel, ABC, identifier="Abstract_Agent"):
:type agent_settings: Optional[AgentSettings] :type agent_settings: Optional[AgentSettings]
""" """
type: str
agent_name: str = "Abstact_Agent"
logger: AgentLog = AgentLog(agent_name)
history: List[AgentHistoryItem] = [] history: List[AgentHistoryItem] = []
action_manager: Optional[ActionManager] = None action_manager: Optional[ActionManager] = None
observation_manager: Optional[ObservationManager] = None observation_manager: Optional[ObservationManager] = None

View File

@@ -11,11 +11,11 @@ class AbstractTAPAgent(AbstractScriptedAgent, identifier="Abstract_TAP"):
"""Base class for TAP agents to inherit from.""" """Base class for TAP agents to inherit from."""
config: "AbstractTAPAgent.ConfigSchema" config: "AbstractTAPAgent.ConfigSchema"
agent_name: str = "Abstract_TAP"
class ConfigSchema(AbstractScriptedAgent.ConfigSchema): class ConfigSchema(AbstractScriptedAgent.ConfigSchema):
"""Configuration schema for Abstract TAP agents.""" """Configuration schema for Abstract TAP agents."""
agent_name: str = "Abstract_TAP"
starting_node_name: str starting_node_name: str
next_execution_timestep: int next_execution_timestep: int
@@ -40,4 +40,4 @@ class AbstractTAPAgent(AbstractScriptedAgent, identifier="Abstract_TAP"):
num_nodes = len(self.config.action_manager.node_names) num_nodes = len(self.config.action_manager.node_names)
starting_node_idx = random.randint(0, num_nodes - 1) starting_node_idx = random.randint(0, num_nodes - 1)
self.starting_node_name = self.config.action_manager.node_names[starting_node_idx] self.starting_node_name = self.config.action_manager.node_names[starting_node_idx]
self.config.logger.debug(f"Selected Starting node ID: {self.starting_node_name}") self.logger.debug(f"Selected Starting node ID: {self.starting_node_name}")

View File

@@ -10,15 +10,15 @@ class DataManipulationAgent(AbstractTAPAgent, identifier="Data_Manipulation_Agen
"""Agent that uses a DataManipulationBot to perform an SQL injection attack.""" """Agent that uses a DataManipulationBot to perform an SQL injection attack."""
config: "DataManipulationAgent.ConfigSchema" config: "DataManipulationAgent.ConfigSchema"
agent_name: str = "Data_Manipulation_Agent"
class ConfigSchema(AbstractTAPAgent.ConfigSchema): class ConfigSchema(AbstractTAPAgent.ConfigSchema):
"""Configuration Schema for DataManipulationAgent.""" """Configuration Schema for DataManipulationAgent."""
starting_application_name: str starting_application_name: str
agent_name: str = "Data_Manipulation_Agent"
def __init__(self) -> None: def __init__(self) -> None:
"""Meh.""" """Initialise DataManipulationAgent."""
self.setup_agent() self.setup_agent()
@property @property

View File

@@ -14,11 +14,11 @@ class ProbabilisticAgent(AbstractScriptedAgent, identifier="Probabilistic_Agent"
"""Scripted agent which randomly samples its action space with prescribed probabilities for each action.""" """Scripted agent which randomly samples its action space with prescribed probabilities for each action."""
config: "ProbabilisticAgent.ConfigSchema" config: "ProbabilisticAgent.ConfigSchema"
agent_name: str = "Probabilistic_Agent"
class ConfigSchema(AbstractScriptedAgent.ConfigSchema): class ConfigSchema(AbstractScriptedAgent.ConfigSchema):
"""Configuration schema for Probabilistic Agent.""" """Configuration schema for Probabilistic Agent."""
agent_name: str = "Probabilistic_Agent"
action_space: ActionManager action_space: ActionManager
action_probabilities: Dict[int, float] action_probabilities: Dict[int, float]
"""Probability to perform each action in the action map. The sum of probabilities should sum to 1.""" """Probability to perform each action in the action map. The sum of probabilities should sum to 1."""

View File

@@ -31,7 +31,7 @@ class RandomAgent(AbstractScriptedAgent, identifier="Random_Agent"):
class PeriodicAgent(AbstractScriptedAgent, identifier="Periodic_Agent"): class PeriodicAgent(AbstractScriptedAgent, identifier="Periodic_Agent"):
"""Agent that does nothing most of the time, but executes application at regular intervals (with variance).""" """Agent that does nothing most of the time, but executes application at regular intervals (with variance)."""
config: "PeriodicAgent.ConfigSchema" config: "PeriodicAgent.ConfigSchema" = {}
class ConfigSchema(AbstractScriptedAgent.ConfigSchema): class ConfigSchema(AbstractScriptedAgent.ConfigSchema):
"""Configuration Schema for Periodic Agent.""" """Configuration Schema for Periodic Agent."""