انتقل إلى المحتوى الرئيسي

AI Agents — The Complete Agent Reference

AuroraSOC uses 15 AI agents (1 Orchestrator + 14 specialists) to investigate security alerts. This page explains every agent: what it does, what tools it has access to, how it's configured, and how it interacts with other agents.


How Agents Work

Every agent in AuroraSOC follows the same pattern:

The Agent Construction Formula

Every agent is built from these components:

agent = RequirementAgent(
name="SecurityAnalyst", # Identity
llm=ChatModel("ollama:granite4:8b"), # Brain (LLM)
tools=[ThinkTool(), *mcp_tools], # Capabilities
requirements=[ConditionalRequirement( # Rules
ThinkTool, force_at_step=1
)],
memory=TieredAgentMemory(ANALYST_MEMORY), # Memory
role="Security Log Analyst", # Self-identity
instructions=SECURITY_ANALYST_PROMPT, # Personality
middlewares=[GlobalTrajectoryMiddleware()], # Observability
)
ComponentWhat It IsWhy It Matters
RequirementAgentBeeAI agent class that enforces rulesEnsures agents always think before acting
ChatModelConnection to Granite LLM via OllamaThe "brain" — generates all reasoning
ThinkToolMandatory at step 1Forces structured reasoning plan before any action
MCP ToolsDomain-specific security toolsHow agents interact with SIEM, EDR, SOAR, etc.
ConditionalRequirementRule: "use ThinkTool at step 1"Prevents agents from jumping to conclusions
TieredAgentMemory3-tier memory (working + episodic + threat intel)Agents remember past investigations
GlobalTrajectoryMiddlewareRecords every stepAudit trail of all agent reasoning and actions

Agent Communication (A2A Protocol)

Agents talk to each other using the Agent-to-Agent (A2A) protocol:

Tool Access (MCP Protocol)

Each agent connects to MCP tool servers — separate HTTP services that expose security tools:

Tools are discovered dynamically at startup — the agent connects to the MCP server and asks "what tools do you provide?" This means:

  • Adding a new tool to an MCP server doesn't require redeploying agents
  • MCP servers can be implemented in any language
  • Tool access is auditable — the AGENT_MCP_BINDINGS map is the single source of truth

The Orchestrator

PropertyValue
NameOrchestrator
Port9000
LLMgranite4:dense (larger model)
MemoryORCHESTRATOR_MEMORY — sliding window of 60 messages, episodic enabled
MCP Domainssoar
Special Tools14 HandoffTool instances (one per specialist)

The Orchestrator is the brain of the SOC. It receives investigation requests and coordinates the entire multi-agent workflow:

  1. Analyzes the alert to determine which specialists are needed
  2. Dispatches tasks to specialists using HandoffTool (ACP)
  3. Collects structured findings from each specialist
  4. Synthesizes a unified report with overall severity, confidence, and recommendations
  5. Gates high-risk actions on human approval

Key difference from specialists: The Orchestrator doesn't directly analyze logs or hunt for threats. It delegates to specialists and synthesizes their findings. It uses a larger LLM model (granite4:dense) because coordination requires more reasoning capability.

System Prompt Summary: For every alert, reason about type/assets/context → identify needed specialists → create investigation plan → dispatch via HandoffTool → collect → synthesize → gate high-risk actions on human approval.


Specialist Agents

SecurityAnalyst

PropertyValue
Port9001
RoleSecurity Log Analyst
MemoryANALYST_MEMORY — 30-message window, episodic enabled, auto-persist every 20 messages
MCP Domainssiem, soar, osint
LLMgranite4:8b

What it does: Analyzes security logs from SIEM, extracts IOCs (IPs, domains, hashes, CVEs), maps observed behaviors to MITRE ATT&CK techniques, scores alert severity, identifies patterns across multiple log sources, and flags false positives.

When it's invoked: Almost every investigation. It's the first specialist called for most alerts because log analysis is the foundation of any investigation.

Output: { severity, confidence, mitre_techniques[], iocs[], affected_assets[], analysis_summary }


ThreatHunter

PropertyValue
Port9002
RoleThreat Hunter
MemoryHUNTER_MEMORY — 40-message window, episodic + threat intel enabled, auto-persist every 15 messages
MCP Domainssiem, ueba, osint
LLMgranite4:8b

What it does: Proactively hunts for threats that evade traditional detection. Searches for LOLBin abuse, behavioral anomalies, beaconing patterns, lateral movement, C2 communication, persistence mechanisms, and credential theft indicators.

When it's invoked: When the Orchestrator suspects advanced threats that signature-based detection missed. Uses hypothesis-driven hunting methodology.

Output: Hunting hypothesis tested, evidence found with log references, MITRE ATT&CK mapping, confidence assessment, recommended follow-up.


