Skip to main content

Agent Operator Guide (OpenClaw)

This guide is for operators who want the full stack:
  • b1e55ed (signals + brain + dashboard)
  • OpenClaw (24/7 AI operator)
  • Telegram alerts + natural-language queries
  • Heartbeat health checks
If you want no AI dependency, start here instead:

What you get

Everything in the standalone deployment, plus:
  • AI monitors 24/7: watches health, events, and anomalies
  • Telegram alerts: sends actionable notifications (failures, thresholds, noteworthy shifts)
  • Natural-language ops: ask questions like “what’s HYPE doing?” and get a synthesized answer
  • Proactive analysis: agent can summarize what changed since last check
  • Heartbeat checks: a small, explicit checklist that runs periodically

Architecture

                (your private VPS)

        +-----------------------------+
        |          b1e55ed             |
        |  - producers + brain loop    |
        |  - REST API (:5050)          |
        |  - dashboard (:5051)         |
        +--------------^--------------+
                       |
                       | localhost / tailscale
                       v
        +-----------------------------+
        |          OpenClaw           |
        |  - AI layer + heartbeats    |
        |  - alert routing + tools    |
        +--------------^--------------+
                       |
                       v
                  Telegram (Bot)

Optional: Oracle endpoint exposed so agents (or other systems) can check producer provenance.

Prerequisites

Same as standalone

  • VPS: 2 vCPU / 2 GB RAM minimum (4 GB recommended)
  • Python 3.11+ (installer + uv manage this)
  • GitHub access (installer pulls from GitHub)

Additional

⚠️ Common failure point #1: no AI key / wrong AI key Symptoms: OpenClaw starts but can’t run tools, or errors on model calls. Fix: re-run openclaw setup and ensure the key is stored (see Step 4).

Step 1: Install b1e55ed

Do the standalone install first:
# (Recommended) run as a dedicated operator user
sudo useradd -m -s /bin/bash b1e55ed
sudo su - b1e55ed

curl -sSf https://raw.githubusercontent.com/P-U-C/b1e55ed/main/install.sh | bash
export PATH="$HOME/.local/bin:$PATH"

b1e55ed wizard
At the end of the wizard you should be able to run:
b1e55ed start --no-browser
Keep it running while you bring up OpenClaw (or run it under systemd later).

Step 2: Install OpenClaw

Install Node.js first if you don’t have it (Ubuntu):
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
node --version
npm --version
Install OpenClaw:
sudo npm install -g openclaw
openclaw --version
Run setup (stores provider keys and creates a default workspace):
openclaw setup
During setup, when prompted for an Anthropic key:

Step 3: Connect Telegram

3.1 Create a Telegram bot

  1. In Telegram, open @BotFather
  2. Send /newbot
  3. Choose a name and username
  4. BotFather will return a bot token (a long string)

3.2 Store the token in OpenClaw

On your VPS:
# Replace TOKEN with the exact token BotFather gave you.
# Example format: 1234567890:AA... (keep it secret)
openclaw config set telegram.token "TOKEN"

3.3 Test the bot

  1. Open your bot in Telegram
  2. Tap Start (or send /start)
If OpenClaw is running, you should see it acknowledge messages (depending on your configured skills/heartbeats). ⚠️ Common failure point #2: Telegram bot doesn’t respond Checklist:
# Confirm token was set
openclaw config get telegram.token

# Check OpenClaw logs (if running under systemd, see later section)
openclaw gateway status || true
Also confirm you are messaging the correct bot (the one you created with BotFather).

Step 4: Configure the AI (SOUL.md + USER.md)

OpenClaw uses a workspace directory containing operator instructions. Two files matter most:
  • SOUL.md: the assistant’s personality + operating principles
  • USER.md: your preferences and what “good” looks like
Create/edit them in your OpenClaw workspace (you can find the workspace path via openclaw config, but the default is usually ~/.openclaw/workspace). Minimal examples:

SOUL.md

You are an operations assistant for a b1e55ed deployment.

You:
- keep messages short and actionable
- never guess: verify via CLI/health endpoints
- prioritize safety: do not place trades without explicit instruction

USER.md

Operator preferences:
- Alert me on any service restart, health=DEGRADED/ERROR, or missed brain cycles.
- Summarize: top 3 changes since last check.
- Keep output concise.

Step 5: Connect b1e55ed to OpenClaw

