The challenge
The client needed a multi-agent workflow that was genuinely always on, not something started by hand when someone remembered. Agents had to keep working between sessions, hold their own state, and stay reachable so the client could check on them and feed them new work.
The awkward part was access. Reaching a long-running service normally means putting a server on the public internet with an open inbound port, which is a standing invitation on a box that holds API keys and client context. The requirement was to keep it reachable without exposing the origin at all.
Approach
The orchestration was built on OpenClaw, which handles running several agents with defined roles and passing work between them, rather than one agent with an ever-growing prompt trying to do everything at once. That keeps each agent's job small enough to reason about and to fix when it misbehaves.
For access, the instance publishes nothing. A Cloudflare tunnel establishes the connection outward, so traffic arrives through Cloudflare rather than through an open port on the host. There is no public IP to scan and no inbound rule to get wrong, and the origin stays private even though the service is reachable from anywhere.
Architecture
- OpenClaw multi-agent orchestration on Node.js, with agents split by role and explicit hand-offs between them.
- A single AWS EC2 instance running continuously, so agent state survives between sessions.
- A Cloudflare tunnel for ingress: the connection is outbound-only, with no inbound ports open on the instance and no public address on the origin.
- Secrets held in the instance environment, never in the repository.
Results
The workflow is live and running continuously for the client, reachable without any part of the origin infrastructure being published to the internet.
Figures on the volume of work it handles belong to the client and are not published here.