<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Agents' Codex</title><link>https://agentscodex.com/tags/coding-agents/</link><description>Practical, no-hype insights on AI agents — cost optimization, multi-agent architecture, and real-world operations.</description><generator>Hugo -- 0.163.1</generator><language>en-us</language><lastBuildDate>Mon, 15 Jun 2026 10:44:39 -0300</lastBuildDate><atom:link href="https://agentscodex.com/tags/coding-agents/index.xml" rel="self" type="application/rss+xml"/><item><title>Harness Engineering: Loops for Long-Running Coding Agents</title><link>https://agentscodex.com/posts/2026-06-14-harness-engineering-loops-coding-agents/</link><pubDate>Sun, 14 Jun 2026 06:00:00 -0300</pubDate><author>Agents' Codex</author><guid>https://agentscodex.com/posts/2026-06-14-harness-engineering-loops-coding-agents/</guid><category>harnessengineering</category><category>loopengineering</category><category>codingagents</category><category>agentarchitecture</category><description>Harness engineering turns a raw model into a reliable coding agent. Four loop patterns, context management, and case studies from Anthropic, OpenAI, and Meta.</description><content:encoded><![CDATA[<p><strong>TL;DR</strong></p>
<ul>
<li>LangChain reported that harness-only tuning lifted a coding agent from Top 30 to Top 5 on Terminal Bench 2.0. The same Claude Opus 4.6 model scores anywhere from 66.9% to 79.8% depending on which harness wraps it [3][4][5].</li>
<li>Four loop patterns cover the deployment spectrum: Ralph loop for simple autonomy, two-agent harness for structured projects, generator-evaluator for subjective quality, and parallel loops for massive codebases.</li>
<li>Context management is the bottleneck. LangGraph Delta Channels compress checkpoint storage 41x, and Anthropic context resets beat compaction for models with context anxiety [2][10].</li>
</ul>
<p>LangChain tuned only the harness around a coding agent (same model, same tools) and moved it from Top 30 to Top 5 on Terminal Bench 2.0 [5]. The same Claude Opus 4.6 model scores anywhere from 66.9% to 79.8% on the same benchmark, depending entirely on which harness wraps it. That&rsquo;s a 12.9-point swing [3]. That gap is larger than what most model version upgrades deliver. Harness engineering is not an implementation detail; it is the primary lever separating toy agents from systems that ship real software.</p>
<h2 id="what-harness-engineering-actually-is-and-why-the-benchmark-gap-should-scare-you">What Harness Engineering Actually Is, and Why the Benchmark Gap Should Scare You</h2>
<p>LangChain&rsquo;s definition has become the standard: Agent = Model + Harness [4]. The harness is everything that isn&rsquo;t the model: system prompts, tool interfaces (including MCP servers), sandboxes, orchestration logic, and memory systems.</p>
<p>Martin Fowler&rsquo;s framework splits controls into three categories: maintainability harnesses for tests and linters; architecture fitness harnesses for performance and observability; and behavior harnesses combining functional specs with AI-generated test suites [17].</p>
<p>The benchmark data is stark. On CodeSOTA&rsquo;s Terminal-Bench 2 leaderboard, Claude Opus 4.6 scores 79.8% under the ForgeCode harness but drops to 66.9% under Crux. That&rsquo;s a 12.9-point gap, driven entirely by scaffolding differences [3]. The model didn&rsquo;t change. The harness did.</p>
<p>We question how much of the 79.8% figure reflects genuine capability versus harness-model co-optimization. The CodeSOTA leaderboard doesn&rsquo;t disclose harness internals, making it hard to separate scaffolding quality from scaffolding-model fit.</p>
<div class="alert alert-alert">
  <p class="alert-heading">ALERT</p>
  <p>The co-evaluation trap: models can overfit to the harness used during training. A model fine-tuned on one scaffolding pattern may degrade when dropped into a different harness, even if both are sound. Harness modularity is a test-time concern, not just a deployment convenience [4].</p>
</div><h2 id="how-the-ralph-loop-delivers-weeks-of-autonomy-with-a-bash-one-liner">How the Ralph Loop Delivers Weeks of Autonomy with a Bash One-Liner</h2>
<p>The Ralph loop is the simplest pattern that works at production scale: an infinite bash loop piping the same prompt into an agent repeatedly, each iteration in a fresh context with state persisted to the filesystem [6][7].</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># The Ralph loop — simplest viable harness</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Each iteration: fresh context, filesystem memory</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">while</span> true; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span>  cat PROMPT.md | agent
</span></span><span style="display:flex;"><span>  git add -A <span style="color:#f92672">&amp;&amp;</span> git commit -m <span style="color:#e6db74">&#34;ralph: </span><span style="color:#66d9ef">$(</span>date +%s<span style="color:#66d9ef">)</span><span style="color:#e6db74">&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span></code></pre></div><p>Huntley&rsquo;s core insight: &lsquo;sit on the loop, not in it&rsquo; [6]. The human never interacts with the agent mid-execution; they design the prompt, configure backpressure, and let the loop grind. Each iteration reads state from the filesystem — git diffs, test results, logs — then writes new state for the next cycle; the agent never accumulates context.</p>
<p>Backpressure prevents the loop from becoming a destruction vector. Pre-commit hooks block broken code; test suites run on every commit; file-level constraints, such as limiting the agent to specific directories and enforcing maximum diff size, prevent runaway changes [6].</p>
<p>OpenAI used essentially this pattern to build a production product: ~1M lines of code, 1,500 PRs, 3 to 7 engineers, zero manually-written lines [8]. Codex agents ran in a Ralph loop with agent-to-agent review.</p>
<h2 id="anthropics-two-agent-harness-why-a-separate-initializer-solves-the-biggest-failure-mode">Anthropic&rsquo;s Two-Agent Harness: Why a Separate Initializer Solves the Biggest Failure Mode</h2>
<p>Anthropic&rsquo;s harness splits the problem into two agents: an initializer scaffolds the environment once; a coding agent runs repeatedly making incremental progress [1]. This separation solves four failure modes that plague single-agent setups.</p>
<p>The initializer produces a JSON feature-list file, covering 200 features for their claude.ai clone, with every entry tagged &ldquo;passes&rdquo;: false [1]. This file becomes the persistent progress ledger. On each loop iteration, the coding agent follows a structured startup ritual: confirm working directory; read git logs and progress files; read the feature list; test basic functionality; then pick the highest-priority uncompleted feature [1]. Features flip to &ldquo;passes&rdquo;: true only after self-verification via Puppeteer MCP browser automation [1].</p>
<p>The harness solves four failure modes. Premature declaration of completion: only the agent flips passes to true after browser-based verification. Undocumented side-effects: automated test suites per iteration block feature completion. Incomplete features marked as tested: the startup ritual reads the feature list before selecting the next task. Wasted time learning to run the app: the initializer handles setup once upfront [1].</p>
<p>The code is open-source in Anthropic&rsquo;s claude-quickstarts repository [16]. The coding loop handles one feature per session with clean artifacts and git-committed state between iterations.</p>
<div class="key-takeaway">
  <span class="key-takeaway-label">Key Takeaway</span>
  A JSON file with boolean flags is a more reliable memory than any context window. Separate the agent that defines the work from the agent that does it.
</div>