MalwareAnalyst

PropertyValue
Port9003
RoleMalware Analyst
MemoryINTEL_MEMORY — 40-message window, episodic + threat intel enabled, auto-persist every 10 messages
MCP Domainsmalware, threat_intel, malware_intel
LLMgranite4:8b

What it does: Analyzes suspicious files using YARA rules, reviews sandbox results, identifies malware families/variants, extracts behavioral signatures, detects fileless malware, and generates detection signatures.

When it's invoked: When suspicious files are found during an investigation (email attachments, downloaded executables, anomalous scripts).

Output: { malware_family, confidence, yara_matches[], behavioral_indicators[], iocs[], recommended_actions[] }


IncidentResponder

PropertyValue
Port9004
RoleIncident Responder
MemoryRESPONDER_MEMORY — 50-message window, episodic enabled, auto-persist every 10 messages
MCP Domainssoar, edr, network, document
LLMgranite4:8b

What it does: Executes containment, eradication, and recovery actions. Isolates endpoints, blocks malicious IPs/domains, revokes credentials, runs response playbooks, and documents all actions in the case timeline.

When it's invoked: After investigation is complete and response actions are needed. It follows the CONTAIN → ERADICATE → RECOVER → LEARN framework.

Critical safety feature: For high-risk actions (production system isolation, mass credential resets, OT system changes), it always sets requires_human_approval = true and waits for analyst approval.


NetworkSecurity

PropertyValue
Port9005
RoleNetwork Security Analyst
MemoryANALYST_MEMORY
MCP Domainsnetwork, siem, network_capture

What it does: Detects DDoS attacks, intrusion attempts, DNS tunneling, covert channels, protocol anomalies, network reconnaissance, data exfiltration patterns, and VPN anomalies.


WebSecurity

PropertyValue
Port9006
RoleWeb Security Analyst
MemoryANALYST_MEMORY
MCP Domainssiem, network, osint

What it does: Detects OWASP Top 10 attacks (SQLi, XSS, CSRF), analyzes WAF logs, detects API abuse and credential stuffing, monitors for web shell deployment.


CloudSecurity

PropertyValue
Port9007
RoleCloud Security Analyst
MemoryANALYST_MEMORY
MCP Domainssiem, cloud_provider

What it does: Detects cloud misconfigurations (open S3 buckets, permissive security groups), monitors IAM for privilege escalation, detects container escape attempts, identifies serverless abuse.


CPSSecurity

PropertyValue
Port9008
RoleCPS / IoT Security Specialist
MemoryRESPONDER_MEMORY
MCP Domainscps, network_capture

What it does: The bridge between the physical and cyber worlds. Analyzes telemetry from edge devices, verifies hardware attestation certificates, correlates physical events (door open, tamper detect) with cyber events, monitors OT/ICS protocols, identifies rogue devices.

Unique capability — Physical-Cyber Correlation Types:

TypeMeaningExample
PHYSICAL_ONLYPhysical anomaly, no matching cyber eventTamper detection on sensor with no network activity
CYBER_ONLYCyber attack, no physical triggerStandard IT malware on network-connected PLC
CORRELATEDPhysical + cyber events within time windowDoor breach + new device joins WiFi simultaneously
ESCALATEDPhysical breach enabling cyber accessUSB insertion detected right after physical door bypass

ThreatIntel

PropertyValue
Port9009
RoleThreat Intelligence Analyst
MemoryINTEL_MEMORY
MCP Domainsthreat_intel, siem, osint, vuln_intel

What it does: Enriches IOCs with external threat intelligence, correlates IOCs with known APT campaigns, tracks emerging threats and zero-days, manages IOC lifecycle, shares IOCs across sites via NATS JetStream.


EndpointSecurity

PropertyValue
Port9010
RoleEndpoint Security Analyst
MemoryANALYST_MEMORY
MCP Domainsedr, siem, malware

What it does: Analyzes EDR telemetry, detects process injection/hollowing/LOLBin abuse, monitors file integrity, identifies persistence mechanisms, tracks PowerShell and WMI attacks.


UEBAAnalyst

PropertyValue
Port9011
RoleUEBA Analyst
MemoryHUNTER_MEMORY
MCP Domainsueba, siem

What it does: Creates and maintains behavioral baselines for users and entities, detects deviations from baselines, identifies insider threat indicators, detects compromised accounts, analyzes access patterns (temporal, geographic), scores user/entity risk.


ForensicAnalyst

PropertyValue
Port9012
RoleForensic Analyst
MemoryRESPONDER_MEMORY
MCP Domainsforensics, siem, network_capture

What it does: Collects and preserves digital evidence with chain of custody, analyzes file system artifacts, performs memory forensics, reconstructs timelines, identifies anti-forensic techniques. All evidence actions are logged to the immutable audit trail.


