Search for clawdbot gateway configuration files that would contain sub-agent model settings. Look for:
- Any config files under /etc/systemd/system/clawdbot*
- Any config files under /root/.clawdbot/
- Any files containing "kimi" or "moonshot" or "sub-agent" or "subagent" model references
- Check /home/ccuser/rateright-growth for clawdbot config files
- Check the clawdbot-gateway systemd service file and any override.conf

Report back the file paths and their contents that are relevant to changing the sub-agent model.


I'll search for clawdbot gateway configuration files and model settings across the system.


Bash

find /etc/systemd/system -name "*clawdbot*" -o -name "clawdbot*" 2>/dev/null | head -20

Find clawdbot systemd service files


/etc/systemd/system/multi-user.target.wants/clawdbot-gateway.service
/etc/systemd/system/clawdbot-gateway.service.d
/etc/systemd/system/clawdbot-gateway.service


find /root -name ".clawdbot" -o -path "*/.clawdbot/*" 2>/dev/null | head -20

Find clawdbot config directory under /root


find /home/ccuser/rateright-growth -name "*clawdbot*" -type f 2>/dev/null | head -20

Find clawdbot files in the main repo


Found 68 files
CLAUDE.md
.cc-local/MEMORY.md
rivet/memory/2026-02-06-incident-report.md
rivet/memory/spawn-tracker.json
rivet/lib/model-router-examples.ts
rivet/lib/model-router.ts
rivet/lib/dirty-data-detector.ts
rivet/MEMORY.md
rivet/memory/2026-02-08.md
rivet/TOOLS.md
rivet/memory/agent-failures.md
rivet/memory/plans/research/ai-trends-weekly.md
rivet/memory/topics/technical.md
rivet/memory/topics/michael.md
rivet/memory/heartbeat-2026-02-07-2123.md
rivet/AGENTS.md
rivet/HEARTBEAT.md
rivet/memory/agents/builder-profile.md
rivet/memory/agents/researcher-profile.md
rivet/memory/agents/sysops-profile.md
rivet/scripts/heartbeat-tasks.sh
rivet/memory/lessons-learned.md
rivet/agents/topic-7-system.md
rivet/agents/topic-8-personal.md
rivet/agents/topic-6-construction.md
rivet/agents/topic-5-research.md
rivet/agents/topic-4-sales.md
rivet/agents/topic-391-financial.md
rivet/agents/topic-388-legal.md
rivet/agents/topic-2-rateright.md
rivet/agents/topic-11-content.md
rivet/agents/topic-10-ideas.md
rivet/memory/agents/topic-5-research.md
rivet/memory/agents/product-profile.md
rivet/memory/agents/marketer-profile.md
rivet/memory/agents/coordinator-profile.md
rivet/memory/plans/system-gaps-fix.md
rivet/memory/plans/research/competitor-signup-flows.md
rivet/TOPICS.md
rivet/agents/topic-1-general.md
rivet/AGENT-SYSTEM.md
rivet/DAILY-SYNC-PROMPTS.md
rivet/memory/topic-reports/system.md
rivet/memory/topic-reports/rateright.md
rivet/memory/topic-reports/research.md
rivet/memory/plans/systems/coding-pipeline.md
rivet/YOUTUBE-AUTONOMOUS-COMPLETE.md
rivet/YOUTUBE-PIPELINE-COMPLETE.md
rivet/scripts/task-executor.py
rivet/scripts/IMPLEMENTATION-SUMMARY.md
rivet/scripts/README-task-executor.md
rivet/memory/plans/guides/subagent-reliability-guide.md
rivet/memory/2026-02-04.md
rivet/memory/plans/research/clawdbot-community-research.md
rivet/memory/plans/research/autonomous-agent-research-summary.md
rivet/memory/plans/research/autonomous-agent-research.md
voice-assistant/DEPLOYMENT.md
rivet/SYSTEM-ARCHITECTURE.md
rivet/CONTEXT.md
rivet/SYSTEM.md
rivet/IMPLEMENTATION-PLAN.md
rivet/SYSTEM-v2-draft.md
archive/docs/CLAWDBOT-OPS-CHEATSHEET.md
archive/docs/LESSONS.md
archive/docs/LESSONS-CLEANED.md
rivet/knowledge/COMPLETE-KNOWLEDGE.md
transcript.txt
archive/CC-VPS.md


