Architecture: How to abstract sandbox providers for Computer Use?

Documentation for Sessions

🏗️ Architecture: How to abstract sandbox providers for Computer Use?

Date: 2026-02-26
Time: 16:18:36 UTC
Session: gspace1-144.3
Agent: backend
Confidence: 95%
Status: ✅ Documented


📋 Decision Context

Question:

How to abstract sandbox providers for Computer Use?

Task: Implement self-hosted E2B provider abstraction (Gap 10)


🎯 Decision Made

Chosen:

Strategy pattern with SandboxProvider interface, SandboxProviderFactory, and 3 concrete providers (E2BCloudProvider, SelfHostedProvider, PlaywrightProvider)

Options Considered:


💭 Reasoning

Strategy pattern decouples ComputerUseLoopService from E2BDesktopService. Factory selects provider based on env vars (SANDBOX_SERVER_URL > E2B_API_KEY > fallback Playwright). E2BCloudProvider wraps existing service for backward compatibility. SelfHostedProvider uses HTTP to orchestrator API. PlaywrightProvider wraps BrowserAutomationService as fallback.


📁 Files Involved


🔗 Related


Auto-generated by MCP Smart Consolidation