rishiad's picture
feat: bind to 0.0.0.0
6c27519 unverified
#!/usr/bin/env python3
"""
Main entry point for the agent server.
This script creates an agent implementation and starts the RPC server
to handle requests from the evaluator.
"""
import argparse
import logging
import sys
from agent import RLAgent
from agent_server import start_server
def setup_logging(level=logging.INFO):
"""Configure logging."""
logging.basicConfig(
level=level,
format="%(asctime)s | %(levelname)s | %(name)s | %(message)s",
handlers=[logging.StreamHandler(sys.stdout)],
)
def main():
"""Main entry point."""
parser = argparse.ArgumentParser(description="Start the agent server")
parser.add_argument(
"--host", type=str, default="0.0.0.0", help="Host to bind the server to"
)
parser.add_argument(
"--port", type=int, default=8000, help="Port to bind the server to"
)
parser.add_argument(
"--log-level",
type=str,
default="INFO",
choices=["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"],
help="Logging level",
)
args = parser.parse_args()
# Setup logging
log_level = getattr(logging, args.log_level)
setup_logging(log_level)
logger = logging.getLogger(__name__)
logger.info(f"Starting agent server on {args.host}:{args.port}")
# Create the RLAgent
agent = RLAgent()
# Start the server
try:
start_server(agent, args.host, args.port)
except KeyboardInterrupt:
logger.info("Server stopped by user")
except Exception as e:
logger.error(f"Error starting server: {e}", exc_info=True)
sys.exit(1)
if __name__ == "__main__":
main()