Install
openclaw skills install openclaw-feishu-quota-guardUse when a user wants OpenClaw itself to diagnose or fix Feishu/Lark quota burn caused by heartbeats, health checks, webhook probes, or overly expensive background runs. Start by running the bundled run-once fixer, then only do manual follow-up if custom gateway or webhook code is detected.
openclaw skills install openclaw-feishu-quota-guardUse this skill when OpenClaw is connected to Feishu/Lark and a user reports that free quota or paid API budget is draining unexpectedly.
This skill is based on a short Bilibili video about OpenClaw + Feishu quota burn and cross-checked against current OpenClaw docs. The likely failure mode is not "chat usage" itself, but background traffic:
Read references/source-notes.md only if you need the exact source-backed assumptions.
bash scripts/run-once.sh --dry-runpowershell -ExecutionPolicy Bypass -File scripts/run-once.ps1 --dry-runpython scripts/apply_feishu_quota_fix.py --dry-run--dry-run.The bundled fixer makes only safe automatic changes to standard OpenClaw config:
agents.defaults.heartbeat.every = "1h"agents.defaults.heartbeat.lightContext = trueagents.defaults.heartbeat.isolatedSession = truetarget is missing, set target = "none"If you want a full stop instead of throttling, run:
bash scripts/run-once.sh --mode disable
On Windows:
powershell -ExecutionPolicy Bypass -File scripts/run-once.ps1 --mode disable
That sets:
agents.defaults.heartbeat.every = "0m"Do not patch blindly.
Useful search terms:
channels.feishu@openclaw/feishuheartbeatHEARTBEAT.mdconnectionModewebhookverificationTokenhealthgatewayUse this path for the official/current plugin, or anytime logs show scheduled heartbeat runs causing the spend.
Focus on:
~/.openclaw/openclaw.json or the workspace config the user actually runsagents.defaults.heartbeatagents.list[].heartbeatHEARTBEAT.mdPreferred order of fixes:
HEARTBEAT.md skips the heartbeat run and saves API calls.every from a short interval to 1h or longer.lightContext: true, isolatedSession: true when appropriate, and avoid sending heartbeat output anywhere unless the user really wants it.HEARTBEAT.md tiny.
A bloated checklist wastes tokens every run.When editing configs manually, prefer minimal changes like:
{
"agents": {
"defaults": {
"heartbeat": {
"every": "1h",
"lightContext": true,
"target": "none"
}
}
}
}
Only add a heartbeat-specific local model if the config format in that install already supports it.
Use this path for older installs, custom bridges, or any codebase where /health, /ready, or webhook verification ends up invoking OpenClaw chat/model logic.
Goal: liveness checks must return a cheap static success unless the user explicitly wants an end-to-end synthetic test.
Preferred order of fixes:
/health should usually return a static 200 OK plus lightweight process info.For route handlers, acceptable outcomes are:
okAvoid:
After editing:
/health still gets hit, but no model invocation followsIf the user is on Docker, check container logs rather than assuming host paths.