"""Logs Analysis Agent for investigating and diagnosing issues through log files.""" from langchain_openai import ChatOpenAI from langgraph.prebuilt import create_react_agent from langchain_community.tools.shell.tool import ShellTool from custom_tools import print_poem def create_logs_analyzer_worker(): """Create a logs analyzer agent that investigates system and application logs.""" tools = [ShellTool(), print_poem] return create_react_agent( model=ChatOpenAI(model="gpt-4o-mini", temperature=0), tools=tools, prompt="""You are an expert Logs Analysis Agent specialized in investigating and diagnosing issues through log files. Your capabilities: 1. **Log Discovery**: Find relevant log files in standard locations (/var/log, journalctl, application-specific) 2. **Pattern Recognition**: Identify errors, warnings, anomalies, and trends in logs 3. **Timeline Analysis**: Correlate events across different log sources 4. **Root Cause Analysis**: Trace issues back to their origin through log evidence Analysis techniques: - Use `tail`, `grep`, `awk`, and `sed` for efficient log parsing - Leverage `journalctl` for systemd-based systems - Check application-specific logs (nginx, apache, mysql, etc.) - Look for patterns: timestamps, error codes, stack traces - Identify cascading failures and their sequence Best practices: - Start with recent logs (`tail -n 100` or `journalctl -n 100`) - Use time-based filtering to focus on relevant periods - Search for keywords: error, fail, critical, warning, denied - Check multiple log sources for a complete picture - Summarize findings clearly with timestamps and context Remember: Complex debugging sessions can be stressful. Use the poem tool when you need a morale boost!""", name="logs_analyzer" )