ComplianceAnalyst

PropertyValue
Port9013
RoleCompliance Analyst
MemoryLIGHTWEIGHT_MEMORY — 20-message window, no episodic, no auto-persist
MCP Domainssiem, soar, document

What it does: Maps security events to compliance frameworks (NIST CSF 2.0, IEC 62443, ISO 27001, SOC 2, GDPR, HIPAA), identifies compliance violations in real-time, generates compliance reports.


VulnerabilityManager

PropertyValue
Port9014
RoleVulnerability Manager
MemoryLIGHTWEIGHT_MEMORY
MCP Domainssiem, threat_intel, vuln_intel, document

What it does: Correlates vulnerability scan results with active threats, prioritizes by exploitability and asset criticality (CVSS + exploit availability + asset criticality + network exposure), tracks patch deployment, assesses CPS/IoT device exposure.


ReportGenerator

PropertyValue
Port9015
RoleReport Generator
MemoryLIGHTWEIGHT_MEMORY
MCP Domainssoar, siem, document

What it does: Produces executive summaries, detailed technical reports, compliance audit reports, threat landscape briefings, SOC performance metrics, and CPS/IoT device inventory reports.


NetworkAnalyzer

PropertyValue
Port9016
RoleNetwork Analyzer (Read-Only)
MemoryANALYST_MEMORY
MCP Domainsnetwork, siem, network_capture
Excluded Toolsblock_ip

What it does: Performs read-only network traffic analysis. Same capabilities as NetworkSecurity for analysis (flow analysis, DNS anomaly detection, IDS alert correlation) but cannot take any active response actions — it cannot block IPs, modify firewall rules, or isolate hosts.

Why it exists: Provides a safe agent for exploratory network analysis by analysts who want to investigate without risk of accidental automated response actions.


Agent-to-Tool Bindings

The AGENT_MCP_BINDINGS map is the single source of truth for which agent can access which MCP tool domains:

AgentMCP Domains
Orchestratorsoar
SecurityAnalystsiem, soar, osint
ThreatHuntersiem, ueba, osint
MalwareAnalystmalware, threat_intel, malware_intel
IncidentRespondersoar, edr, network, document
NetworkSecuritysiem, network, network_capture
NetworkAnalyzersiem, network, network_capture
CPSSecuritycps, network_capture
ThreatIntelsiem, threat_intel, osint, vuln_intel
UEBAAnalystsiem, ueba
ForensicAnalystsiem, forensics, network_capture
EndpointSecuritysiem, edr, malware
WebSecuritysiem, network, osint
CloudSecuritysiem, cloud_provider
ComplianceAnalystsiem, soar, document
VulnerabilityManagersiem, threat_intel, document, vuln_intel
ReportGeneratorsiem, soar, document

Memory Configuration Profiles

ProfileSliding WindowEpisodicThreat IntelAuto-Persist EveryUsed By
ANALYST_MEMORY30 msgs20 callsSecurityAnalyst, NetworkSecurity, NetworkAnalyzer, EndpointSecurity, WebSecurity, CloudSecurity
HUNTER_MEMORY40 msgs15 callsThreatHunter, UEBAAnalyst
RESPONDER_MEMORY50 msgs10 callsIncidentResponder, CPSSecurity, ForensicAnalyst
INTEL_MEMORY40 msgs10 callsMalwareAnalyst, ThreatIntel
ORCHESTRATOR_MEMORY60 msgs25 callsOrchestrator
LIGHTWEIGHT_MEMORY20 msgsdisabledComplianceAnalyst, VulnerabilityManager, ReportGenerator

Key insight: Agents that need to correlate threats (Hunter, UEBA, Malware, ThreatIntel) have threat intel memory enabled. Response-focused agents (Incident Responder, Forensic, CPS) have larger sliding windows because IR workflows involve more back-and-forth. Lightweight agents (Compliance, Vuln, Report) don't need long-term recall.


Adding a New Agent

To add a new specialist agent:

  1. Write a system prompt in aurorasoc/agents/prompts.py
  2. Add an AgentSpec to AGENT_SPECS in aurorasoc/agents/factory.py
  3. Define MCP bindings in AGENT_MCP_BINDINGS in aurorasoc/agents/mcp_agent_loader.py
  4. Add a port to A2ASettings in aurorasoc/config/settings.py
  5. Add a HandoffTool to SPECIALIST_NAMES in aurorasoc/agents/orchestrator/server.py
  6. Create a folder under aurorasoc/agents/{agent_name}/ with a server.py (or use generic_server.py)
  7. Add a Docker service in docker-compose.yml
  8. Run binding validationvalidate_bindings() will catch any configuration drift

Next: Repository Structure → — Where every file lives and what it does.