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:
- No alternatives documented
💭 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
APIs/backend-ai-api/src/app/infrastructure/services/sandbox/sandbox-provider.interface.tsAPIs/backend-ai-api/src/app/infrastructure/services/sandbox/sandbox-provider.factory.tsAPIs/backend-ai-api/src/app/infrastructure/services/sandbox/e2b-cloud.provider.tsAPIs/backend-ai-api/src/app/infrastructure/services/sandbox/self-hosted.provider.tsAPIs/backend-ai-api/src/app/infrastructure/services/sandbox/playwright.provider.tsAPIs/backend-ai-api/src/app/infrastructure/services/computer-use-loop.service.ts
🔗 Related
- Decision ID:
dev_1772122716087_89g723a - Session: 144
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation