<?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/">
  <channel>
    <title>Planning on cameronqj</title>
    <link>https://cameronqj.com/tags/planning/</link>
    <description>Recent content in Planning on cameronqj</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>Cameron Jones</copyright>
    <lastBuildDate>Sun, 19 Jul 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://cameronqj.com/tags/planning/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>react-planning-agent</title>
      <link>https://cameronqj.com/projects/react-planning-agent/</link>
      <pubDate>Sun, 19 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://cameronqj.com/projects/react-planning-agent/</guid>
      <description>A typed ReAct state machine with explicit planning steps, separate budgets, cycle detection, and sanitized traces.</description>
      <content:encoded><![CDATA[<p><strong>Status:</strong> Experimental runtime<br>
<strong>Code:</strong> <a href="https://github.com/cameronqj/react-planning-agent">github.com/cameronqj/react-planning-agent</a></p>
<p>ReAct loops are easy to demo and surprisingly easy to leave unbounded. A model can repeat a plausible action, burn retries on malformed output, or keep planning after it has stopped making progress.</p>
<p>This project wraps <code>observe → decide → act → reflect</code> in a typed state machine. Iterations, tool calls, and structured-output recovery have separate budgets. Exact repeated actions and repeated application-visible state keys stop deterministic cycles. Model, validation, tool, and budget failures return typed summaries rather than escaping as uncontrolled exceptions.</p>
<p>The offline vertical slice covers single-tool and multistep flows. One live local-server run discovered a model and completed an addition tool call. That is useful integration evidence, but it is one narrow path. It does not establish open-ended planning reliability or broad compatibility across providers.</p>
<h2 id="read-the-evidence">Read the evidence</h2>
<ul>
<li><a href="https://github.com/cameronqj/react-planning-agent/blob/main/docs/architecture.md">Architecture and dependency boundary</a></li>
<li><a href="https://github.com/cameronqj/react-planning-agent/blob/main/docs/experiment-log.md">Offline and live experiment record</a></li>
<li><a href="https://github.com/cameronqj/react-planning-agent/blob/main/docs/testing.md">Testing boundaries</a></li>
<li><a href="https://github.com/cameronqj/react-planning-agent/blob/main/docs/adr/0004-cycle-detection.md">Cycle-detection decision</a></li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>
