Overview
RAPTOR uses multi-agent orchestration to coordinate specialized AI agents that work together on complex security analysis tasks. Each agent has a specific role, skills, and tools.17 Specialized Agents
Purpose-built agents for evidence collection, analysis, verification, and reporting
Sequential & Parallel Execution
Run agents in parallel for efficiency or sequentially when dependencies exist
Agent Communication
Agents communicate through shared files and structured data formats
Workflow Orchestration
Main orchestrator manages agent lifecycle and coordinates complex workflows
Architecture
Orchestrator Responsibilities
Agent Spawning
The orchestrator is the ONLY component that spawns agents. Agents never spawn other agents.
Workflow Coordination
Manages phase transitions and ensures agents run in correct order with proper dependencies.
Agent Types
Evidence Collection Agents
These agents collect forensic evidence from different sources and write to the shared evidence store.oss-investigator-gh-archive-agent
oss-investigator-gh-archive-agent
Purpose: Query GitHub Archive via BigQuery for tamper-proof event dataSkills:
github-archive, github-evidence-kitCollects:- PushEvent (commits pushed)
- PullRequestEvent (PRs opened/closed/merged)
- IssuesEvent (issues opened/closed)
- CreateEvent/DeleteEvent (branches/tags created/deleted)
- WorkflowRunEvent (GitHub Actions runs)
evidence.jsonInvocation:oss-investigator-github-agent
oss-investigator-github-agent
Purpose: Query live GitHub API for current repository stateSkills:
github-evidence-kitCollects:- Commit content and metadata
- File contents at specific refs
- Branch and tag information
- PR and issue details (if not deleted)
- Fork relationships
evidence.jsonUse Case: Retrieve commit content after getting SHA from GH Archiveoss-investigator-wayback-agent
oss-investigator-wayback-agent
Purpose: Recover deleted content from Wayback MachineSkills:
github-wayback-recovery, github-evidence-kitCollects:- Archived README and documentation
- Deleted issue/PR content
- Repository metadata snapshots
- Wiki pages
evidence.jsonLimitation: Cannot recover private content or full git historyoss-investigator-local-git-agent
oss-investigator-local-git-agent
Purpose: Analyze cloned repositories for dangling commitsSkills:
github-evidence-kitCollects:- Dangling commits (not reachable from any ref)
- Reflog entries
- Force-pushed commit content
evidence.jsonValue: Reveals force-pushed or deleted commits that attackers tried to hideoss-investigator-ioc-extractor-agent
oss-investigator-ioc-extractor-agent
Purpose: Extract IOCs (Indicators of Compromise) from vendor security reportsSkills:
github-evidence-kitCollects:- Commit SHAs
- File hashes
- Usernames
- Repository URLs
- IP addresses and domains
evidence.jsonInvocation: Only spawned if vendor report URL is in research questionAnalysis Agents
These agents analyze collected evidence and form hypotheses about security incidents.oss-hypothesis-former-agent
oss-hypothesis-former-agent
Purpose: Analyze evidence and form hypotheses OR request additional evidenceSkills: Hypothesis Format:
github-evidence-kitInput: Reads evidence.json, previous rebuttal (if retry)Output: Writes either:evidence-request-{N}.mdif more evidence neededhypothesis-{N}.mdif evidence sufficient
- Research question restatement
- Executive summary
- Timeline table with evidence citations
- Attribution with confidence levels
- Intent analysis (evidence-based)
- Impact assessment
- Evidence citations table
oss-hypothesis-checker-agent
oss-hypothesis-checker-agent
Purpose: Validate hypothesis claims against verified evidenceSkills:
github-evidence-kitInput: Reads hypothesis-{N}.md and evidence.jsonOutput: Writes either:hypothesis-{N}-confirmed.mdif all claims validatedhypothesis-{N}-rebuttal.mdif claims fail verification
- Every claim must cite evidence by ID
- Evidence IDs must exist in store with verified status
- Attribution confidence must match evidence quality
- Timeline must use exact UTC timestamps from evidence
- No speculation or unsupported claims
crash-analyzer-agent
crash-analyzer-agent
Purpose: Deep root-cause analysis of C/C++ crashes using rr debuggerSkills:
rr-debugger, function-tracing, gcov-coverageInput: Bug tracker URL, git repo URLOutput: Root cause analysis with:- Crash location and stack trace
- Function call sequence leading to crash
- Code coverage data
- Memory state at crash point
crash-analyzer-checker-agent
crash-analyzer-checker-agent
Purpose: Validate crash analysis accuracyInput: Crash analysis reportOutput: Verification report with:
- Claim validation results
- Code path verification
- Alternative explanations (if any)
exploitability-validator-agent
exploitability-validator-agent
Purpose: Determine if vulnerabilities are exploitableSkills:
exploitability-validationInput: SARIF findings, target binary pathOutput: Validation report with:- Reachability analysis
- Exploit feasibility assessment
- Mitigation effectiveness check
Verification Agents
oss-evidence-verifier-agent
oss-evidence-verifier-agent
Purpose: Re-verify all collected evidence against original sourcesSkills: Verification Methods:
github-evidence-kitInput: Reads evidence.jsonOutput: Writes evidence-verification-report.mdVerification Process:- GH Archive: Re-query BigQuery with same parameters
- GitHub API: Re-fetch from API endpoints
- Wayback: Re-check snapshot availability
- Local Git: Re-validate commit existence
Reporting Agents
oss-report-generator-agent
oss-report-generator-agent
Purpose: Generate final forensic report from confirmed hypothesisSkills:
github-evidence-kitInput: Reads:hypothesis-{N}-confirmed.mdevidence.jsonevidence-verification-report.md
forensic-report.mdReport Sections:- Executive Summary
- Timeline (chronological with evidence)
- Attribution (actors, confidence, evidence)
- Intent Analysis
- Impact Assessment
- IOCs (Indicators of Compromise)
- Evidence Appendix (full details)
Execution Modes
Parallel Execution
Use When: Agents have no dependencies on each other’s outputs Pattern: Spawn multiple agents in a single messageSequential Execution
Use When: Agent B depends on Agent A’s output Pattern: Wait for completion before next spawnAgent Communication
Shared File System
Agents communicate through files in the working directory:Data Formats
Evidence Store (JSON):Error Handling
Agent Failure Strategies
- Retry
- Fallback
- Graceful Degradation
- Fail Fast
When: Transient errors (network, API rate limits)
Error Recovery Workflow
Best Practices
Spawn Parallel When Possible
Evidence collectors have no dependencies - always spawn in parallel for 4-5x speedup
Single Responsibility
Each agent does ONE thing well. Don’t ask evidence collectors to form hypotheses.
Pass Working Directory
Every agent needs the working directory path to read/write shared files
Verify Outputs
Orchestrator should check that expected output files exist before proceeding
Agent Design Principles
Agents Never Spawn Other Agents
Agents Never Spawn Other Agents
Only the orchestrator spawns agents. This prevents infinite loops and makes workflows debuggable.
Skills Define Capabilities
Skills Define Capabilities
Agents declare their skills (e.g.,
github-archive, github-evidence-kit). Skills are documentation loaded into agent context.Tools Define Actions
Tools Define Actions
Agents declare their tools (e.g.,
Bash, Read, Write). Tools are actual capabilities the agent can use.File-Based Communication
File-Based Communication
Agents communicate through files, not return values. This makes workflows resumable and debuggable.
Performance Optimization
Parallelization Impact
Evidence Collection Phase:| Execution Mode | Time | Speedup |
|---|---|---|
| Sequential (4 agents) | 120s | 1x |
| Parallel (4 agents) | 30s | 4x |
- GH Archive agent: Waits for BigQuery
- GitHub API agent: Waits for API responses
- Wayback agent: Waits for Archive.org
- Local Git agent: Waits for git commands
Orchestrator Optimization
Debugging
Workflow Tracing
Enable detailed orchestrator logging:Common Issues
Cause: Agent completed but didn’t write expected output fileDebug:Fix: Check agent logs for errors during file write
Cause: Agents spawned in separate messages instead of single messageFix: Use single message with multiple Task calls
Expected behavior - evidence accumulates across investigationIf concern: Evidence is deduplicated by ID, so duplicates don’t inflate size
Further Reading
Agent Definitions
Full agent specifications with skills and tools
Orchestrator Code
Source code for workflow orchestration logic
Evidence Kit API
Python API for evidence collection and storage
Creating Custom Agents
Guide to building your own specialized agents