Azure Agentic AI is an autonomous cloud security agent that audits Azure infrastructure using a multi-phase agentic AI workflow. Unlike a simple chatbot that answers one question at a time, this agent plans, executes, reasons, and generates structured reports entirely on its own.
It connects to your Azure subscription via read-only SDK calls, runs security checks across storage, compute, and network resources, and produces actionable findings ranked by severity.
The core of the project is a four-phase autonomous loop:
Phase 1 - Planning: The LLM receives your goal and creates a task list with dependencies. Each task maps to a specific Azure tool.
Phase 2 - Execution: Tasks run sequentially, respecting dependency order. Each task calls a read-only Azure SDK operation and captures the result.
Phase 3 - Reasoning: After each task the LLM analyzes the output, flags security risks (CRITICAL/HIGH/MEDIUM/LOW), and can dynamically add new tasks based on what it discovers.
Phase 4 - Reporting: Once all tasks complete, the LLM synthesizes every finding into a structured markdown report with an executive summary, categorized insights, and prioritized recommendations.
The key differentiator is Phase 3. The agent does not follow a static checklist. If it finds a storage account with public blob access, it proposes a follow-up task to inspect that account’s network rules. This makes it genuinely agentic.
# Run the agentic workflow (recommended)python main.py run
python main.py run "Check storage accounts for public access"python main.py run --output report.md
# Single query modepython main.py scan "List all VMs with public IPs"# Interactive chatpython main.py chat
# Multi-agent assessmentpython main.py assess --services storage,network --report
# Quick predefined scanpython main.py quick-scan
# Standalone scanner (no LLM, free)python main.py scan-only
# List available toolspython main.py list-tools
# Test Codex connectivitypython main.py codex-check
Every tool enforces is_read_only = True. The agent cannot create, modify, or delete any Azure resource. The az_cli_readonly wrapper only allows operations like list, show, get, and query, rejecting any write command.
Credentials are loaded through DefaultAzureCredential which supports service principals, managed identities, and az login tokens. Secrets are never logged.
Task failures do not stop the workflow. The agent marks the task as failed, reasons about the error, and continues with the remaining plan.
# 1. Verify Codex workspython main.py codex-check
# Expected: "ok"# 2. Run a targeted scanpython main.py run "List all storage accounts and check for public access"# 3. Save report to filepython main.py run --output security-report.md