Files
openclaw/workspace/james/docs/NODES.md
Clawd Bot ca9b510922 chore: align with upstream openclaw/openclaw and overlay local additions
- Reset master to upstream/main (16,697 commits)
- Overlay 2,271 local-only files (skills, tools, workspace, configs, apps)
- Restore IDENTITY.md and USER.md templates
- Build verified, gateway running, Discord working

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 07:40:46 +01:00

1.3 KiB

NODES.md — Node Model Implementation

Nodes are identified by environment variables. Each node runs a watcher and publishes to Redis.


Identity

Set these on every node:

  • JAMES_NODE — node name (example: node-a)
  • JAMES_ROLE — role (example: storage, compute, control)

Watcher Run Example

PYTHONPATH=<repo-root>/workspace JAMES_NODE=node-a JAMES_ROLE=compute \
REDIS_URL=redis://:<pass>@127.0.0.1:6379/0 \
python3 workspace/james/agents/watcher/watcher.py

Node Registry

Watchers maintain a lightweight registry in Redis so other components can discover active nodes.

Keys:

  • james:nodes (set) — all known node names
  • james:nodes:<node> (hash) — node metadata (role, last_seen, capabilities)
  • james:nodes:last_seen (sorted set) — node last_seen timestamps

Defaults:

  • JAMES_NODE_REGISTRY=1 (enabled)
  • JAMES_NODE_REGISTRY_TTL=180 seconds

If a node stops updating, its hash key expires automatically based on the TTL.


Node Health Event (example)

{
  "node": "node-a",
  "role": "compute",
  "status": "degraded",
  "issues": ["disk_usage_high"],
  "timestamp": 1738678200
}

Capabilities

  • Compute nodes: GPU and container metrics
  • Storage nodes: disk and backup alerts
  • Control nodes: Redis uptime and network health