<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Duong Labs</title>
    <link>https://duonglabs.com/blog</link>
    <atom:link href="https://duonglabs.com/rss.xml" rel="self" type="application/rss+xml"/>
    <description>Short technical notes from Duong Labs: what broke, what fixed it, and when the fix is worth the trouble.</description>
    <language>en</language>
    <lastBuildDate>Sun, 06 Sep 2026 07:01:08 +0000</lastBuildDate>
    <item>
      <title>Regression-testing an agent whose output is never the same twice</title>
      <link>https://duonglabs.com/blog/agent-regression-testing</link>
      <guid isPermaLink="true">https://duonglabs.com/blog/agent-regression-testing</guid>
      <pubDate>Sat, 05 Sep 2026 09:00:00 +0000</pubDate>
      <description>String diffs don&#x27;t work on free-text output. Freeze the traces, assert on behaviour instead of text, and run the suite after every prompt or model change.</description>
    </item>
    <item>
      <title>Two ways usage-based AI billing quietly loses money</title>
      <link>https://duonglabs.com/blog/ai-usage-billing</link>
      <guid isPermaLink="true">https://duonglabs.com/blog/ai-usage-billing</guid>
      <pubDate>Sat, 05 Sep 2026 09:00:00 +0000</pubDate>
      <description>Charge after the stream using the provider&#x27;s real token counts, and let a unique key on the ledger reject Stripe&#x27;s duplicate webhooks.</description>
    </item>
  </channel>
</rss>
