agent-step-sequencerMulti-step scheduler for in-depth agent requests. Detects when user needs multiple steps, suggests plan and waits for confirmation, persists state, and runs heartbeat-aware flow. Use when requests have 3+ actions, sequential dependencies, output dependencies, or high scope/risk.
Install via ClawdBot CLI:
clawdbot install gostlightai/agent-step-sequencerMulti-step scheduler for in-depth requests. Enables step-based actions with heartbeat integration—survives gateway reset mid-step.
scripts/step-sequencer-check.py immediately (no wait for heartbeat)Critical: If gateway resets mid-step, next heartbeat reads state and resumes correctly.
Agent builds a plan when user approves. During approval, agent asks: Use 2-minute delay between steps? Recommended for rate-limit–sensitive API calls. User chooses; agent sets stepDelayMinutes (0 or 2) in state. Each step has title, instruction, and optionally requiredOutputs (paths relative to workspace that must exist before the step is marked DONE):
{
"plan": {
"steps": {
"step-1": { "title": "Research topic X", "instruction": "Research topic X and produce a concise summary", "requiredOutputs": ["study/summary.md"] },
"step-2": { "title": "Write paper", "instruction": "Using the summary from step 1, write a research paper..." }
}
},
"stepQueue": ["step-1", "step-2"],
"currentStep": 0,
"stepRuns": {},
"stepDelayMinutes": 0,
"status": "IN_PROGRESS"
}
step-sequencer-runner.py): Invokes agent with step instruction, waits for exit, marks DONE/FAILED. Applies stepDelayMinutes. On retry, agent gets troubleshoot prompt.step-sequencer-check.py): If work to do, invokes runner. Handles FAILED → retry (reset PENDING, invoke runner).Do not stop mid-step to ask the user. When executing a step, if something fails (empty fetch, API error, source unavailable):
Do not stop silently. If you cannot complete the step after retry and alternatives: actively prompt the user—post a short message that you hit a snag, what failed, and what you tried (e.g. "Step 2 (research Meteora) failed: CoinMarketCap fetch empty, tried CoinGecko—also empty. Need another source or skip this token."). Then exit non-zero so the runner marks FAILED and the scheduler can retry or add to blockers. Never just stop without telling the user.
Agent must suggest before proceeding. When MULTI_STEP, propose the step plan and wait for confirmation before executing.
MULTI_STEP =
(action_count >= 3)
OR has_sequential_language
OR has_output_dependency
OR high_scope_or_risk
OR user_requests_steps
OR contains_setup_keywords
SINGLE_STEP =
(action_count == 1)
AND NOT has_output_dependency
AND immediate_execution
DECISION =
IF MULTI_STEP THEN suggest_multi_step → wait for confirm → proceed
ELSE single_step
Definitions:
| Criterion | Meaning |
|-----------|---------|
| action_count | Number of distinct actions (file edits, commands, etc.) |
| has_sequential_language | "then", "after", "first...then", "step 1" |
| has_output_dependency | Step B needs output from step A |
| high_scope_or_risk | Many files, destructive ops, migration |
| user_requests_steps | "step by step", "break this down", "one at a time" |
| contains_setup_keywords | "set up", "migrate", "implement from scratch", "full X", "complete Y" |
See references/state-schema.md. Key fields:
plan.steps: step definitions (title, instruction, optional requiredOutputs)stepQueue, currentStep, stepRunsstepDelayMinutes: 0 = no delay; 2 = 2 min between stepsblockers, lastHeartbeatIso, artifactsHeartbeat invokes scripts/step-sequencer-check.py. Agent also invokes it right after persisting state.
Runner invokes agent (configurable via STEP_AGENT_CMD). Runner applies stepDelayMinutes.
flowchart TD
A[Heartbeat or Agent] --> B[step-sequencer-check.py]
B --> C{Work to do?}
C -->|No| D[Do nothing]
C -->|Yes| E[Invoke runner]
E --> F[step-sequencer-runner.py]
F --> G[Invoke agent with instruction]
G --> H{Agent exit}
H -->|Success| I[Mark DONE]
H -->|Fail| J[Mark FAILED, invoke check script]
I --> K[Check advances or done]
J --> B
flowchart TD
U[User Request] --> V{Complex enough?}
V -->|No| W[Execute directly]
V -->|Yes| X[Propose step plan]
X --> Y[User confirms]
Y --> Z[Persist state.json with plan]
Z --> AA[Agent invokes step-sequencer-check]
AA --> AB[Runner invokes agent - step 1]
AB --> AC[Heartbeat also invokes on schedule]
| Env | Description |
|-----|-------------|
| STEP_AGENT_CMD | Required. Command to invoke agent (space-separated). Prompt appended as last arg. Example: openclaw agent --message |
| STEP_RUNNER | Path to step-sequencer-runner.py (optional) |
| STEP_MAX_RETRIES | Max retries on FAILED before adding to blockers. Default: 3 |
OpenClaw: Wire STEP_AGENT_CMD to OpenClaw's agent invocation (e.g. openclaw agent --message).
Security: Set STEP_AGENT_CMD only to your trusted agent binary. Do not use shell interpreters (bash, sh, etc.) or -c/-e—the runner rejects these to prevent command injection. The instruction from state.json is passed as a single argument; it is never executed by a shell.
When all steps complete:
clawhub install agent-step-sequencer
Manual copy:
cp -r agent-step-sequencer ~/.openclaw/skills/agent-step-sequencer
Heartbeat integration — Add this to your heartbeat (or have the agent add it):
# Agent Step Sequencer check (add to heartbeat cycle)
python3 ~/.openclaw/skills/agent-step-sequencer/scripts/step-sequencer-check.py ~/.openclaw/workspace/state.json
Or if skill is in workspace: python3 ~/.openclaw/workspace/skills/agent-step-sequencer/scripts/step-sequencer-check.py ~/.openclaw/workspace/state.json
Set STEP_AGENT_CMD to your agent invocation before running. Agent should invoke the check script immediately after persisting state.
Generated Mar 1, 2026
A financial analyst needs a comprehensive report on emerging tech sectors, requiring sequential steps: gather data from multiple APIs, analyze trends, and compile findings into a structured document. The sequencer ensures each step completes with required outputs before proceeding, handling API rate limits with delays.
A development team is migrating a legacy application to a new framework, involving steps like code analysis, refactoring, testing, and deployment. The sequencer manages dependencies between steps, such as requiring test results before deployment, and recovers from failures like build errors autonomously.
A marketing agency produces multi-part campaigns, where steps include topic research, drafting copy, designing visuals, and scheduling posts. The sequencer coordinates these steps with output dependencies, ensuring visuals are ready before scheduling, and handles retries if content sources are unavailable.
A researcher conducts a study requiring steps like literature review, data collection, analysis, and paper writing. The sequencer enforces sequential order, with steps marked done only when required files exist, and prompts the user if data sources fail after retries.
An entrepreneur sets up an online store with steps for product catalog import, payment gateway integration, and SEO optimization. The sequencer handles high-scope tasks by breaking them down, applying delays for API calls, and resuming after interruptions like gateway resets.
Offer the sequencer as a cloud-based service for businesses needing automated multi-step workflows, charging monthly fees based on usage tiers. Revenue comes from subscriptions, with upsells for advanced features like custom integrations and priority support.
Provide the sequencer as part of consulting packages for process automation, helping clients implement it in their existing systems. Revenue is generated through project-based fees and ongoing maintenance contracts for customization and troubleshooting.
License the sequencer technology to large enterprises for internal use, such as in R&D or IT departments, with one-time licensing fees and annual support renewals. Revenue includes upfront payments and recurring support charges for updates and training.
💬 Integration Tip
Ensure the STEP_AGENT_CMD environment variable is correctly set to invoke the agent, and test the heartbeat flow to guarantee seamless recovery from interruptions like gateway resets.
Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Clau...
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Search and analyze your own session logs (older/parent conversations) using jq.
Typed knowledge graph for structured agent memory and composable skills. Use when creating/querying entities (Person, Project, Task, Event, Document), linking related objects, enforcing constraints, planning multi-step actions as graph transformations, or when skills need to share state. Trigger on "remember", "what do I know about", "link X to Y", "show dependencies", entity CRUD, or cross-skill data access.
Ultimate AI agent memory system for Cursor, Claude, ChatGPT & Copilot. WAL protocol + vector search + git-notes + cloud backup. Never lose context again. Vibe-coding ready.
Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection