def main(): """Run the script.""" args = parse_arguments() if args.gui: dashboard = AgentDashboard(agent_name=args.name, env_name=args.name) else: dashboard = None strategy = BaselineStrategy(register_as=RegisterAs(args.register_as), search_for=SearchFor(args.search_for), is_world_modeling=args.is_world_modeling) agent = BaselineAgent( name=args.name, oef_addr=args.oef_addr, oef_port=args.oef_port, agent_timeout=args.agent_timeout, strategy=strategy, max_reactions=args.max_reactions, services_interval=args.services_interval, pending_transaction_timeout=args.pending_transaction_timeout, dashboard=dashboard, private_key_pem=args.private_key_pem) try: agent.start(rejoin=args.rejoin) finally: agent.stop()
def main( name: str = "baseline_agent", oef_addr: str = "127.0.0.1", oef_port: int = 10000, agent_timeout: float = 1.0, max_reactions: int = 100, register_as: str = "both", search_for: str = "both", is_world_modeling: bool = False, services_interval: int = 5, pending_transaction_timeout: int = 30, private_key_pem: Optional[str] = None, rejoin: bool = False, dashboard: bool = False, visdom_addr: str = "127.0.0.1", visdom_port: int = 8097, expected_version_id: str = str(random.randint(0, 10000)), ): """ Launch a baseline agent. Main entrypoint for starting a baseline agent. Please run the module with hte '--help flag' to get more details about the parameters. """ agent_dashboard = None # type: Optional[AgentDashboard] if dashboard: agent_dashboard = AgentDashboard( agent_name=name, env_name=name, visdom_addr=visdom_addr, visdom_port=visdom_port, ) strategy = BaselineStrategy( register_as=RegisterAs(register_as), search_for=SearchFor(search_for), is_world_modeling=is_world_modeling, ) agent = BaselineAgent( name=name, oef_addr=oef_addr, oef_port=oef_port, strategy=strategy, expected_version_id=expected_version_id, agent_timeout=agent_timeout, max_reactions=max_reactions, services_interval=services_interval, pending_transaction_timeout=pending_transaction_timeout, dashboard=agent_dashboard, private_key_pem=private_key_pem, ) try: agent.start(rejoin=rejoin) except KeyboardInterrupt: logging.debug("Baseline agent {} interrupted...".format( repr(agent.name))) finally: agent.stop()
def main(): """Run the script.""" args = parse_arguments() if args.dashboard: agent_dashboard = AgentDashboard( agent_name=args.name, visdom_addr=args.visdom_addr, visdom_port=args.visdom_port, env_name=args.name, ) else: agent_dashboard = None set_agent_state(args.expected_version_id, None) strategy = BaselineStrategy( register_as=RegisterAs(args.register_as), search_for=SearchFor(args.search_for), is_world_modeling=args.is_world_modeling, ) agent = BaselineAgent( name=args.name, oef_addr=args.oef_addr, oef_port=args.oef_port, agent_timeout=args.agent_timeout, strategy=strategy, max_reactions=args.max_reactions, services_interval=args.services_interval, pending_transaction_timeout=args.pending_transaction_timeout, dashboard=agent_dashboard, private_key_pem=args.private_key_pem, expected_version_id=args.expected_version_id, ) # Create thread to pull status kill_event = threading.Event() status_thread = threading.Thread(target=monitor_status, args=(agent, )) status_thread.start() try: agent.start(rejoin=args.rejoin) finally: agent.stop() # Stop the status monitoring thread kill_event.set() status_thread.join(120) set_agent_state(args.expected_version_id, None)