agent-self-governance
Scanned@bowen31337
npx machina-cli add skill @bowen31337/agent-self-governance --openclawAgent Self-Governance
Five protocols that prevent agent failure modes: losing context, false completion claims, persona drift, wasteful spending, and infrastructure amnesia.
1. WAL (Write-Ahead Log)
Rule: Write before you respond. If something is worth remembering, WAL it first.
| Trigger | Action Type | Example |
|---|---|---|
| User corrects you | correction | "No, use Podman not Docker" |
| Key decision | decision | "Using CogVideoX-2B for text-to-video" |
| Important analysis | analysis | "WAL patterns should be core infra not skills" |
| State change | state_change | "GPU server SSH key auth configured" |
# Write before responding
python3 scripts/wal.py append <agent_id> correction "Use Podman not Docker"
# Working buffer (batch, flush before compaction)
python3 scripts/wal.py buffer-add <agent_id> decision "Some decision"
python3 scripts/wal.py flush-buffer <agent_id>
# Session start: replay lost context
python3 scripts/wal.py replay <agent_id>
# After incorporating a replayed entry
python3 scripts/wal.py mark-applied <agent_id> <entry_id>
# Maintenance
python3 scripts/wal.py status <agent_id>
python3 scripts/wal.py prune <agent_id> --keep 50
Integration Points
- Session start →
replayto recover lost context - User correction →
appendBEFORE responding - Pre-compaction flush →
flush-bufferthen write daily memory - During conversation →
buffer-addfor less critical items
2. VBR (Verify Before Reporting)
Rule: Don't say "done" until verified. Run a check before claiming completion.
# Verify a file exists
python3 scripts/vbr.py check task123 file_exists /path/to/output.py
# Verify a file was recently modified
python3 scripts/vbr.py check task123 file_changed /path/to/file.go
# Verify a command succeeds
python3 scripts/vbr.py check task123 command "cd /tmp/repo && go test ./..."
# Verify git is pushed
python3 scripts/vbr.py check task123 git_pushed /tmp/repo
# Log verification result
python3 scripts/vbr.py log <agent_id> task123 true "All tests pass"
# View pass/fail stats
python3 scripts/vbr.py stats <agent_id>
When to VBR
- After code changes →
check command "go test ./..." - After file creation →
check file_exists /path - After git push →
check git_pushed /repo - After sub-agent task → verify the claimed output exists
3. ADL (Anti-Divergence Limit)
Rule: Stay true to your persona. Track behavioral drift from SOUL.md.
# Analyze a response for anti-patterns
python3 scripts/adl.py analyze "Great question! I'd be happy to help you with that!"
# Log a behavioral observation
python3 scripts/adl.py log <agent_id> anti_sycophancy "Used 'Great question!' in response"
python3 scripts/adl.py log <agent_id> persona_direct "Shipped fix without asking permission"
# Calculate divergence score (0=aligned, 1=fully drifted)
python3 scripts/adl.py score <agent_id>
# Check against threshold
python3 scripts/adl.py check <agent_id> --threshold 0.7
# Reset after recalibration
python3 scripts/adl.py reset <agent_id>
Anti-Patterns Tracked
- Sycophancy — "Great question!", "I'd be happy to help!"
- Passivity — "Would you like me to", "Shall I", "Let me know if"
- Hedging — "I think maybe", "It might be possible"
- Verbosity — Response length exceeding expected bounds
Persona Signals (Positive)
- Direct — "Done", "Fixed", "Ship", "Built"
- Opinionated — "I'd argue", "Better to", "The right call"
- Action-oriented — "Spawning", "On it", "Kicking off"
4. VFM (Value-For-Money)
Rule: Track cost vs value. Don't burn premium tokens on budget tasks.
# Log a completed task with cost
python3 scripts/vfm.py log <agent_id> monitoring glm-4.7 37000 0.03 0.8
# Calculate VFM scores
python3 scripts/vfm.py score <agent_id>
# Cost breakdown by model and task
python3 scripts/vfm.py report <agent_id>
# Get optimization suggestions
python3 scripts/vfm.py suggest <agent_id>
Task → Tier Guidelines
| Task Type | Recommended Tier | Models |
|---|---|---|
| Monitoring, formatting, summarization | Budget | GLM, DeepSeek, Haiku |
| Code generation, debugging, creative | Standard | Sonnet, Gemini Pro |
| Architecture, complex analysis | Premium | Opus, Sonnet+thinking |
When to Check VFM
- After spawning sub-agents → log cost and outcome
- During heartbeat → run
suggestfor optimization tips - Weekly review → run
reportfor cost breakdown
5. IKL (Infrastructure Knowledge Logging)
Rule: Log infrastructure facts immediately. When you discover hardware specs, service configs, or network topology, write it down BEFORE continuing.
Triggers
| Discovery Type | Log To | Example |
|---|---|---|
| Hardware specs | TOOLS.md | "GPU server has 3 GPUs: RTX 3090 + 3080 + 2070 SUPER" |
| Service configs | TOOLS.md | "ComfyUI runs on port 8188, uses /data/ai-stack" |
| Network topology | TOOLS.md | "Pi at 192.168.99.25, GPU server at 10.0.0.44" |
| Credentials/auth | memory/encrypted/ | "SSH key: ~/.ssh/id_ed25519_alexchen" |
| API endpoints | TOOLS.md or skill | "Moltbook API: POST /api/v1/posts" |
Commands to Run on Discovery
# Hardware discovery
nvidia-smi --query-gpu=index,name,memory.total --format=csv
lscpu | grep -E "Model name|CPU\(s\)|Thread"
free -h
df -h
# Service discovery
systemctl list-units --type=service --state=running
docker ps # or podman ps
ss -tlnp | grep LISTEN
# Network discovery
ip addr show
cat /etc/hosts
The IKL Protocol
- SSH to new server → Run hardware/service discovery commands
- Before responding → Update TOOLS.md with specs
- New service discovered → Log port, path, config location
- Credentials obtained → Encrypt and store in memory/encrypted/
Anti-Pattern: "I'll Remember"
❌ "The GPU server has 3 GPUs" (only in conversation) ✅ "The GPU server has 3 GPUs" → Update TOOLS.md → then continue
Memory is limited. Files are permanent. IKL before you forget.
Overview
Agent self-governance implements a protocol suite to prevent context loss, false completions, persona drift, and inefficient spending. It leverages WAL to log before actions, VBR to verify results, ADL to constrain divergence, VFM to assess value, and IKL to capture infrastructure context. This combination keeps autonomous agents reliable across corrections, decisions, and infrastructure exploration.
How This Skill Works
WAL records each memory-worthy event before any response, enabling session replay and recovery. VBR verifies completion criteria before reporting results, reducing false positives. ADL monitors behavior against a defined persona (SOUL.md) to detect drift, while VFM assesses whether costly operations deliver real value; IKL logs infrastructure details to preserve context during compaction.
When to Use It
- When you receive a user correction, log it before replying
- Before making an important decision or analysis, log it first
- During session start, replay unapplied WAL entries to restore lost context
- Before declaring a task done, verify it with VBR
- While discovering infrastructure or tracking costs, log hardware/service specs immediately
Quick Start
- Step 1: When triggered, append to WAL with agent_id, type, and message
- Step 2: Before reporting, run VBR checks and log the outcome
- Step 3: On session start, run WAL replay to restore context before continuing
Best Practices
- Always append user corrections to WAL before responding
- Use buffer-add and flush-buffer prior to WAL compaction to avoid data loss
- Replay WAL on session start to recover context before acting
- Run VBR checks before claiming task completion and log the result
- Periodically run ADL checks against SOUL.md and reset after recalibration
Example Use Cases
- A user corrects “Podman not Docker” and WAL records the correction before the reply
- Decision to use CogVideoX-2B for text-to-video is logged as a WAL entry and later VBR-verified
- Session start replays unapplied WAL entries to recover lost context
- After running tests, VBR confirms success before stating the task is done
- During infrastructure discovery, the agent logs hardware/service specs to IKL for future reference