Agent Reference
Purple8 Builder ships 58+ specialized agents across 7 categories. Every agent is a Python class mixing BaseAgent, FourLayerMixin, and PDCAMixin.
Core Pipeline Agents
These run on every build regardless of goal or domain.
| Agent | Phase | Output |
|---|---|---|
IdeationAgent | planning | Feature list, scope, constraints |
ArchitectureAgent | planning | Stack selection, service topology |
DatabaseAgent | design | Schema, migrations, seed data |
APIDevelopmentAgent | design | Endpoint definitions, OpenAPI spec |
BackendDevelopmentAgent | implementation | Service code, business logic |
FrontendDevelopmentAgent | implementation | SPA components, routing, state |
InfrastructureDevelopmentAgent | implementation | Docker Compose, env templates |
UnittestAgent | testing | pytest / jest test suite |
IntegrationTestAgent | testing | API integration tests |
SecurityQAAgent | testing | Security review, OWASP checklist |
DocumentationAgent | release | README, docstrings, API docs |
DeploymentAgent | release | CI/CD workflow, deploy config |
CodeReviewAgent | testing | Static analysis, code quality |
PerformanceQAAgent | testing | Load test config, perf assertions |
AccessibilityQAAgent | testing | WCAG 2.1 AA audit |
SEOAgent | release | Meta tags, sitemap, structured data |
DevOpsAgent | release | Helm charts, ArgoCD manifests |
AI/ML Specialist Agents
Activated automatically when the knowledge graph detects ML/AI signals in the prompt.
| Agent | Specialisation |
|---|---|
MachineLearningAgent | Model training pipelines, scikit-learn, PyTorch |
NLPAgent | Text classification, NER, intent recognition |
RAGAgent | Retrieval-augmented generation, vector store setup |
LLMOpsAgent | LLM fine-tuning, prompt management, evaluation |
DataScienceAgent | EDA, statistical analysis, Jupyter notebooks |
DataEngineeringAgent | ETL pipelines, Airflow/Prefect DAGs |
MLOpsAgent | MLflow, model registry, experiment tracking |
EvaluationMetricsAgent | Accuracy, F1, BLEU, custom eval harnesses |
FeatureEngineeringAgent | Feature stores, transformation pipelines |
RecommenderAgent | Collaborative filtering, content-based, hybrid |
ComputerVisionAgent | Image classification, object detection |
TimeSeriesAgent | Forecasting, anomaly detection, ARIMA/Prophet |
GraphAnalyticsAgent | Graph algorithms, centrality, community detection |
DashboardAgent | Grafana dashboards, Metabase reports |
PromptEngineeringAgent | System prompt design, few-shot examples |
DocumentIntelligenceAgent | PDF/DOCX parsing, entity extraction |
AgenticWorkflowAgent | Multi-step dialogue, state machine design |
ConversationalAIAgent | Chatbot NLU/NLG, intent/entity pipeline |
BioinformaticsAgent | Genomics pipelines, BLAST, sequence analysis |
QA Specialist Agents
| Agent | Specialisation |
|---|---|
E2ETestAgent | Playwright end-to-end test suite |
APITestAgent | Contract tests, Postman collections |
LoadTestAgent | k6 / Locust load test scripts |
VisualRegressionAgent | Percy / Chromatic snapshot tests |
MutationTestAgent | Mutation testing with mutmut/Stryker |
FuzzingAgent | Property-based tests with Hypothesis |
SecurityPenTestAgent | DAST, SQLi, XSS, auth bypass checks |
ContractTestAgent | Pact consumer-driven contract tests |
BrowserCompatAgent | Cross-browser compatibility matrix |
MobileTestAgent | Responsive design, touch target audit |
DatabaseQAAgent | Query plan analysis, index suggestions |
Enterprise Agents
Activated for Production goal or when compliance signals are detected.
| Agent | Specialisation |
|---|---|
ComplianceAgent | HIPAA, GDPR, SOC 2, PCI DSS documentation |
EnterpriseCyberSecurityAgent | Threat modelling, SAST, secrets audit |
AuditAgent | Immutable audit log schema, 45 CFR compliance |
EnterpriseIntegrationAgent | SSO/SAML, Vault, ERP connectors |
GovernanceAgent | Data governance policies, lineage docs |
RegulatoryAgent | Sector-specific regulatory documentation |
Proactive / Background Agents
Run continuously, not per-build.
| Agent | Function |
|---|---|
ProactiveMaintenanceAgent | Watches projects for outdated deps, CVEs |
HealthMonitorAgent | Platform health checks, alert routing |
MemoryConsolidationAgent | Merges and deduplicates long-term memory |
Specialized Domain Agents
| Agent | Domain |
|---|---|
BlockchainAgent | Smart contracts, Solidity, Web3 |
IoTAgent | MQTT, edge compute, sensor pipelines |
ARVRAgent | Unity/Unreal integration, spatial computing |
QuantumAgent | Qiskit circuits, quantum algorithm scaffolding |
GameDevelopmentAgent | Game loops, physics, asset pipelines |
EmbeddedSystemsAgent | C/C++ firmware, RTOS, hardware interfaces |
MobileAgent | React Native, Flutter cross-platform apps |
DesignAgent | Wireframes, design tokens, component library |
Research Agents
| Agent | Function |
|---|---|
ResearchAgent | Academic literature search, citation management |
TechnicalWritingAgent | RFC drafts, ADRs, technical specifications |
Domain auto-detection
You never select agents manually. The knowledge graph detects domain signals:
| Signal in prompt | Agents added automatically |
|---|---|
| "HIPAA", "PHI", "medical" | ComplianceAgent, EnterpriseCyberSecurityAgent, AuditAgent |
| "ML", "model", "training" | MachineLearningAgent, MLOpsAgent, EvaluationMetricsAgent |
| "chatbot", "intent", "NLU" | NLPAgent, AgenticWorkflowAgent, ConversationalAIAgent |
| "recommendation" | RecommenderAgent, GraphAnalyticsAgent |
| "real-time", "MQTT" | DataEngineeringAgent, TimeSeriesAgent |
| "smart contract", "Web3" | BlockchainAgent |
| "GDPR", "SOC 2", "compliance" | ComplianceAgent, GovernanceAgent, AuditAgent |
Writing a custom agent
python
from shared.agents.core.base_agent import BaseAgent
from shared.agents.mixins import FourLayerMixin, PDCAMixin
from shared.agents.models import AgentOutput
class MyCustomAgent(FourLayerMixin, PDCAMixin, BaseAgent):
name = "MyCustomAgent"
phase = "implementation"
description = "Generates X from Y"
async def execute(self, context: dict) -> AgentOutput:
result = await self.llm.complete(
self.build_prompt(context)
)
return AgentOutput(
agent=self.name,
content=result.text,
files=result.files,
metadata={"tokens": result.usage.total_tokens}
)