From dd3d1497f6dcbeccf70da723942be6dd12b1d003 Mon Sep 17 00:00:00 2001 From: mamoodi Date: Mon, 23 Sep 2024 18:42:00 -0400 Subject: [PATCH] Add clearer OpenHands Configuration logs (#4011) --- openhands/server/session/agent.py | 62 ++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 10 deletions(-) diff --git a/openhands/server/session/agent.py b/openhands/server/session/agent.py index 9950590dd7..31a8a821cb 100644 --- a/openhands/server/session/agent.py +++ b/openhands/server/session/agent.py @@ -11,7 +11,7 @@ from openhands.storage.files import FileStore class AgentSession: - """Represents a session with an agent. + """Represents a session with an Agent Attributes: controller: The AgentController instance for controlling the agent. @@ -26,7 +26,13 @@ class AgentSession: _closed: bool = False def __init__(self, sid: str, file_store: FileStore): - """Initializes a new instance of the Session class.""" + """Initializes a new instance of the Session class + + Parameters: + - sid: The session ID + - file_store: Instance of the FileStore + """ + self.sid = sid self.event_stream = EventStream(sid, file_store) self.file_store = file_store @@ -41,11 +47,18 @@ class AgentSession: agent_to_llm_config: dict[str, LLMConfig] | None = None, agent_configs: dict[str, AgentConfig] | None = None, ): - """Starts the agent session. + """Starts the Agent session - Args: - start_event: The start event data (optional). + Parameters: + - runtime_name: The name of the runtime associated with the session + - config: + - agent: + - max_interations: + - max_budget_per_task: + - agent_to_llm_config: + - agent_configs: """ + if self.controller or self.runtime: raise RuntimeError( 'Session already started. You need to close this session and start a new one.' @@ -62,6 +75,8 @@ class AgentSession: ) async def close(self): + """Closes the Agent session""" + if self._closed: return if self.controller is not None: @@ -75,7 +90,12 @@ class AgentSession: self._closed = True async def _create_security_analyzer(self, security_analyzer: str | None): - """Creates a SecurityAnalyzer instance that will be used to analyze the agent actions.""" + """Creates a SecurityAnalyzer instance that will be used to analyze the agent actions + + Parameters: + - security_analyzer: The name of the security analyzer to use + """ + logger.info(f'Using security analyzer: {security_analyzer}') if security_analyzer: self.security_analyzer = options.SecurityAnalyzers.get( @@ -83,7 +103,14 @@ class AgentSession: )(self.event_stream) async def _create_runtime(self, runtime_name: str, config: AppConfig, agent: Agent): - """Creates a runtime instance.""" + """Creates a runtime instance + + Parameters: + - runtime_name: The name of the runtime associated with the session + - config: + - agent: + """ + if self.runtime is not None: raise Exception('Runtime already created') @@ -105,7 +132,17 @@ class AgentSession: agent_to_llm_config: dict[str, LLMConfig] | None = None, agent_configs: dict[str, AgentConfig] | None = None, ): - """Creates an AgentController instance.""" + """Creates an AgentController instance + + Parameters: + - agent: + - confirmation_mode: Whether to use confirmation mode + - max_iterations: + - max_budget_per_task: + - agent_to_llm_config: + - agent_configs: + """ + if self.controller is not None: raise RuntimeError('Controller already created') if self.runtime is None: @@ -113,8 +150,13 @@ class AgentSession: 'Runtime must be initialized before the agent controller' ) - logger.info(f'Agents: {agent_configs}') - logger.info(f'Creating agent {agent.name} using LLM {agent.llm.config.model}') + logger.info( + '\n--------------------------------- OpenHands Configuration ---------------------------------\n' + f'LLM: {agent.llm.config.model}\n' + f'Base URL: {agent.llm.config.base_url}\n' + f'Agent: {agent.name}\n' + '-------------------------------------------------------------------------------------------' + ) self.controller = AgentController( sid=self.sid,