The dispatcher IS the supervisor. When you dispatch a task, you own the outcome.
YOU dispatch → YOU monitor → YOU verify → YOU report
If the subagent fails, YOU are responsible for catching it.
If you don't verify, YOU are responsible for the bad output.
PREPARE ──► DISPATCH ──► MONITOR ──► VERIFY ──► REPORT
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
Define Lock in Active Evidence To human
clearly commitment checking required accountable
□ TASK DEFINED
Goal (one sentence): _______________________________
Requirements (list ALL): _______________________________
Deliverables (specific files): _______________________________
□ TIME SET
Budget: _____ minutes
Check interval: _____ minutes (rule: budget/5, min 3 min)
□ VERIFICATION PLANNED
How to check output exists: _______________________________
How to verify correctness: _______________________________
□ RED FLAGS DEFINED
What "going wrong" looks like: _______________________________
| Condition | Decision |
|---|---|
| ----------- | ---------- |
| Task is trivial (< 5 min) | Do it yourself |
| Task requires judgment you don't have | Ask human first |
| Task has clear requirements and deliverables | ✓ Dispatch with supervision |
TASK: [One sentence - what success looks like]
REQUIREMENTS (complete ALL):
1. [requirement 1]
2. [requirement 2]
3. [requirement 3]
DELIVERABLES:
- [file 1] - [expected content]
- [file 2] - [expected content]
TIME: [X] minutes
─── BEFORE YOU START ───
Reply to confirm:
1. What is the goal? (your words)
2. What steps will you take?
3. How will you know you're done?
Do NOT start until you confirm.
// Agent tool returns: agentId: 'abc123'
// SAVE THIS - you need it for SendMessage
const agentId = 'abc123'; // Keep track of this
❌ WRONG: Dispatch → Wait → Check at end
✓ RIGHT: Dispatch → Active monitor → Intervene early
# Check if output files exist
ls -la [expected output directory]
# Check file sizes (should be > 0)
wc -l [expected files]
# Check modification times
find . -name "*.md" -mmin -5 # Files modified in last 5 min
If no output after 1 check interval → INTERVENE NOW
// Use SendMessage to check progress
SendMessage({
to: agentId,
message: `
📊 PROGRESS CHECK
Report NOW:
1. What have you completed? (specific files/lines)
2. What are you doing right now?
3. Any blockers?
Reply in under 30 seconds.
`
});
Time 0:00 - Dispatch
Time 3:00 - First check (output files exist?)
Time 6:00 - Second check (progress visible?)
Time 9:00 - Third check (near completion?)
Time 12:00 - Final verification
If any check fails → intervene immediately
| Check Result | What It Means | Your Action |
|---|---|---|
| -------------- | --------------- | ------------- |
| Output files exist, have content | On track | Continue monitoring |
| No output files after 2 intervals | Not started or stuck | SendMessage NOW |
| Output files empty | Fake work or error | SendMessage NOW |
| Subagent silent > 2x interval | May have abandoned | Escalate to human |
| Signal | Probability | Immediate Action |
|---|---|---|
| -------- | ------------- | ------------------ |
| No file changes in [interval] | 80% stuck | Check now |
| Subagent asks unrelated questions | 70% distracted | Redirect |
| Subagent says "almost done" but no files | 90% fake completion | Demand evidence |
| Time > 1.5x budget with no output | 95% failed | Intervene or take over |
┌─────────────────────────────────────────────────────────────┐
│ INTERVENTION DECISION │
├─────────────────────────────────────────────────────────────┤
│ │
│ CHECK FAILED? │
│ │ │
│ ├── No output at all ──────────────► Level 1: Probe │
│ │ "What are you doing?"│
│ │ │
│ ├── Wrong direction ───────────────► Level 2: Redirect │
│ │ "Stop X, do Y" │
│ │ │
│ ├── No response to probe ──────────► Level 3: Takeover│
│ │ "I'm handling it" │
│ │ │
│ └── Repeated failures ─────────────► Escalate to human│
│ "This agent can't..."│
│ │
└─────────────────────────────────────────────────────────────┘
📊 STATUS CHECK
I don't see any output files yet.
Report in 30 seconds:
1. What exactly have you done? (file names, not descriptions)
2. What are you doing right now? (specific action)
3. When will I see output?
Be specific. "Working on it" is not an answer.
⚠️ CORRECTION REQUIRED
Issue: [specific problem]
STOP: [wrong activity]
DO: [correct activity]
You have [X] minutes to show progress.
Do not explain. Execute.
🔴 TAKING OVER
This task is not progressing.
I will complete it myself.
You: Stop everything. Provide list of what you actually completed (if anything).
This is recorded.
NEVER accept "I'm done" without evidence.
□ EVIDENCE CHECK
- Show me the file: [read the actual file]
- Show me the test output: [run the tests]
- Show me it works: [demonstrate functionality]
□ REQUIREMENTS CHECK
| Req | Done? | Evidence |
|-----|-------|----------|
| 1 | ✓/✗ | [proof] |
| 2 | ✓/✗ | [proof] |
| 3 | ✓/✗ | [proof] |
□ QUALITY CHECK
- Is output non-empty?
- Does it actually work?
- Are edge cases handled?
# File exists and has content?
ls -la [file] && wc -l [file]
# Code has actual implementation?
grep -E "(function|class|def |export )" [file]
# Tests pass?
npm test 2>&1 | tail -20
# Recent changes?
git status && git diff
| Claim | Reality | How to Catch |
|---|---|---|
| ------- | --------- | --------------- |
| "Created the file" | File is empty | wc -l file |
| "Tests pass" | Tests don't exist | Run tests yourself |
| "Feature works" | Only happy path | Test edge cases |
| "All requirements done" | Some skipped | Check each one |
📋 TASK REPORT
**Task:** [name]
**Status:** ✓ COMPLETE / ⚠ ISSUES / ✗ FAILED
**Time:** [actual] / [budget] minutes
**Verification:**
- Output exists: [yes/no + evidence]
- Tests pass: [yes/no + output]
- All requirements met: [yes/no + checklist]
**Evidence:**
- Files: [list with sizes]
- Key content: [paste relevant parts]
**Issues:** [if any]
**Next steps:** [if needed]
🚨 ESCALATE when:
- Subagent completely failed after intervention
- Technical decision needed beyond your authority
- Output quality unacceptable despite verification
- Time significantly over budget with no end in sight
- Subagent behavior concerning (ignoring all instructions)
What happens: Subagent confirms understanding, then does nothing.
Detection: No output files after 1 interval.
Fix:
"I see no output. What have you actually done?
Show me a file you created or edited in the last [X] minutes."
What happens: Subagent encounters error, doesn't report, just stops.
Detection: No activity for 2+ intervals.
Fix:
"Report your status immediately.
If you hit an error, describe it exactly.
If you're stuck, say what you're stuck on."
What happens: Subagent claims done, output is empty/wrong.
Detection: Output files don't match requirements.
Fix:
"Output verification failed:
- Requirement: [X]
- What I see: [Y]
This is not complete. Fix it or explain exactly why you cannot."
What happens: Subagent works on something else, ignores original task.
Detection: Output unrelated to requirements.
Fix:
"Stop. You are working on [X] but task requires [Y].
Which part of the original task are you addressing?
If none, return to the original requirements immediately."
| Task Type | Budget | Check Interval |
|---|---|---|
| ----------- | -------- | ---------------- |
| Quick (< 10 lines) | 5 min | Check at end only |
| Simple function | 10 min | Every 3 min |
| Feature implementation | 30 min | Every 5 min |
| Complex multi-file | 60+ min | Every 10 min + milestones |
□ No output after 1 interval → SendMessage probe
□ "Almost done" with no files → Demand evidence NOW
□ Silent for 2 intervals → Assume failure, intervene
□ Unrelated questions → Redirect to task
□ Time > 1.5x budget → Escalate or take over
1. NEVER wait passively - actively check
2. NEVER accept words as proof - verify files
3. NEVER let "basically done" slide - demand specifics
4. NEVER skip verification - your reputation is on the line
5. NEVER report to human without evidence - they trust you
# In openclaw, load this skill
/load supervising-agents
# Or set as default skill
export CLAW_SKILLS=supervising-agents
// 1. PREPARE
const task = {
goal: "Create README.md with project overview",
requirements: ["Project name", "Installation steps", "Usage example"],
deliverables: ["README.md (min 50 lines)"],
budget: 10, // minutes
interval: 3 // minutes
};
// 2. DISPATCH with commitment lock
const result = await Agent({
description: `Supervising: ${task.goal}`,
prompt: buildPrompt(task)
});
// 3. MONITOR - check every interval
for (let i = 0; i < task.budget / task.interval; i++) {
await sleep(task.interval * 60000);
const output = checkOutput(task.deliverables);
if (!output.exists) {
await SendMessage(result.agentId, "Progress check: show me what you've created");
}
}
// 4. VERIFY - don't trust, verify
const file = await Read("README.md");
if (file.lines < 50) {
// Reject, demand more
}
// 5. REPORT to human
You dispatch → You own the outcome.
The subagent is a tool, not a trusted partner. Your job is to:
Most common failure: Passive waiting. Fix: Check output files early and often.
Research foundation: Persuasion techniques increase compliance 33% → 72% (Meincke et al., 2025, N=28,000).
共 1 个版本