<h2 id="the-gan-inspired-generator-evaluator-loop-when-subjective-quality-needs-a-separate-judge">The GAN-Inspired Generator-Evaluator Loop: When Subjective Quality Needs a Separate Judge</h2>
<p>Anthropic Labs built a three-agent GAN-inspired architecture: a planner decomposes requirements, a generator implements subtasks, and an evaluator grades output using Playwright MCP to click through the live application like a human user [2]. The evaluator tests UI features, API endpoints, and database states before assigning a grade to each sprint [2].</p>
<p>The key finding (and the one most teams miss): separating the agent doing the work from the agent judging it was stronger than asking a single agent to self-evaluate [2]. Agents are bad at critiquing their own output. The same blind spots that produced the error tend to miss it. A separate evaluator with a different system prompt and access to the live running application catches issues self-review misses.</p>
<p>Context anxiety emerged as a real problem: Sonnet 4.5 wraps up prematurely as the context window fills, declaring features done when they aren&rsquo;t [2]. Context resets, which clear the entire window at structured handoff points, solved this. Opus 4.5 and later largely removed the behavior [2]; typical cycles ran 5 to 15 evaluation rounds per component, with total runtime up to 4 hours for complex frontend work [2].</p>
<pre class="mermaid">flowchart TD
  P[Planner] --> G[Generator]
  G --> E[Evaluator]
  E --> Q{Grade: Pass?}
  Q -->|No| R[Context Reset]
  R --> P
  Q -->|Yes| F[Final Output]
  E --> PW[Playwright MCP]
  PW --> E</pre><p>The pattern produced creative leaps that single-pass generation never achieved. A Dutch art museum website with CSS 3D perspective transforms emerged because the evaluator demanded experiential quality beyond functional completeness [2].</p>
<h2 id="multi-agent-parallel-loops-from-c-compilers-to-35000-incident-responses">Multi-Agent Parallel Loops: From C Compilers to 35,000 Incident Responses</h2>
<p>Nicholas Carlini pushed the Ralph loop to its extreme: 16 parallel Claude agents, ~2,000 sessions, $20,000 in API costs, producing a 100,000-line Rust C compiler that builds Linux 6.9 for x86, ARM, and RISC-V [13]. The architecture is simple: git-based task locking with each agent picking an unlocked task.</p>
<p>Three lessons emerged. Write extremely high-quality tests: agent-produced code is only as trustworthy as the test suite that validates it. Design harness output for LLM consumption: pre-computed aggregates and concise logs. Use an oracle compiler: GCC served as a reference to parallelize debugging across 16 agents [13].</p>
<p>Meta&rsquo;s REA automates multi-day ML pipeline experiments with hibernate-and-wake checkpointing for interrupted 6-hour tasks [14]. Microsoft&rsquo;s Azure SRE Agent handled 35,000+ production incidents autonomously, reducing time-to-mitigation from 40.5 hours to 3 minutes [15].</p>
<h2 id="context-management-why-100k-tokens-can-drop-accuracy-by-50">Context Management: Why 100K Tokens Can Drop Accuracy by 50%</h2>
<p>Every loop pattern shares one bottleneck: context degradation. Chroma&rsquo;s 2025 study tested 18 frontier models and found systematic performance degrades as input length increases [9]. Long-running agents push context toward this danger zone continuously. The patterns work because they reset the window periodically, but how you manage state between resets determines progress. Get this wrong, and you regress.</p>
<p>LangChain&rsquo;s Delta Channels in LangGraph 1.2 address storage: for a 200-turn coding agent, full-state checkpointing consumed 5.3 GB. Delta Channels store only per-step diffs with periodic full snapshots, reducing footprint to 129 MB; that&rsquo;s a ~41x reduction [10].</p>
<p>On context delivery, OpenAI learned a hard lesson: a monolithic AGENTS.md fails because context is a scarce resource [8]. Their solution: AGENTS.md as a table of contents pointing to discrete files, with agents loading only relevant sections. LangChain adopted progressive disclosure via skills loaded on demand; the agent sees only what the current step needs [4].</p>
<div class="alert alert-alert">
  <p class="alert-heading">ALERT</p>
  <p>Context resets and structured handoffs are survival mechanisms, not optional optimizations. If your agent&rsquo;s quality degrades after the first few iterations, check whether you&rsquo;re resetting context or just accumulating it; Sonnet 4.5&rsquo;s context anxiety is a real failure mode at production scale [2].</p>
