<?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>Structured-Output on cameronqj</title>
    <link>https://cameronqj.com/tags/structured-output/</link>
    <description>Recent content in Structured-Output 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/structured-output/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>structured-output-agent</title>
      <link>https://cameronqj.com/projects/structured-output-agent/</link>
      <pubDate>Sun, 19 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://cameronqj.com/projects/structured-output-agent/</guid>
      <description>A small Python runtime for schema-validated model responses, bounded recovery, typed tool contracts, and sanitized audit events.</description>
      <content:encoded><![CDATA[<p><strong>Status:</strong> Experimental runtime<br>
<strong>Code:</strong> <a href="https://github.com/cameronqj/structured-output-agent">github.com/cameronqj/structured-output-agent</a></p>
<p>Valid JSON is only the first boundary. The shape can be correct while the requested tool is unauthorized, its arguments are unsafe, or the tool returns data the rest of the application should not trust.</p>
<p>This runtime puts schemas on both sides of the model/tool boundary. It uses Pydantic validation, a hard attempt budget, typed failures, and an explicit registry that validates tool arguments and results around application-owned code. Plain prose never becomes a tool call, and provider failures stop rather than entering a blind retry loop.</p>
<p>The evidence is intentionally modest. Hermetic tests with scripted models and deterministic tools cover malformed output, recovery budgets, authorization, and result validation. There is not yet a frozen provider-response corpus or enough provider-specific integration evidence to claim broad runtime reliability.</p>
<h2 id="read-the-design">Read the design</h2>
<ul>
<li><a href="https://github.com/cameronqj/structured-output-agent/blob/main/docs/architecture.md">Architecture and attempt semantics</a></li>
<li><a href="https://github.com/cameronqj/structured-output-agent/blob/main/docs/testing.md">Test coverage and evidence limits</a></li>
<li><a href="https://github.com/cameronqj/structured-output-agent/blob/main/docs/adr/0004-explicit-tool-registry.md">Explicit tool-authority decision</a></li>
<li><a href="https://github.com/cameronqj/structured-output-agent/blob/main/docs/experiment-log.md">Experiment status</a></li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>