Now let me check the systemd service files and the .clawdbot directory:


     1→[Unit]
     2→Description=Clawdbot Gateway
     3→After=network.target
     4→StartLimitIntervalSec=300
     5→StartLimitBurst=10
     6→
     7→[Service]
     8→Type=simple
     9→User=root
    10→ExecStart=/usr/local/bin/clawdbot-gateway-wrapper
    11→Restart=on-failure
    12→RestartSec=15
    13→Environment=NODE_ENV=production
    14→TimeoutStopSec=30
    15→KillMode=mixed
    16→KillSignal=SIGTERM
    17→
    18→# Logging
    19→StandardOutput=journal
    20→StandardError=journal
    21→SyslogIdentifier=clawdbot
    22→
    23→[Install]
    24→WantedBy=multi-user.target
    25→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>


ls -la /etc/systemd/system/clawdbot-gateway.service.d/ 2>/dev/null

List override files in clawdbot-gateway.service.d


total 12
drwxr-xr-x  2 root root 4096 Feb  2 05:32 .
drwxr-xr-x 26 root root 4096 Feb  7 16:33 ..
-rw-r--r--  1 root root  176 Feb  6 05:52 override.conf


List contents of /root/.clawdbot directory


Exit code 2


<tool_use_error>Sibling tool call errored</tool_use_error>


Let me read the override.conf file and search for the wrapper script:


     1→[Service]
     2→Environment="XDG_RUNTIME_DIR=/run/user/0"
     3→Environment="DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus"
     4→Environment="CLAWDBOT_ROOT=/usr/lib/node_modules/clawdbot"
     5→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>


cat /usr/local/bin/clawdbot-gateway-wrapper 2>/dev/null | head -50

Read the clawdbot gateway wrapper script


#!/bin/bash
# Clawdbot Gateway wrapper for systemd
# Handles port conflicts by killing orphaned processes before starting

export CLAWDBOT_SKIP_USER_SERVICE_CHECK=1

PORT=18789

# Check if something is already holding the port
EXISTING_PID=$(ss -tlnp "sport = :${PORT}" 2>/dev/null | grep -oP 'pid=\K[0-9]+' | head -1)

if [ -n "$EXISTING_PID" ]; then
    # Check if it's us (systemd-managed) or an orphan
    EXISTING_PPID=$(ps -o ppid= -p "$EXISTING_PID" 2>/dev/null | tr -d ' ')
    if [ "$EXISTING_PPID" != "1" ]; then
        echo "Killing orphaned gateway process PID=$EXISTING_PID (PPID=$EXISTING_PPID)"
        kill "$EXISTING_PID" 2>/dev/null
        sleep 2
        # Force kill if still alive
        if kill -0 "$EXISTING_PID" 2>/dev/null; then
            echo "Force killing PID=$EXISTING_PID"
            kill -9 "$EXISTING_PID" 2>/dev/null
            sleep 1
        fi
    else
        echo "Port $PORT held by systemd-managed PID=$EXISTING_PID — stopping"
        exit 1
    fi
fi

exec /usr/bin/clawdbot gateway run --bind 127.0.0.1 "$@"


find /home/ccuser/rateright-growth -type f -name "*.ts" -o -name "*.js" | xargs grep -l "clawdbot\|gateway" 2>/dev/null | head -20

Find TypeScript/JavaScript files related to clawdbot


Now let me search for clawdbot config in the installed package and look for model configuration:


find /usr/lib/node_modules/clawdbot -type f 2>/dev/null | head -30

Find files in clawdbot installation


grep -r "kimi\|moonshot\|subagent\|sub-agent" /home/ccuser/rateright-growth --include="*.ts" --include="*.js" --include="*.json" --include="*.md" 2>/dev/null | head -30

Search for model references in the codebase


