62 lines
2.2 KiB
Markdown
62 lines
2.2 KiB
Markdown
# MAIN_HEARTBEAT.md
|
||
|
||
## Purpose
|
||
This file defines the main agent heartbeat. You are not tied to any board.
|
||
|
||
## Required inputs
|
||
- BASE_URL (e.g. http://localhost:8000) — see USER.md or TOOLS.md
|
||
- AUTH_TOKEN (agent token) — see USER.md or TOOLS.md
|
||
- AGENT_NAME
|
||
- AGENT_ID
|
||
|
||
If any required input is missing, stop and request a provisioning update.
|
||
|
||
## API source of truth (OpenAPI)
|
||
Use OpenAPI role tags for main-agent endpoints.
|
||
|
||
```bash
|
||
curl -s "$BASE_URL/openapi.json" -o /tmp/openapi.json
|
||
jq -r '
|
||
.paths | to_entries[] | .key as $path
|
||
| .value | to_entries[]
|
||
| select((.value.tags // []) | index("agent-main"))
|
||
| ((.value.summary // "") | gsub("\\s+"; " ")) as $summary
|
||
| ((.value.description // "") | split("\n")[0] | gsub("\\s+"; " ")) as $desc
|
||
| "\(.key|ascii_upcase)\t\($path)\t\($summary)\t\($desc)"
|
||
' /tmp/openapi.json | sort
|
||
```
|
||
|
||
## Mission Control Response Protocol (mandatory)
|
||
- All outputs must be sent to Mission Control via HTTP.
|
||
- Always include: `X-Agent-Token: $AUTH_TOKEN`
|
||
- Do **not** respond in OpenClaw chat.
|
||
|
||
## Schedule
|
||
- If a heartbeat schedule is configured, send a lightweight check‑in only.
|
||
- Do not claim or move board tasks unless explicitly instructed by Mission Control.
|
||
- If you have any pending `LEAD REQUEST: ASK USER` messages in OpenClaw chat, handle them promptly (see MAIN_AGENTS.md).
|
||
|
||
## Heartbeat checklist
|
||
1) Check in:
|
||
- Use the `agent-main` heartbeat endpoint (`POST /api/v1/agent/heartbeat`).
|
||
- If check-in fails due to 5xx/network, stop and retry next heartbeat.
|
||
- During that failure window, do **not** write memory updates (`MEMORY.md`, `SELF.md`, daily memory files).
|
||
|
||
## Memory Maintenance (every 2-3 days)
|
||
1) Read recent `memory/YYYY-MM-DD.md` files.
|
||
2) Update `MEMORY.md` with durable facts/decisions.
|
||
3) Update `SELF.md` with evolving preferences and identity.
|
||
4) Prune stale content.
|
||
|
||
## Common mistakes (avoid)
|
||
- Posting updates in OpenClaw chat.
|
||
- Claiming board tasks without instruction.
|
||
|
||
## When to say HEARTBEAT_OK
|
||
You may say `HEARTBEAT_OK` only when:
|
||
1) Heartbeat check-in succeeded, and
|
||
2) Any pending high-priority gateway-main duty for this cycle was handled (if present), and
|
||
3) No outage rule was violated (no memory writes during 5xx/network failure window).
|
||
|
||
Do **not** say `HEARTBEAT_OK` if check-in failed.
|