Skip to main content

BAT decision matrix

BAT Decision Matrix: Best Available Technology Selection

Version: 1.0.0 Status: Standard Epic Alignment: #55 (GitLab Ultimate Showcase), #46 (Infrastructure) Last Updated: 2026-01-12


Executive Summary

BAT (Best Available Technology) is a systematic framework for selecting optimal technologies across the agent platform. This document defines the decision criteria, scoring methodology, and matrices for all technology categories.

Core Principle: Select the best available technology for each component based on requirements, cost, performance, feasibility, and vendor independence.


BAT Selection Criteria

Primary Criteria (Weighted)

CriterionWeightDescription
Performance25%Meets or exceeds requirements (latency, throughput, accuracy)
Cost20%Total Cost of Ownership (TCO) - licensing, compute, maintenance
Reliability20%Uptime, error rates, proven production track record
Maintainability15%Standards-based, documentation quality, community support
Scalability10%Ability to grow with platform demands
Vendor Independence10%Avoid lock-in, migration path, open standards

Scoring Scale

ScoreMeaningCriteria
5ExcellentBest in class, exceeds all requirements
4GoodMeets all requirements, minor limitations
3AcceptableMeets most requirements, known limitations
2MarginalMeets minimum requirements, significant limitations
1PoorDoes not meet requirements, major concerns

BAT Score Calculation

BAT Score = (Performance  0.25) + (Cost  0.20) + (Reliability  0.20)
          + (Maintainability  0.15) + (Scalability  0.10) + (Vendor Independence  0.10)

Thresholds:

  • > 4.0: Strong recommendation
  • 3.5 - 4.0: Acceptable, proceed with caution
  • < 3.5: Not recommended, seek alternatives

Technology Category Matrices

1. LLM Provider Selection

Context: Selecting LLM providers for agent reasoning, code review, and task execution.

ProviderModelPerformanceCostReliabilityMaintainabilityScalabilityVendor Ind.BAT Score
AnthropicClaude 3.5 Sonnet5454434.30
AnthropicClaude 3 Opus5254433.90
OpenAIGPT-4o4344533.80
GoogleGemini 2.0 Flash3543533.75
GoogleGemini 2.0 Pro4343533.65
MetaLlama 3.3 70B4534353.95
MistralMixtral 8x22B3534353.70

BAT Decision:

  • Primary (Reasoning): Claude 3.5 Sonnet (Score: 4.30) - Best reasoning capability
  • Secondary (Cost-Sensitive): Gemini 2.0 Flash (Score: 3.75) - High-volume, low-cost tasks
  • Multimodal: GPT-4o (Score: 3.80) - Image/vision tasks
  • Self-Hosted: Llama 3.3 70B (Score: 3.95) - Vendor independence, on-premises

LLM Selection by Agent Type

Agent TypeRecommended LLMRationale
Orchestrators (@default-orchestrator, @release-coordinator)Claude 3 OpusCritical decisions require highest capability
Code Review (@mr-reviewer, @code-reviewer)Claude 3.5 SonnetStrong reasoning for code analysis
Pipeline Analysis (@ci-fixer-worker, @pipeline-remediation)Claude 3.5 SonnetComplex log analysis
High-Volume (@cost-intelligence-monitor, @task-dispatcher)Gemini 2.0 FlashCost efficiency for frequent operations
Multimodal (@documentation-aggregator)GPT-4oImage/diagram processing
No LLM (@vuln-scanner, @drupal-standards-checker)N/ARule-based, no LLM needed

2. Agent Framework Selection

Context: Selecting frameworks for agent definition, orchestration, and execution.

FrameworkPerformanceCostReliabilityMaintainabilityScalabilityVendor Ind.BAT Score
OSSA v0.3.24545454.40
kAgent CRD4544544.25
LangGraph4344423.60
CrewAI3433333.20
AutoGen3433333.20
Custom4532353.50