/home/ccuser/rateright-growth/CLAUDE.md:- Rivet = single operations brain (runs 24/7, spawns sub-agents)
/home/ccuser/rateright-growth/CLAUDE.md:- Rivet uses sub-agents (DeepSeek) for research/analysis
/home/ccuser/rateright-growth/archive/CC-VPS.md:| **superpowers** | brainstorming, systematic-debugging, test-driven-development, writing-plans, executing-plans, subagent-driven-development, verification-before-completion | Start every task with the right skill |
/home/ccuser/rateright-growth/archive/docs/CLAWDBOT-OPS-CHEATSHEET.md:├── subagents/              # Subagent configs
/home/ccuser/rateright-growth/archive/docs/LESSONS-CLEANED.md:Claude Code (Executor) ← Can spawn sub-agents
/home/ccuser/rateright-growth/archive/docs/LESSONS-CLEANED.md:1. CC maintains ownership - sub-agents assist
/home/ccuser/rateright-growth/archive/docs/LESSONS-CLEANED.md:4. Cost awareness - sub-agents increase tokens
/home/ccuser/rateright-growth/archive/docs/LESSONS.md:- **Coordination:** CC remains primary executor, sub-agents report back
/home/ccuser/rateright-growth/archive/docs/LESSONS.md:- Monitors CC's use of sub-agents via OUTBOX.md
/home/ccuser/rateright-growth/rivet/YOUTUBE-PIPELINE-COMPLETE.md:**Built by:** Rivet (subagent)
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:Rivet is the single operations brain for RateRight. Not a layer in a hierarchy — the whole thing. No Curator bot, no CC VPS worker, no file-based task coordination. Just Rivet, running 24/7, spawning sub-agents when parallelism is needed.
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:| Claude Opus advisor | Rivet can reason on its own. Use Opus via sub-agent when deep thinking is needed. |
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:| CC VPS worker + INBOX/OUTBOX | Fragile file-polling. Replaced by sub-agents (sessions_spawn). |
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:When a task is complex, long-running, or can be parallelized, spawn a sub-agent. Don't try to do everything in one turn.
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:**Key facts** (from [OpenClaw docs: Sub-Agents](https://docs.openclaw.ai/tools/subagents)):
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:- Sub-agents run in their own session (`agent:<agentId>:subagent:<uuid>`)
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:- They cannot spawn further sub-agents (no recursive fan-out)
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:- Max concurrent: 8 (configurable via `agents.defaults.subagents.maxConcurrent`)
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:# Check sub-agents
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:# In Telegram: /subagents list
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:**From the sub-agents documentation** ([docs.openclaw.ai/tools/subagents](https://docs.openclaw.ai/tools/subagents)):
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:- Solo founders running VPS agents report best results with a single brain + sub-agents, not multi-layer hierarchies
/home/ccuser/rateright-growth/rivet/SYSTEM-v2-draft.md:> "If one OpenClaw instance gives you one assistant, running ten instances with specialized configurations gives you a coordinated team." — But for a solo founder, one smart agent with sub-agents is simpler and cheaper than managing multiple persistent agents.
/home/ccuser/rateright-growth/rivet/SYSTEM.md:Rivet is the single operations brain for RateRight. Not a layer in a hierarchy — the whole thing. No Curator bot, no CC VPS worker, no file-based task coordination. Just Rivet, running 24/7, spawning sub-agents when parallelism is needed.
/home/ccuser/rateright-growth/rivet/SYSTEM.md:| Claude Opus advisor | Rivet can reason on its own. Use Opus via sub-agent when deep thinking is needed. |
/home/ccuser/rateright-growth/rivet/SYSTEM.md:| CC VPS worker + INBOX/OUTBOX | Fragile file-polling. Replaced by sub-agents (sessions_spawn). |
/home/ccuser/rateright-growth/rivet/SYSTEM.md:When a task is complex, long-running, or can be parallelized, spawn a sub-agent. Don't try to do everything in one turn.
/home/ccuser/rateright-growth/rivet/SYSTEM.md:**Key facts** (from [OpenClaw docs: Sub-Agents](https://docs.openclaw.ai/tools/subagents)):
/home/ccuser/rateright-growth/rivet/SYSTEM.md:- Sub-agents run in their own session (`agent:<agentId>:subagent:<uuid>`)
/home/ccuser/rateright-growth/rivet/SYSTEM.md:- They cannot spawn further sub-agents (no recursive fan-out)


cat /usr/local/bin/clawdbot-gateway-wrapper | tail -5

Get full clawdbot gateway wrapper command


        exit 1
    fi
fi

exec /usr/bin/clawdbot gateway run --bind 127.0.0.1 "$@"


Let me search for clawdbot configuration files more specifically:


find /usr/lib/node_modules/clawdbot -name "*.json" -o -name "*.config.*" -o -name "config*" 2>/dev/null | head -20

Find config files in clawdbot package


ls -la /usr/lib/node_modules/clawdbot/ | head -30

List main clawdbot directory


total 1640
drwxr-xr-x  11 root root    4096 Jan 27 13:24 .
drwxr-xr-x  14 root root    4096 Feb  8 07:31 ..
-rw-r--r--   1 root root  109934 Jan 27 13:24 CHANGELOG.md
-rw-r--r--   1 root root    1074 Jan 27 13:24 LICENSE
-rw-r--r--   1 root root 1413716 Jan 27 13:24 README-header.png
-rw-r--r--   1 root root   75563 Jan 27 13:24 README.md
drwxr-xr-x   3 root root    4096 Jan 27 13:24 assets
drwxr-xr-x  47 root root    4096 Jan 27 13:24 dist
drwxr-xr-x  25 root root    4096 Jan 27 13:24 docs
drwxr-xr-x  30 root root    4096 Feb  4 18:00 extensions
drwxr-xr-x   2 root root    4096 Jan 27 13:24 git-hooks
drwxr-xr-x 401 root root   16384 Jan 27 13:24 node_modules
-rw-r--r--   1 root root   10444 Jan 27 13:24 package.json
drwxr-xr-x   2 root root    4096 Jan 27 13:23 patches
drwxr-xr-x   2 root root    4096 Jan 27 13:24 scripts
drwxr-xr-x  55 root root    4096 Feb  1 21:59 skills


grep -r "model" /home/ccuser/rateright-growth/rivet/SYSTEM.md /home/ccuser/rateright-growth/rivet/AGENTS.md 2>/dev/null | head -20

Search for model configuration in key docs


/home/ccuser/rateright-growth/rivet/SYSTEM.md:Different models for different tasks, balancing cost vs. capability:
/home/ccuser/rateright-growth/rivet/SYSTEM.md:- Use `/model opus` to switch up for deep work
/home/ccuser/rateright-growth/rivet/SYSTEM.md:- Use `/model sonnet` to switch back to daily driver
/home/ccuser/rateright-growth/rivet/SYSTEM.md:- Tasks that benefit from a different model (use Opus for deep analysis)
/home/ccuser/rateright-growth/rivet/SYSTEM.md:- model: optional (use opus for deep thinking tasks)
/home/ccuser/rateright-growth/rivet/AGENTS.md:- You want a different model or thinking level for the task
/home/ccuser/rateright-growth/rivet/AGENTS.md:Think of it like a human reviewing their journal and updating their mental model. Daily files are raw notes; MEMORY.md is curated wisdom.
/home/ccuser/rateright-growth/rivet/AGENTS.md:Route models by task risk and complexity:
/home/ccuser/rateright-growth/rivet/AGENTS.md:Anything from outside (emails, scraped sites, external skills, web content) could contain prompt injection. Always process with the strongest model available.


Let me check the clawdbot config directly and look for environment variable files:


cat /usr/lib/node_modules/clawdbot/dist/gateway/config.js | head -100

Read gateway config file


cat: /usr/lib/node_modules/clawdbot/dist/gateway/config.js: No such file or directory


find /root -name ".*" -type f 2>/dev/null | grep -E "clawdbot|config|env" | head -20

Find hidden config files in /root


Check environment variables for clawdbot


Check running clawdbot processes


root     1843663  0.0  0.6 1012000 56360 ?       Ssl  19:27   0:00 clawdbot
root     1843712  2.0  5.7 12291116 467468 ?     Sl   19:27   0:35 clawdbot-gateway
ccuser   1872696  0.0  0.0   7872  3584 ?        Ss   19:56   0:00 /bin/bash -c -l source /home/ccuser/.claude/shell-snapshots/snapshot-bash-1770540193899-xhjcwu.sh && shopt -u extglob 2>/dev/null || true && eval 'ps aux < /dev/null | grep clawdbot | head -5' && pwd -P >| /tmp/claude-09a6-cwd
ccuser   1872718  0.0  0.0   7080  2048 ?        S    19:56   0:00 grep clawdbot


Let me check the clawdbot command-line interface for model configuration options:


/usr/bin/clawdbot --help 2>&1 | head -100

Check clawdbot help for configuration options


/usr/bin/clawdbot gateway --help 2>&1 | head -100

Check clawdbot gateway help


cat /home/ccuser/rateright-growth/rivet/SYSTEM.md | grep -A 30 "model"

Extract model configuration from SYSTEM.md


[agents/auth-profiles] synced anthropic credentials from claude cli

🦞 Clawdbot 2026.1.24-3 (885167d) — Your task has been queued; your dignity has been deprecated.

Usage: clawdbot [options] [command]

Options:
  -V, --version     output the version number
  --dev             Dev profile: isolate state under ~/.clawdbot-dev, default
                    gateway port 19001, and shift derived ports (browser/canvas)
  --profile <name>  Use a named profile (isolates
                    CLAWDBOT_STATE_DIR/CLAWDBOT_CONFIG_PATH under
                    ~/.clawdbot-<name>)
  --no-color        Disable ANSI colors
  -h, --help        display help for command

Commands:
  setup             Initialize ~/.clawdbot/clawdbot.json and the agent workspace
  onboard           Interactive wizard to set up the gateway, workspace, and
                    skills
  configure         Interactive prompt to set up credentials, devices, and agent
                    defaults
  config            Config helpers (get/set/unset). Run without subcommand for
                    the wizard.
  doctor            Health checks + quick fixes for the gateway and channels
  dashboard         Open the Control UI with your current token
  reset             Reset local config/state (keeps the CLI installed)
  uninstall         Uninstall the gateway service + local data (CLI remains)
  message           Send messages and channel actions
  memory            Memory search tools
  agent             Run an agent turn via the Gateway (use --local for embedded)
  agents            Manage isolated agents (workspaces + auth + routing)
  acp               Agent Control Protocol tools
  gateway           Gateway control
  daemon            Gateway service (legacy alias)
  logs              Gateway logs
  system            System events, heartbeat, and presence
  models            Model configuration
  approvals         Exec approvals
  nodes             Node commands
  devices           Device pairing + token management
  node              Node control
  sandbox           Sandbox tools
  tui               Terminal UI
  cron              Cron scheduler
  dns               DNS helpers
  docs              Docs helpers
  hooks             Hooks tooling
  webhooks          Webhook helpers
  pairing           Pairing helpers
  plugins           Plugin management
  channels          Channel management
  directory         Directory commands
  security          Security helpers
  skills            Skills management
  update            CLI update helpers
  status            Show channel health and recent session recipients
  health            Fetch health from the running gateway
  sessions          List stored conversation sessions
  browser           Manage clawd's dedicated browser (Chrome/Chromium)
  help              display help for command

Examples:
  clawdbot channels login --verbose
    Link personal WhatsApp Web and show QR + connection logs.
  clawdbot message send --target +15555550123 --message "Hi" --json
    Send via your web session and print JSON result.
  clawdbot gateway --port 18789
    Run the WebSocket Gateway locally.
  clawdbot --dev gateway
    Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.
  clawdbot gateway --force
    Kill anything bound to the default gateway port, then start it.
  clawdbot gateway ...
    Gateway control via WebSocket.
  clawdbot agent --to +15555550123 --message "Run summary" --deliver
    Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.
  clawdbot message send --channel telegram --target @mychat --message "Hi"
    Send via your Telegram bot.

Docs: https://docs.clawd.bot/cli


🦞 Clawdbot 2026.1.24-3 (885167d) — Gateway online—please keep hands, feet, and appendages inside the shell at all times.

Usage: clawdbot gateway [options] [command]

Run the WebSocket Gateway

Options:
  --port <port>              Port for the gateway WebSocket
  --bind <mode>              Bind mode
                             ("loopback"|"lan"|"tailnet"|"auto"|"custom").
                             Defaults to config gateway.bind (or loopback).
  --token <token>            Shared token required in connect.params.auth.token
                             (default: CLAWDBOT_GATEWAY_TOKEN env if set)
  --auth <mode>              Gateway auth mode ("token"|"password")
  --password <password>      Password for auth mode=password
  --tailscale <mode>         Tailscale exposure mode ("off"|"serve"|"funnel")
  --tailscale-reset-on-exit  Reset Tailscale serve/funnel configuration on
                             shutdown (default: false)
  --allow-unconfigured       Allow gateway start without gateway.mode=local in
                             config (default: false)
  --dev                      Create a dev config + workspace if missing (no
                             BOOTSTRAP.md) (default: false)
  --reset                    Reset dev config + credentials + sessions +
                             workspace (requires --dev) (default: false)
  --force                    Kill any existing listener on the target port
                             before starting (default: false)
  --verbose                  Verbose logging to stdout/stderr (default: false)
  --claude-cli-logs          Only show claude-cli logs in the console (includes
                             stdout/stderr) (default: false)
  --ws-log <style>           WebSocket log style ("auto"|"full"|"compact")
                             (default: "auto")
  --compact                  Alias for "--ws-log compact" (default: false)
  --raw-stream               Log raw model stream events to jsonl (default:
                             false)
  --raw-stream-path <path>   Raw stream jsonl path
  -h, --help                 display help for command

Commands:
  run                        Run the WebSocket Gateway (foreground)
  status                     Show gateway service status + probe the Gateway
  install                    Install the Gateway service
                             (launchd/systemd/schtasks)
  uninstall                  Uninstall the Gateway service
                             (launchd/systemd/schtasks)
  start                      Start the Gateway service
                             (launchd/systemd/schtasks)
  stop                       Stop the Gateway service (launchd/systemd/schtasks)
  restart                    Restart the Gateway service
                             (launchd/systemd/schtasks)
  call                       Call a Gateway method
  usage-cost                 Fetch usage cost summary from session logs
  health                     Fetch Gateway health
  probe                      Show gateway reachability + discovery + health +
                             status summary (local + remote)
  discover                   Discover gateways via Bonjour (multicast local. +
                             unicast clawdbot.internal.)

Docs: https://docs.clawd.bot/cli/gateway


Different models for different tasks, balancing cost vs. capability:

| Model | Role | Cost (input/output per M tokens) | When to Use |
|-------|------|----------------------------------|-------------|
| **Claude Sonnet 4.5** | Main agent (daily driver) | $3 / $15 | Default for all main session work |
| **Claude Opus** | Manual switch for deep/technical work | $15 / $75 | Complex reasoning, technical analysis, strategic planning |
| **DeepSeek** | Sub-agent default | $0.27 / $1.10 | Parallel workers, background tasks, research |

**Configuration:**
- Main session defaults to Sonnet 4.5
- Use `/model opus` to switch up for deep work
- Use `/model sonnet` to switch back to daily driver
- Sub-agents automatically use DeepSeek (cheap parallel workers)
- Opus usage should be intentional and justified by task complexity

---

## 3. Heartbeat — Periodic Awareness

**Interval:** 30 minutes
**Active hours:** 04:00–23:00 AEST

The heartbeat is Rivet's pulse. Every 30 minutes, check what needs checking. Batch everything into one turn — cheaper and smarter than 5 separate cron jobs polling independently.

**What heartbeat replaces:**
- ~~5-min health checks~~ → Heartbeat checks system health
- ~~5-min task monitor~~ → No INBOX/OUTBOX to monitor
- ~~15-min CC memory sync~~ → No CC coordination layer
- ~~30-min git sync~~ → Heartbeat triggers git commit/push when state changes
- ~~2-3 hour curator~~ → Heartbeat handles maintenance

**See HEARTBEAT.md for the checklist.** Keep it small (saves tokens).

**Config:**
```json
{
  "agents": {
    "defaults": {
      "heartbeat": {
        "every": "30m",
        "target": "last",
        "activeHours": { "start": "04:00", "end": "23:00" }
--
- Tasks that benefit from a different model (use Opus for deep analysis)

**When NOT to spawn:**
- Quick lookups or simple questions
- Tasks that need the main session's conversational context
- Anything that takes less than a few minutes

**How:**
```
Use sessions_spawn with:
- task: clear description of what to do and what to return
- label: descriptive name (e.g., "competitor-research")
- model: optional (use opus for deep thinking tasks)
- runTimeoutSeconds: set a reasonable limit
```

**Key facts** (from [OpenClaw docs: Sub-Agents](https://docs.openclaw.ai/tools/subagents)):
- Sub-agents run in their own session (`agent:<agentId>:subagent:<uuid>`)
- They get AGENTS.md + TOOLS.md context (not SOUL.md or USER.md)
- They cannot spawn further sub-agents (no recursive fan-out)
- Results are announced back to the requester channel
- Max concurrent: 8 (configurable via `agents.defaults.subagents.maxConcurrent`)

---

## 6. Goals — What Rivet Exists to Do

Not scripts. Goals. Figure out the best way to achieve them.

### Primary Goals
1. **Keep Michael informed without overwhelming him** — Briefs at the right times, alerts only for real issues
2. **Maintain system reliability** — All services healthy, no undetected failures
3. **Advance RateRight operations** — Lead pipeline, market intelligence, competitor awareness
4. **Protect the business** — Security monitoring, cost control, data safety

### Secondary Goals
5. **Reduce Michael's cognitive load** — Batch decisions, provide recommendations not just information
6. **Improve over time** — Learn from mistakes, update processes, get better at predicting needs
7. **Support the dev workflow** — Keep Markus unblocked, track bugs, manage the Work Tracker

### How to Pursue Goals
- **Don't wait for instructions.** See a problem? Fix it or flag it.
- **Batch non-urgent items.** Don't send 5 messages when 1 brief covers it.


Now let me check for the models command to see how models are configured:


Check clawdbot models command help


Check clawdbot config command help


find /root/.clawdbot -type f 2>/dev/null

List all files in /root/.clawdbot


The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.


[Request interrupted by user for tool use]