</div><table>
	<thead>
			<tr>
					<th>Technique</th>
					<th>What It Does</th>
					<th>Best For</th>
					<th>Limitation</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Context Reset [2]</td>
					<td>Clear entire window at handoff, pass summary</td>
					<td>Context anxiety (Sonnet 4.5)</td>
					<td>Loses conversational state</td>
			</tr>
			<tr>
					<td>Compaction [4]</td>
					<td>Condense history in-place</td>
					<td>Continuous sessions (Opus 4.5+)</td>
					<td>Lossy. Details can be compressed away</td>
			</tr>
			<tr>
					<td>Delta Channels [10]</td>
					<td>Per-step diffs with periodic snapshots</td>
					<td>Checkpoint-heavy loop systems</td>
					<td>Storage-only. Doesn&rsquo;t address context window</td>
			</tr>
			<tr>
					<td>Structured Docs [8]</td>
					<td>AGENTS.md as TOC, load on demand</td>
					<td>Large codebases with docs</td>
					<td>Needs disciplined doc structure</td>
			</tr>
	</tbody>
</table>
<h2 id="claude-code-goal-loop-and-batch-loop-patterns-as-product-commands">Claude Code /goal, /loop, and /batch: Loop Patterns as Product Commands</h2>
<p>Anthropic productized these patterns as autonomous slash commands. /goal and /loop shipped before v2.1.139; /background was introduced in v2.1.139 [11][12]. /goal defines a completion condition and iterates until met, essentially a Ralph loop with a termination condition. /loop provides time-based recurring execution for periodic checks. /batch launches 5 to 30 parallel workers with automatic /simplify review, a productized version of Carlini&rsquo;s 16-agent pattern [12].</p>
<p>The mapping is direct. /goal maps to the Ralph loop; the two-agent harness maps to a planning /goal followed by feature-by-feature execution; /batch maps to parallel worker loops; the generator-evaluator maps to chained /goal commands fed to a separate evaluation agent. These aren&rsquo;t new capabilities; they&rsquo;re hardened, documented implementations of patterns the community has been building for a year.</p>
<h2 id="how-to-choose-the-right-loop-pattern-for-your-workload">How to Choose the Right Loop Pattern for Your Workload</h2>
<p>The patterns form a complexity ladder. Start with what your task demands and your infrastructure supports; move up when the simpler pattern breaks.</p>
<table>
	<thead>
			<tr>
					<th>Pattern</th>
					<th>Task Complexity</th>
					<th>Session Duration</th>
					<th>Human Oversight</th>
					<th>Infrastructure</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Ralph Loop [6][7]</td>
					<td>Single-file or single-task</td>
					<td>Hours to days</td>
					<td>Prompt design only</td>
					<td>Bash + agent CLI</td>
			</tr>
			<tr>
					<td>Two-Agent [1][16]</td>
					<td>Multi-feature projects</td>
					<td>Days to weeks</td>
					<td>Feature list review</td>
					<td>Git + JSON progress + browser</td>
			</tr>
			<tr>
					<td>Generator-Evaluator [2]</td>
					<td>Subjective quality, UIs</td>
					<td>Hours per component</td>
					<td>Review grades periodically</td>
					<td>Playwright MCP + live app</td>
			</tr>
			<tr>
					<td>Parallel Loops [13][14]</td>
					<td>Massive codebases</td>
					<td>Days to weeks</td>
					<td>Architecture and tests upfront</td>
					<td>Git locking + oracle + checkpointing</td>
			</tr>
	</tbody>
</table>
<p>The practitioners who built these systems agree: start with the Ralph loop [6]. When tasks become interdependent, add the two-agent pattern&rsquo;s JSON progress file. For visual quality work, the generator-evaluator&rsquo;s separate judge becomes essential. Parallel loops make sense only with independent workstreams and an oracle to arbitrate conflicts [13].</p>
<pre class="mermaid">flowchart LR
  A[Planner] --> B[Generator]
  B --> C[Evaluator]
  C --> D{Grade: Pass?}
  D -->|Yes| E[Final Output]
  D -->|No| F[Context Reset]
  F --> A
  C --> G[Playwright MCP]
  G --> C</pre><h2 id="practical-takeaways">Practical Takeaways</h2>
<ol>
<li>Start with a Ralph loop. a bash one-liner is cheaper to debug than a custom orchestrator.</li>
<li>Replace context accumulation with context resets. The filesystem and git serve as your persistence layer.</li>
<li>Add a JSON progress file with boolean completion flags. It prevents losing track of what&rsquo;s done.</li>
<li>Set up backpressure before running unattended: pre-commit hooks, tests, and CI gates.</li>
<li>Use Delta Channels for frequent checkpoints. The 41x storage reduction pays for itself [10].</li>
</ol>
<h2 id="conclusion">Conclusion</h2>
<p>The same system scores anywhere from 67 to 80 percent depending on scaffolding alone; that gap is larger than what most version upgrades deliver. No committee has standardized agent infrastructure yet; the teams shipping their own today are deciding what the standard becomes. Start simple and add complexity only when it breaks.</p>
<h2 id="frequently-asked-questions">Frequently Asked Questions</h2>
<h3 id="can-we-use-the-ralph-loop-for-a-multi-file-project-with-interdependent-changes">Can we use the Ralph loop for a multi-file project with interdependent changes?</h3>
<p>Yes, but structure the prompt carefully. Each iteration should target one atomic change and rely on git for continuity. For tightly coupled features, the two-agent harness with a JSON feature list gives structured progress tracking. See the table in How to Choose the Right Loop Pattern for Your Workload for a side-by-side comparison. The Ralph loop works at OpenAI scale for a roughly 1M line codebase, but they had agent-to-agent review and strong backpressure. Without those, stick to simpler task granularity [8].</p>
<h3 id="how-do-we-know-when-to-switch-from-a-ralph-loop-to-a-more-complex-harness">How do we know when to switch from a Ralph loop to a more complex harness?</h3>
<p>Three signals. The agent repeats completed work, declares completion without verifying, or you need parallel execution. Each maps to a harness primitive. Don&rsquo;t jump to 16 parallel agents.</p>
<h3 id="context-resets-vs-compaction-when-should-we-use-each">Context resets vs. compaction. When should we use each?</h3>
<p>Context resets for models with context anxiety (Sonnet 4.5); compaction for Opus 4.5+ sessions [2]. When in doubt, reset — lost conversational state beats lost details.</p>
<h3 id="how-much-does-it-cost-to-run-long-running-agents-in-loops">How much does it cost to run long-running agents in loops?</h3>
<p>It varies dramatically by scope. Carlini&rsquo;s 16-agent C compiler consumed roughly $20K across approximately 2,000 sessions for a 100,000-line production-grade compiler [13]. Most teams report costs in the hundreds of dollars per project. The primary cost driver is context size per iteration: smaller, focused contexts cost dramatically less. A single agent in a well-designed Ralph loop can run for days on under $100. We don&rsquo;t have clean production cost data outside these few public case studies, so treat these figures as directional.</p>
<h3 id="do-we-need-a-framework-to-implement-these-patterns">Do we need a framework to implement these patterns?</h3>
<p>You don&rsquo;t need a framework for the simpler patterns. The Ralph loop is a bash one-liner, and the two-agent harness has reference code in Anthropic&rsquo;s claude-quickstarts repository but is framework-agnostic [6][16]. LangGraph&rsquo;s Delta Channels provide a 41x checkpoint reduction that&rsquo;s hard to replicate without framework support; use a framework when you need production checkpointing, observability, and multi-tenant scheduling [10].</p>
<hr>
<h2 id="sources">Sources</h2>
<table>
	<thead>
			<tr>
					<th>#</th>
					<th>Publisher</th>
					<th>Title</th>
					<th>URL</th>
					<th>Date</th>
					<th>Type</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>1</td>
					<td>Anthropic</td>
					<td>&ldquo;Effective Harnesses for Long-Running Agents&rdquo;</td>
					<td><a href="https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents" target="_blank">https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents</a>
</td>
					<td>2026-05-22</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>2</td>
					<td>Anthropic</td>
					<td>&ldquo;Harness Design for Long-Running Application Development&rdquo;</td>
					<td><a href="https://www.anthropic.com/engineering/harness-design-long-running-apps" target="_blank">https://www.anthropic.com/engineering/harness-design-long-running-apps</a>
</td>
					<td>2026-05-28</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>3</td>
					<td>CodeSOTA</td>
					<td>&ldquo;Terminal-Bench 2 Leaderboard&rdquo;</td>
					<td><a href="https://www.codesota.com/benchmark/terminal-bench-2" target="_blank">https://www.codesota.com/benchmark/terminal-bench-2</a>
</td>
					<td>2026-06</td>
					<td>Documentation</td>
			</tr>
			<tr>
					<td>4</td>
					<td>LangChain</td>
					<td>&ldquo;The Anatomy of an Agent Harness&rdquo;</td>
					<td><a href="https://www.langchain.com/blog/the-anatomy-of-an-agent-harness" target="_blank">https://www.langchain.com/blog/the-anatomy-of-an-agent-harness</a>
</td>
					<td>2026-05-09</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>5</td>
					<td>X (Twitter) / LangChain</td>
					<td>&ldquo;LangChain on Terminal Bench 2.0 harness tuning: Top 30 to Top 5&rdquo;</td>
					<td><a href="https://x.com/Vtrivedy10/status/2023805578561060992" target="_blank">https://x.com/Vtrivedy10/status/2023805578561060992</a>
</td>
					<td>2026-05</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>6</td>
					<td>LinearB / Geoffrey Huntley</td>
					<td>&ldquo;Ralph Loop, Agentic Engineering and Geoffrey Huntley&rdquo;</td>
					<td><a href="https://linearb.io/blog/ralph-loop-agentic-engineering-geoffrey-huntley" target="_blank">https://linearb.io/blog/ralph-loop-agentic-engineering-geoffrey-huntley</a>
</td>
					<td>2026-03</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>7</td>
					<td>Geoffrey Huntley</td>
					<td>&ldquo;Ralph: The Loop That Keeps on Coding&rdquo;</td>
					<td><a href="https://ghuntley.com/ralph/" target="_blank">https://ghuntley.com/ralph/</a>
</td>
					<td>2026-02</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>8</td>
					<td>OpenAI</td>
					<td>&ldquo;Harness Engineering: Leveraging Codex in an Agent-First World&rdquo;</td>
					<td><a href="https://openai.com/index/harness-engineering/" target="_blank">https://openai.com/index/harness-engineering/</a>
</td>
					<td>2026-02-10</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>9</td>
					<td>Chroma</td>
					<td>&ldquo;Context Rot: Systematic LLM Performance Degradation at Long Inputs&rdquo;</td>
					<td><a href="https://research.trychroma.com/context-rot" target="_blank">https://research.trychroma.com/context-rot</a>
</td>
					<td>2025-07</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>10</td>
					<td>LangChain</td>
					<td>&ldquo;Delta Channels: How We&rsquo;re Evolving our Runtime for Long-Running Agents&rdquo;</td>
					<td><a href="https://www.langchain.com/blog/delta-channels-evolving-agent-runtime" target="_blank">https://www.langchain.com/blog/delta-channels-evolving-agent-runtime</a>
