Core Components
Key Architectural Principles
1. Isolation-First Design
All security testing operations run in isolated sandboxes (Docker containers or cloud instances) to:- Prevent host system contamination
- Enable safe execution of potentially dangerous operations
- Provide consistent testing environments
- Support parallel agent execution
2. Multi-Agent Orchestration
Esprit uses a hierarchical agent system:- Root Agent: Coordinates the overall scan, creates sub-agents for specialized tasks
- Sub-Agents: Handle specific security testing tasks (e.g., vulnerability scanning, reconnaissance)
- Agents communicate via message passing through a shared graph structure
3. Modular Tool System
Tools are registered dynamically and can execute either:- In Sandbox: For operations requiring isolation (terminal, browser, file editing)
- Locally: For coordination tasks (agent management, reporting)
System Flow
Scan Initialization
Scan Initialization
- User initiates scan with target (repository, URL, or local code)
- Runtime creates isolated sandbox environment
- EspritAgent initializes with scan configuration
- Local sources are copied to sandbox workspace
- Agent loop begins execution
Agent Execution Loop
Agent Execution Loop
- Agent requests next action from LLM
- LLM returns tool invocations based on system prompt and conversation history
- Tool executor validates and routes tool calls
- Tools execute in sandbox via HTTP API
- Results return to agent and append to conversation history
- Loop continues until max iterations or explicit finish
Multi-Agent Coordination
Multi-Agent Coordination
- Root agent analyzes scan requirements
- Creates specialized sub-agents for different tasks
- Sub-agents execute independently with their own sandbox access
- Agents exchange messages through shared graph
- Root agent aggregates results and generates final report
Runtime Modes
Esprit supports two execution runtimes:| Runtime | Use Case | Requirements |
|---|---|---|
| Docker | Local development and testing | Docker Desktop installed |
| Esprit Cloud | Production scans, team collaboration | Esprit account and API token |
Technology Stack
- Language: Python 3.11+
- LLM Integration: LiteLLM (supports multiple providers)
- Containerization: Docker
- HTTP Client: httpx (async)
- Templating: Jinja2 (for agent prompts)
- Browser Automation: Playwright
- Web Interception: mitmproxy
File Structure
Key source code locations:Next Steps
Agent System
Learn about EspritAgent and multi-agent orchestration
Tools
Explore the complete tool catalog
Docker Sandbox
Understand local sandbox environments
Cloud Runtime
Deploy scans to Esprit Cloud