The simplest integration pattern:
  • b1e55ed runs on the VPS (API on 127.0.0.1:5050)
  • OpenClaw heartbeats call:
    • b1e55ed health --json
    • curl http://127.0.0.1:5050/api/v1/health
    • b1e55ed status

5.1 Ensure b1e55ed is reachable locally

On the VPS:
curl -s http://127.0.0.1:5050/api/v1/health

5.2 Create a HEARTBEAT.md

In your OpenClaw workspace, create HEARTBEAT.md with explicit checks. Minimal, copy/paste-ready example:
Every heartbeat:

1) b1e55ed health (cron-safe)
   - run: b1e55ed health --json
   - alert if status != OK

2) API reachable
   - run: curl -s http://127.0.0.1:5050/api/v1/health
   - alert if not HTTP 200 or body is not healthy

3) Brain freshness
   - run: b1e55ed status
   - alert if last brain cycle is stale (>10 minutes)
Then run a manual check to validate your environment (optional but recommended):
b1e55ed health --json
b1e55ed status
⚠️ Common failure point #3: OpenClaw can’t find the b1e55ed command Fix: ensure the service environment PATH includes ~/.local/bin, or use an absolute path in your heartbeat commands.
Tailscale lets you access the dashboard/API privately without exposing ports to the public internet.

VPS install

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
After tailscale up, it will print a login URL. Open it, authenticate, and approve the device.

Laptop (macOS) install

Now you can bind b1e55ed to localhost and still reach it over your tailnet by using the VPS Tailscale IP and a reverse proxy or tailscale serve (optional). For production hardening, see docs/deployment.md.

Step 7: Oracle setup (end-to-end)

If you want contributor registrations and agent provenance checks to work end-to-end, ensure:
  • API is running
  • Oracle endpoint is reachable wherever your agent runs
Oracle docs:

Daily operations

What alerts look like

Typical Telegram alerts you should configure for:
  • services restarting (API/brain/OpenClaw)
  • b1e55ed health returning DEGRADED/ERROR
  • brain staleness (no successful cycles within your threshold)

Example natural-language queries

  • “what’s BTC doing today?”
  • “summarize last 2 hours of signals”
  • “is the engine healthy?”
Under the hood, OpenClaw should answer by calling:
  • b1e55ed status
  • b1e55ed positions --json
  • API health endpoints

How heartbeats work

Heartbeats are deliberate, small checklists. You define them in HEARTBEAT.md. The agent executes them on a schedule and alerts on violations.

Customizing alerts

Edit HEARTBEAT.md to change thresholds and escalation. Practical knobs:
  • “brain stale” threshold (e.g., 10 minutes vs 30 minutes)
  • which endpoints matter (API, oracle, dashboard)
  • noise filtering (only alert on consecutive failures)
Keep it explicit and small so it stays reliable.

Running as a service (systemd)

This section runs four services under systemd:
  • b1e55ed-api.service
  • b1e55ed-brain.service
  • openclaw-gateway.service
  • openclaw-agent.service (optional wrapper if you run a dedicated agent process)

b1e55ed services

Use the unit files from the standalone guide:

OpenClaw gateway service

This assumes:
  • OpenClaw is installed globally (/usr/bin/openclaw should exist)
  • You want it running as the b1e55ed user
sudo tee /etc/systemd/system/openclaw-gateway.service >/dev/null <<'EOF'
[Unit]
Description=OpenClaw gateway
After=network.target

[Service]
Type=simple
User=b1e55ed
WorkingDirectory=/home/b1e55ed
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/b1e55ed/.local/bin
ExecStart=/usr/bin/openclaw gateway start
ExecStop=/usr/bin/openclaw gateway stop
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF
Enable + start:
sudo systemctl daemon-reload
sudo systemctl enable --now openclaw-gateway.service
systemctl status openclaw-gateway.service --no-pager
If your OpenClaw install path differs, locate it:
command -v openclaw

Troubleshooting

OpenClaw installed but openclaw not found

npm -g bin
command -v openclaw
sudo npm install -g openclaw

Telegram connection issues

  • Re-check token with openclaw config get telegram.token
  • Ensure the bot was started in Telegram (/start)

b1e55ed API not reachable from OpenClaw

curl -v http://127.0.0.1:5050/api/v1/health
systemctl status b1e55ed-api.service --no-pager || true
journalctl -u b1e55ed-api.service -n 200 --no-pager || true
For deeper b1e55ed ops docs, see the repo docs index in README.md.