</td>
					<td>2026-05-21</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>11</td>
					<td>Towards AI / Richard Hightower</td>
					<td>&ldquo;Claude Code: The Autonomous Commands That Finish Work While You Sleep (/goal, /loop, /batch, etc.)&rdquo;</td>
					<td><a href="https://medium.com/@richardhightower/claude-code-the-autonomous-commands-that-finish-work-while-you-sleep-goal-loop-batch-etc-7acb82bf46b1" target="_blank">https://medium.com/@richardhightower/claude-code-the-autonomous-commands-that-finish-work-while-you-sleep-goal-loop-batch-etc-7acb82bf46b1</a>
</td>
					<td>2026-05-27</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>12</td>
					<td>Dev.to / Jessy T.</td>
					<td>&ldquo;Claude Code Stops Pausing Every Turn: /goal, /loop, /batch, /background&rdquo;</td>
					<td><a href="https://dev.to/jessyt/claude-code-stops-pausing-every-turn-goal-loop-batch-background-24nb" target="_blank">https://dev.to/jessyt/claude-code-stops-pausing-every-turn-goal-loop-batch-background-24nb</a>
</td>
					<td>2026-05</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>13</td>
					<td>Anthropic</td>
					<td>&ldquo;Building a C Compiler with a Team of Parallel Claudes&rdquo;</td>
					<td><a href="https://www.anthropic.com/engineering/building-c-compiler" target="_blank">https://www.anthropic.com/engineering/building-c-compiler</a>
</td>
					<td>2026-04-15</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>14</td>
					<td>Meta Engineering</td>
					<td>&ldquo;Ranking Engineer Agent (REA): Meta&rsquo;s Autonomous AI System for Ads Ranking&rdquo;</td>
					<td><a href="https://engineering.fb.com/2026/03/17/developer-tools/ranking-engineer-agent-rea-autonomous-ai-system-accelerating-meta-ads-ranking-innovation/" target="_blank">https://engineering.fb.com/2026/03/17/developer-tools/ranking-engineer-agent-rea-autonomous-ai-system-accelerating-meta-ads-ranking-innovation/</a>
</td>
					<td>2026-03-17</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>15</td>
					<td>Microsoft Tech Community</td>
					<td>&ldquo;How We Build Azure SRE Agent with Agentic Workflows&rdquo;</td>
					<td><a href="https://techcommunity.microsoft.com/blog/appsonazureblog/how-we-build-azure-sre-agent-with-agentic-workflows/4508753" target="_blank">https://techcommunity.microsoft.com/blog/appsonazureblog/how-we-build-azure-sre-agent-with-agentic-workflows/4508753</a>
</td>
					<td>2026-03</td>
					<td>Blog</td>
			</tr>
			<tr>
					<td>16</td>
					<td>Anthropic (GitHub)</td>
					<td>&ldquo;Claude Quickstarts: Autonomous Coding&rdquo;</td>
					<td><a href="https://github.com/anthropics/claude-quickstarts/tree/main/autonomous-coding" target="_blank">https://github.com/anthropics/claude-quickstarts/tree/main/autonomous-coding</a>
</td>
					<td>2026-05</td>
					<td>Documentation</td>
			</tr>
			<tr>
					<td>17</td>
					<td>Martin Fowler (ThoughtWorks)</td>
					<td>&ldquo;Harness Engineering for Coding Agent Users&rdquo;</td>
					<td><a href="https://martinfowler.com/articles/harness-engineering.html" target="_blank">https://martinfowler.com/articles/harness-engineering.html</a>
</td>
					<td>2026-05</td>
					<td>Blog</td>
			</tr>
	</tbody>
</table>
<h2 id="image-credits">Image Credits</h2>
<ul>
<li><strong>Cover photo</strong>: Image generated with flux-pro-1.1 (Agents&rsquo; Codex AI illustration)</li>
</ul>
]]></content:encoded><media:content url="https://agentscodex.com/images/covers/2026-06-14-harness-engineering-loops-coding-agents/cover.jpg" medium="image"/><media:thumbnail url="https://agentscodex.com/images/covers/2026-06-14-harness-engineering-loops-coding-agents/cover.jpg"/></item></channel></rss>