Bounded Agent Loop
Purpose
Run an agent task as a finite feedback loop with an explicit stop, not open-ended autonomy. Each iteration executes a bounded Observe → Choose → Act → Verify → Record → Repeat-or-stop cycle and exits into a named terminal state instead of drifting until "it looks good."
Frameworks & Standards
| Item |
Value |
| Framework ID |
bounded-agent-loop |
| Category |
Operational |
| Version |
1.0.0 |
| Owner |
Cybernetics / control theory (Wiener) — operationalized for agentic loops |
| Maturity |
Emerging (2026) — codified into Maxim's loops skill v1.3.3 |
| Primary References |
Explicit stopping conditions; named terminal states |
Prompt Template
You are applying the Bounded Agent Loop framework.
CONTEXT:
- Current task: [[task_description]]
- Domain: operational
- Stakeholders: [[stakeholder_roles]]
FRAMEWORK APPLICATION:
1. **Define the cycle**: Frame the work as Observe → Choose → Act → Verify → Record → Repeat-or-stop.
2. **Set the stopping condition**: Pick a rubric, threshold, benchmark, reviewer decision, or finite scenario set — never "until it looks good"; no invented time/cost budgets.
3. **Run bounded iterations**: Each pass acts once, verifies, and records the result.
4. **Exit honestly**: Name the terminal state on exit — one of success · clean no-op · blocked · approval-required · exhausted · stagnated.
OUTPUT STRUCTURE:
- Loop Definition: The cycle and the explicit stopping condition
- Iterations: What each pass observed, chose, acted on, and verified
- Terminal State: The named exit condition and its evidence
- Limitations: Any constraints or assumptions in the application
QUALITY CHECKS:
□ A concrete stopping condition was defined before the loop ran
□ No time/cost budget was invented
□ The exit used one of the six named terminal states
□ Ethical considerations have been evaluated
Core Principles
- The cycle: Every iteration runs Observe → Choose → Act → Verify → Record → Repeat-or-stop — a bounded feedback cycle, not open-ended autonomy.
- Explicit stopping condition: A rubric, threshold, benchmark, reviewer decision, or finite scenario set — never "until it looks good"; no invented time/cost budgets.
- Named terminal states: The loop exits into exactly one of
success · clean no-op · blocked · approval-required · exhausted · stagnated, named honestly.
- Documentation: Record each iteration and the terminal state that ended the loop.
Applications & Use Cases
| Use Case |
Application |
Expected Outcome |
| Loop composition (Planner) |
Composes the loop + enforces the stop |
Finite, auditable task execution |
| Per-iteration act (Implementer) |
Executes the act step of each iteration |
Incremental, verifiable progress |
| Coverage / quality streaks (Tester) |
Coverage / quality-streak loops |
Bounded testing to a defined threshold |
| Verification checkpoint (Reviewer) |
Per-iteration verification checkpoint |
Each pass validated before repeat-or-stop |
Reference Materials
Usage Guidelines
- Start with context: Define the task and the stopping condition before the first iteration.
- Adapt, don't adopt: Choose the stopping-condition type (rubric/threshold/benchmark/reviewer/scenario set) that fits the task.
- Document decisions: Record what each iteration did and why the loop stopped.
- Review outcomes: Confirm the terminal state was named honestly, not forced to
success.
- Share learnings: Contribute loop patterns back to the
loops skill knowledge base.
Collaboration Protocol
- Apply independently unless a task explicitly requires another skill or framework
- Use structured handoff format: [Context] -> [Framework Applied] -> [Open Questions] -> [Next Action]
Ethical Guidelines
- ALWAYS name the true terminal state — never report
blocked or exhausted as success
- NEVER invent a time or cost budget to justify stopping
- ALWAYS surface
approval-required when a human decision is owed
Success Metrics
- Clarity: The stopping condition is explicit and testable before the loop runs
- Consistency: Similar tasks use similar loop compositions
- Stakeholder Alignment: Terminal-state vocabulary improves cross-functional understanding
- Outcome Quality: Loops exit on real conditions, not vibes
- Learning: Loop patterns generate reusable stopping conditions
Related Skills
loops — the Maxim skill this framework was codified into (v1.3.3)
orchestrator — composes bounded loops into autonomous workflows
Testing Strategy
- Validate that a concrete stopping condition existed before the loop ran
- Review one real example and one edge case (e.g., a
stagnated exit) before adopting the output
- Confirm the terminal state matches the evidence
- Document adjustments made when the framework needed adaptation for context
Copyright (c) 2026 iSystematic Inc. Maxim is a product of iSystematic Inc.
SPDX-License-Identifier: BSL-1.1 (Apache-2.0 after 4 years)
See LICENSE at repo root. Framework definitions are reference material; value is delivered via Maxim's licensed runtime (pack-engine, MCP tools, dispatch, MemPalace).
1---2name: bounded-agent-loop3description: Bounded Agent Loop4---56# Bounded Agent Loop78## Purpose9Run an agent task as a finite feedback loop with an explicit stop, not open-ended autonomy. Each iteration executes a bounded Observe → Choose → Act → Verify → Record → Repeat-or-stop cycle and exits into a named terminal state instead of drifting until "it looks good."1011## Frameworks & Standards12| Item | Value |13|------|-------|14| Framework ID | `bounded-agent-loop` |15| Category | Operational |16| Version | 1.0.0 |17| Owner | Cybernetics / control theory (Wiener) — operationalized for agentic loops |18| Maturity | Emerging (2026) — codified into Maxim's `loops` skill v1.3.3 |19| Primary References | Explicit stopping conditions; named terminal states |2021## Prompt Template22```23You are applying the Bounded Agent Loop framework.2425CONTEXT:26- Current task: [[task_description]]27- Domain: operational28- Stakeholders: [[stakeholder_roles]]2930FRAMEWORK APPLICATION:311. **Define the cycle**: Frame the work as Observe → Choose → Act → Verify → Record → Repeat-or-stop.322. **Set the stopping condition**: Pick a rubric, threshold, benchmark, reviewer decision, or finite scenario set — never "until it looks good"; no invented time/cost budgets.333. **Run bounded iterations**: Each pass acts once, verifies, and records the result.344. **Exit honestly**: Name the terminal state on exit — one of success · clean no-op · blocked · approval-required · exhausted · stagnated.3536OUTPUT STRUCTURE:37- Loop Definition: The cycle and the explicit stopping condition38- Iterations: What each pass observed, chose, acted on, and verified39- Terminal State: The named exit condition and its evidence40- Limitations: Any constraints or assumptions in the application4142QUALITY CHECKS:43□ A concrete stopping condition was defined before the loop ran44□ No time/cost budget was invented45□ The exit used one of the six named terminal states46□ Ethical considerations have been evaluated47```4849## Core Principles50- **The cycle**: Every iteration runs Observe → Choose → Act → Verify → Record → Repeat-or-stop — a bounded feedback cycle, not open-ended autonomy.51- **Explicit stopping condition**: A rubric, threshold, benchmark, reviewer decision, or finite scenario set — never "until it looks good"; no invented time/cost budgets.52- **Named terminal states**: The loop exits into exactly one of `success` · `clean no-op` · `blocked` · `approval-required` · `exhausted` · `stagnated`, named honestly.53- **Documentation**: Record each iteration and the terminal state that ended the loop.5455## Applications & Use Cases56| Use Case | Application | Expected Outcome |57|----------|-------------|----------------|58| Loop composition (Planner) | Composes the loop + enforces the stop | Finite, auditable task execution |59| Per-iteration act (Implementer) | Executes the act step of each iteration | Incremental, verifiable progress |60| Coverage / quality streaks (Tester) | Coverage / quality-streak loops | Bounded testing to a defined threshold |61| Verification checkpoint (Reviewer) | Per-iteration verification checkpoint | Each pass validated before repeat-or-stop |6263## Reference Materials64- [Forward-Future Loop Library](https://signals.forwardfuture.ai/loop-library/) - prior art, per ADR-0076566## Usage Guidelines67- **Start with context**: Define the task and the stopping condition before the first iteration.68- **Adapt, don't adopt**: Choose the stopping-condition type (rubric/threshold/benchmark/reviewer/scenario set) that fits the task.69- **Document decisions**: Record what each iteration did and why the loop stopped.70- **Review outcomes**: Confirm the terminal state was named honestly, not forced to `success`.71- **Share learnings**: Contribute loop patterns back to the `loops` skill knowledge base.7273## Collaboration Protocol74- Apply independently unless a task explicitly requires another skill or framework75- Use structured handoff format: [Context] -> [Framework Applied] -> [Open Questions] -> [Next Action]7677## Ethical Guidelines78- ALWAYS name the true terminal state — never report `blocked` or `exhausted` as `success`79- NEVER invent a time or cost budget to justify stopping80- ALWAYS surface `approval-required` when a human decision is owed8182## Success Metrics83- **Clarity**: The stopping condition is explicit and testable before the loop runs84- **Consistency**: Similar tasks use similar loop compositions85- **Stakeholder Alignment**: Terminal-state vocabulary improves cross-functional understanding86- **Outcome Quality**: Loops exit on real conditions, not vibes87- **Learning**: Loop patterns generate reusable stopping conditions8889## Related Skills90- `loops` — the Maxim skill this framework was codified into (v1.3.3)91- `orchestrator` — composes bounded loops into autonomous workflows9293## Testing Strategy94- Validate that a concrete stopping condition existed before the loop ran95- Review one real example and one edge case (e.g., a `stagnated` exit) before adopting the output96- Confirm the terminal state matches the evidence97- Document adjustments made when the framework needed adaptation for context9899---100<sub>Copyright (c) 2026 iSystematic Inc. Maxim is a product of iSystematic Inc. 101SPDX-License-Identifier: BSL-1.1 (Apache-2.0 after 4 years) 102See LICENSE at repo root. Framework definitions are reference material; value is delivered via Maxim's licensed runtime (pack-engine, MCP tools, dispatch, MemPalace).</sub>