Files
agent-claw/offload-requirements.md
daniel 0369a74ac1 Initial research: OpenClaw on AgentCore architecture
- Architecture comparison (OpenClaw daemon vs AgentCore serverless)
- Component compatibility analysis
- Fargate analysis
- AgentCore rebuild plan (Telegram, zero always-on compute)
- Memory strategy: AgentCore Memory + factbase as structured KB
- Serverless relay patterns per channel
- All open questions resolved
- OpenClaw feature delta March→May 2026
- Build phases and cost estimates
2026-05-04 08:28:52 -05:00

4.2 KiB

What Must Be Offloaded to External Services

Must-Offload Components

1. Messaging Channel Connections → External Service / Sidecar

Current: WhatsApp (Baileys WS), Discord (discord.js WS), Telegram (grammY), Slack (Bolt), etc. all run as persistent connections inside the gateway. Required: A separate always-on service that:

  • Maintains persistent connections to each messaging platform
  • Receives inbound messages
  • Translates them into InvokeAgentRuntime calls to AgentCore
  • Receives agent responses and routes them back to the correct channel

Options:

  • ECS/Fargate task running a stripped-down "channel relay" service (the OpenClaw gateway minus the agent runtime)
  • Lambda + API Gateway for webhook-based channels (Telegram webhook mode, Slack Events API)
  • EC2 or ECS for WebSocket-based channels (WhatsApp Baileys, Discord)
  • A lightweight "gateway lite" that keeps channel connections and forwards to AgentCore

Complexity: HIGH. This is the single biggest piece of work. The channel connection logic is deeply intertwined with the gateway.

2. Persistent State → S3 + DynamoDB / AgentCore Memory

Current: All state lives on the filesystem. Required:

State Proposed External Store
Session transcripts (JSONL) S3 (keyed by agent+session ID) or DynamoDB
Agent workspace (MEMORY.md, SOUL.md, etc.) S3 bucket or EFS
WhatsApp auth state DynamoDB or Secrets Manager
Config (openclaw.json) S3 or Parameter Store
Pairing store (device trust) DynamoDB
Secrets Secrets Manager
Cron state DynamoDB
Agent conversation history AgentCore Memory (short-term + long-term)

Complexity: HIGH. Every file read/write in OpenClaw assumes a local filesystem. Would need a storage abstraction layer.

3. Heartbeat → EventBridge Scheduler

Current: Gateway-internal timer fires every 30m. Required: EventBridge Scheduler rule that periodically calls InvokeAgentRuntime with the heartbeat prompt.

Complexity: LOW. Straightforward EventBridge → Lambda → InvokeAgentRuntime.

4. Cron Jobs → EventBridge Scheduler

Current: croner library inside the gateway process. Required: Each cron job becomes an EventBridge Scheduler rule.

Complexity: MEDIUM. Need a way to manage/create/delete rules dynamically (since OpenClaw supports runtime cron management via the agent).

5. Webhook Ingress → API Gateway / ALB

Current: Gateway's HTTP server handles webhook endpoints for channels like Telegram (webhook mode), Slack Events API. Required: API Gateway or ALB fronting the channel relay service or Lambda functions.

Complexity: MEDIUM.

6. Browser Control → AgentCore Browser Tool or Sidecar

Current: Playwright controlling a local Chromium process. Required: Either:

  • Use AgentCore's built-in Browser Tool
  • Run headless Chrome inside the container (heavy, ephemeral)
  • Separate browser service (like Browserless.io or an ECS sidecar)

Complexity: MEDIUM. AgentCore has its own browser tool which could replace OpenClaw's.

Can Stay Inside the Container

These components work within an AgentCore container:

  • Agent reasoning loop (pi-mono core logic)
  • LLM API calls (Bedrock, Anthropic, OpenAI — outbound HTTP)
  • Web search / web fetch (outbound HTTP to Brave API, arbitrary URLs)
  • TTS calls (outbound HTTP to ElevenLabs/Edge TTS)
  • System prompt construction (pure logic)
  • Context windowing / compaction (algorithmic)
  • Model selection / failover (pure logic)
  • Basic shell exec (within container, ephemeral)
  • File read/write (within session, ephemeral — but see state offloading above)

Summary: Effort Estimate

Component Effort Notes
Channel relay service XL Core gateway refactor; messaging is deeply coupled
Storage abstraction layer L Every fs operation needs a backend swap
Heartbeat/Cron offload S EventBridge rules
Agent HTTP wrapper M Wrap pi-mono behind /invocations + /ping
Session model redesign L JSONL → AgentCore Memory or DynamoDB
Webhook ingress M API Gateway + routing
Browser adaptation S-M Use AgentCore Browser Tool or containerized Chrome