BAT Decision:

  • Primary: OSSA v0.3.2 (Score: 4.40) - Open standard, comprehensive, vendor-neutral
  • Kubernetes Deployment: kAgent CRD (Score: 4.25) - Native K8s, auto-registration
  • Alternatives Considered: LangGraph (vendor lock-in), CrewAI (less mature)

3. Infrastructure Selection

Context: Selecting compute and storage infrastructure for agent execution.

Compute Infrastructure

InfrastructurePerformanceCostReliabilityMaintainabilityScalabilityVendor Ind.BAT Score
Vast.ai RTX 40905543444.25
AWS p4d.24xlarge5154523.45
GCP A1005154523.45
Local GPU4523153.15
RunPod4433443.65

BAT Decision:

  • GPU Compute: Vast.ai RTX 4090 (Score: 4.25) - Cost-effective, on-demand
  • Reasoning: 10x cheaper than AWS/GCP, comparable performance

Storage Infrastructure

InfrastructurePerformanceCostReliabilityMaintainabilityScalabilityVendor Ind.BAT Score
Synology NAS4544354.15
AWS S34254523.55
MinIO (Self-Hosted)4544454.25
Cloudflare R24453533.95

BAT Decision:

  • Primary Storage: Synology NAS (Score: 4.15) - Always-on, cost-effective
  • Object Storage: MinIO on NAS (Score: 4.25) - S3-compatible, self-hosted
  • Edge Storage: Cloudflare R2 (Score: 3.95) - Edge caching, egress-free

4. Database Selection

Context: Selecting databases for agent state, vector storage, and caching.

DatabaseUse CasePerformanceCostReliabilityMaintainabilityScalabilityVendor Ind.BAT Score
PostgreSQLAgent State5555454.85
QdrantVector Search5544454.50
RedisCache/Queue5545454.65
MongoDBDocuments4444444.00
PineconeVector Search5253523.60
WeaviateVector Search4444454.15

BAT Decision:

  • Relational: PostgreSQL (Score: 4.85) - Agent state, metadata
  • Vector: Qdrant (Score: 4.50) - Embeddings, semantic search
  • Cache: Redis (Score: 4.65) - Session cache, message queue
  • Alternative Vector: Weaviate (Score: 4.15) - If Qdrant unavailable

5. Observability Selection

Context: Selecting observability stack for agent monitoring, tracing, and alerting.

ToolPurposePerformanceCostReliabilityMaintainabilityScalabilityVendor Ind.BAT Score
GitLab ObservabilityAPM/Tracing4555444.50
OpenTelemetryInstrumentation5555555.00
PrometheusMetrics5554454.65
GrafanaDashboards5555454.85
DataDogFull Stack5154523.50
New RelicFull Stack5154523.50

BAT Decision:

  • Primary: GitLab Observability (Score: 4.50) - Native integration with GitLab Ultimate
  • Instrumentation: OpenTelemetry (Score: 5.00) - Standard, vendor-neutral
  • Metrics: Prometheus + Grafana (Score: 4.75 avg) - Self-hosted, comprehensive
  • Implementation: agent-tracer (Epic #52) using OpenTelemetry GitLab Observability

6. Networking Selection

Context: Selecting networking infrastructure for agent communication and public access.

TechnologyPurposePerformanceCostReliabilityMaintainabilityScalabilityVendor Ind.BAT Score
TailscaleMesh VPN5555444.70
Cloudflare TunnelPublic Access5554534.55
WireGuardVPN5543354.20
ngrokTunneling4344343.70
ZeroTierMesh VPN4544444.20

BAT Decision:

  • Private Mesh: Tailscale (Score: 4.70) - Zero-config mesh, secure
  • Public Ingress: Cloudflare Tunnel (Score: 4.55) - DDoS protection, free tier
  • Configuration:
    • Private: *.tailcf98b3.ts.net
    • Public: *.blueflyagents.com (via Cloudflare)

7. CI/CD Selection

Context: Selecting CI/CD platform for agent deployment and pipeline management.

PlatformPerformanceCostReliabilityMaintainabilityScalabilityVendor Ind.BAT Score
GitLab CI5555544.85
GitHub Actions4454534.15
Jenkins4543454.05
Tekton4543554.20
ArgoCD4554554.55

BAT Decision:

  • Primary: GitLab CI (Score: 4.85) - Native to GitLab, components support
  • GitOps: ArgoCD (Score: 4.55) - Kubernetes deployments, declarative
  • Implementation: GitLab CI Components (gitlab_components project)

Agent-Specific BAT Decisions

Summary Table

AgentLLM (BAT)Framework (BAT)Infrastructure (BAT)Rationale
@default-orchestratorClaude 3 OpusOSSA + kAgentVast.ai (GPU)Critical coordination decisions
@release-coordinatorClaude 3 OpusOSSA + kAgentVast.ai (GPU)Critical release decisions
@mr-reviewerClaude 3.5 SonnetOSSA + kAgentVast.ai (GPU)Strong code reasoning
@ci-fixer-workerClaude 3.5 SonnetOSSA + kAgentVast.ai (GPU)Complex log analysis
@issue-workerClaude 3.5 SonnetOSSA + kAgentVast.ai (GPU)Implementation planning
@code-reviewerClaude 3.5 SonnetOSSA + kAgentVast.ai (GPU)Multi-language SAST
@pipeline-remediationClaude 3.5 SonnetOSSA + kAgentVast.ai (GPU)Failure analysis
@vuln-scannerNone (rule-based)OSSANAS (Docker)Security tools only
@drupal-standards-checkerNone (rule-based)OSSANAS (Docker)PHPCS/PHPStan only
@ossa-validatorNone (rule-based)OSSANAS (Docker)Schema validation
@cost-intelligence-monitorGemini 2.0 FlashOSSANAS (Docker)High-volume analytics
@task-dispatcherGemini 2.0 FlashOSSANAS (Docker)Frequent routing
@documentation-aggregatorGPT-4oOSSANAS (Docker)Multimodal docs
@module-generatorClaude 3.5 SonnetOSSANAS (Docker)Code generation
@recipe-publisherNone (automation)OSSANAS (Docker)Packagist automation
@kagent-workerClaude 3.5 SonnetOSSA + kAgentVast.ai (GPU)K8s orchestration
@cluster-operatorNone (automation)OSSANAS (Docker)Infrastructure ops
@mcp-builder-workerClaude 3.5 SonnetOSSANAS (Docker)MCP server creation

BAT Decision Process

Step 1: Define Requirements

requirements: functional: - description: "What must the technology do?" - constraints: "Any hard requirements?" non_functional: - performance: "Latency, throughput targets" - availability: "Uptime requirements" - cost: "Budget constraints"

Step 2: Identify Candidates

  1. Research available technologies
  2. Filter by functional requirements
  3. Create candidate shortlist (3-5 options)

Step 3: Score Candidates

For each candidate:

  1. Score each criterion (1-5)
  2. Apply weights
  3. Calculate BAT Score
  4. Document rationale

Step 4: Document Decision

decision: technology: "Selected technology" score: "BAT Score" rationale: "Why this was selected" alternatives_considered: - name: "Alternative 1" score: "Score" rejection_reason: "Why not selected" review_date: "When to re-evaluate"

Step 5: Implement & Monitor

  1. Implement selected technology
  2. Track MOE (Measure of Effectiveness) metrics
  3. Review decision quarterly
  4. Update BAT matrix if context changes

Integration with Projects

Project Mapping

BAT CategoryPrimary ProjectEpic
LLM Routingagent-router#49
Agent Frameworkplatform-agents#47
Vector Storageagent-brain#51
Observabilityagent-tracer#52
Communicationagent-mesh#48
CLI Toolsagent-buildkit#50
InfrastructureNAS/Vast.ai#46

BAT Review Cadence

  • Quarterly: Full BAT matrix review
  • Monthly: MOE tracking against BAT decisions
  • Ad-hoc: When new technology emerges or requirements change


Changelog

VersionDateChanges
1.0.02026-01-12Initial BAT Decision Matrix

Owner: Platform Architecture Review Cycle: Quarterly Next Review: 2026-04-12