---
title: "What is Agent Looping?"
url: https://stacklist.com/card/0fd25d31-839d-43c1-ae14-2e49975fe7cf
source_url: "https://x.com/shannholmberg/status/2063924108535197842"
stack: https://stacklist.com/c/finance/stack/6cfa7d26-7afc-4b86-9353-055a269e0deb
summary: "Agent looping replaces step-by-step prompting by having AI agents cycle through discovery, planning, execution, and verification autonomously, with open loops allowing exploratory freedom and closed loops following bounded, human-designed paths. Open agent loops burn excessive tokens and risk producing low-quality output for most budgets, making closed looping the practical choice for production work today."
tags: "agent-looping, ai-agents, open-loop, closed-loop, token-cost, orchestration, marketing-automation"
key_entities: "Shann Holmberg (person), Peter Steinberger (person), agent looping (concept), open looping (concept), closed looping (concept), fleet looping (concept), orchestrator agent (concept), eval gate (concept)"
classification: "analysis"
content_hash: "sha256:b6c9677f4a286e2dee2079f04e9a33f8ea636b74b11307b8a8fa04af9d6bcf24"
acp_version: "0.2"
token_counts_approximate: 1207
visibility: public
agent_accessible: true
status: "final"
---

# What is Agent Looping?

Shann³ @shannholmberg what is agent looping for the last two years we prompted agents one task at a time. that is starting to change instead of asking an agent to build the landing page and then driving every step yourself, you set up a loop that handles discovery, planning, the work, checking, and l is met looping is a setup you build. almost any agent harness can run it, it just depends on how you wire it up at its simplest, looping is one agent working on itself: &gt; researches &gt; drafts &gt; checks the draft against a goal &gt; fixes what is weak &gt; runs that cycle again until the work clears the requirements you are not prompting each step anymore. the agent repeats the cycle for you the bigger version is a fleet looping. you give an orchestrator agent a goal, it breaks the goal into pieces, hands each piece to a specialist agent, and those specialists hand smaller jobs to their own subagents the whole tree keeps looping through discovery, planning, execution, and verification until the goal is met one agent looping is like a person redoing their own draft. a fleet looping is a whole team running a project end-to-end you create a goal, and the system runs the loop until it finishes within the reqs you set open and closed looping: OPEN LOOPING is exploratory. it still has conditions and a goal, but you give the agent or the fleet a wide space to move in. it can try different paths, discover things, build something you did not fully spec out this is the exciting end, it is what Peter and others are doing, and tbh it is where I want to spend more time the catch is cost, an open loop with real room to explore burns an insane amount of tokens. for the 90 percent of people without an unlimited budget it is not runnable yet, and pointed at projects with a loose standard it turns into a slop machine CLOSED LOOPING is bounded. a human designs the end-to-end path first: &gt; clear goal &gt; defined steps &gt; an eval at each step &gt; a point where it stops or hands back to you (and feeds back performance data) the agents still loop, but inside framework you built. it gets better every run because each pass feeds the next, and it runs on a normal budget because the path is tight. for most marketing work, closed is the one that pays off today. &gt; the orchestrator owns the goal &gt; the specialists own the steps &gt; the subagents do the narrow work &gt; an eval gate make sure its not slop Peter Steinberger 🦞 @steipete Jun 7 Here’s your monthly reminder that you shouldn’t be prompting coding agents anymore. You should be designing loops that prompt your agents. 10:00 AM · Jun 8, 2026 741.1K Views :host{display:inline-block;direction:ltr;white-space:nowrap;line-height:var(--number-flow-char-height, 1em) !important}span{display:inline-block}:host([data-will-change]) span{will-change:transform}.number,.digit{padding:round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px) 0}.symbol{white-space:pre} 2 0 0 number-flow-react > span{font-kerning:none;display:inline-block;line-height:var(--number-flow-char-height, 1em) !important;padding:calc(round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px) * 2) 0} 200 :host{display:inline-block;direction:ltr;white-space:nowrap;line-height:var(--number-flow-char-height, 1em) !important}span{display:inline-block}:host([data-will-change]) span{will-change:transform}.number,.digit{padding:round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px) 0}.symbol{white-space:pre} 6 9 8 number-flow-react > span{font-kerning:none;display:inline-block;line-height:var(--number-flow-char-height, 1em) !important;padding:calc(round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px) * 2) 0} 698 :host{display:inline-block;direction:ltr;white-space:nowrap;line-height:var(--number-flow-char-height, 1em) !important}span{display:inline-block}:host([data-will-change]) span{will-change:transform}.number,.digit{padding:round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px) 0}.symbol{white-space:pre} 6 K number-flow-react > span{font-kerning:none;display:inline-block;line-height:var(--number-flow-char-height, 1em) !important;padding:calc(round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px) * 2) 0} 6K :host{display:inline-block;direction:ltr;white-space:nowrap;line-height:var(--number-flow-char-height, 1em) !important}span{display:inline-block}:host([data-will-change]) span{will-change:transform}.number,.digit{padding:round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px) 0}.symbol{white-space:pre} 1 0 K number-flow-react > span{font-kerning:none;display:inline-block;line-height:var(--number-flow-char-height, 1em) !important;padding:calc(round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px) * 2) 0} 10K Read 200 replies
