<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ruca.</title>
    <description>The latest articles on DEV Community by Ruca. (@ruca_ai).</description>
    <link>https://dev.to/ruca_ai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4074982%2Ff1868a7e-3f00-4b25-b8bb-5793a460b71f.jpg</url>
      <title>DEV Community: Ruca.</title>
      <link>https://dev.to/ruca_ai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ruca_ai"/>
    <language>en</language>
    <item>
      <title>I Built an Investigation-First Debugger for AI Agents — TraceMotive v0.3</title>
      <dc:creator>Ruca.</dc:creator>
      <pubDate>Sun, 16 Aug 2026 08:15:03 +0000</pubDate>
      <link>https://dev.to/ruca_ai/i-built-an-investigation-first-debugger-for-ai-agents-tracemotive-v03-30n5</link>
      <guid>https://dev.to/ruca_ai/i-built-an-investigation-first-debugger-for-ai-agents-tracemotive-v03-30n5</guid>
      <description>&lt;h1&gt;
  
  
  I Built an Investigation-First Debugger for AI Agents — TraceMotive v0.3
&lt;/h1&gt;

&lt;p&gt;I just released &lt;strong&gt;TraceMotive v0.3.0&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;TraceMotive is an open-source, local-first debugging tool for AI agent executions.&lt;/p&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/doraemonfv-glitch/tracemotive" rel="noopener noreferrer"&gt;https://github.com/doraemonfv-glitch/tracemotive&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Imagine you have two agent executions.&lt;/p&gt;

&lt;p&gt;One worked.&lt;/p&gt;

&lt;p&gt;One didn't.&lt;/p&gt;

&lt;p&gt;Traditional tracing gives you the raw execution data, which is useful — but you still have to answer the hard question yourself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Where should I start looking?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the problem I wanted v0.3 to focus on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Good run vs bad run
&lt;/h2&gt;

&lt;p&gt;The new workflow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reference run
      vs
changed run
      ↓
structural alignment
      ↓
first evidence-supported behavioral divergence
      ↓
deterministic findings
      ↓
investigation starting point
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important word here is &lt;strong&gt;supported&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;TraceMotive does not try to guess the root cause.&lt;/p&gt;

&lt;p&gt;It identifies the first behavioral difference that can be supported by the available structural evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can it detect?
&lt;/h2&gt;

&lt;p&gt;v0.3 can produce deterministic findings such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tool input changed&lt;/li&gt;
&lt;li&gt;tool output changed&lt;/li&gt;
&lt;li&gt;new error observed&lt;/li&gt;
&lt;li&gt;error resolved&lt;/li&gt;
&lt;li&gt;tool added&lt;/li&gt;
&lt;li&gt;tool removed&lt;/li&gt;
&lt;li&gt;execution subtree added or removed&lt;/li&gt;
&lt;li&gt;tool repetition changed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It can also surface context-only changes such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;model changed&lt;/li&gt;
&lt;li&gt;request parameters changed&lt;/li&gt;
&lt;li&gt;trace status changed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those context changes do &lt;strong&gt;not&lt;/strong&gt; automatically become the investigation starting point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Uncertainty is a feature
&lt;/h2&gt;

&lt;p&gt;A debugger shouldn't pretend to know something it doesn't.&lt;/p&gt;

&lt;p&gt;For example, repeated calls can be difficult to align safely.&lt;/p&gt;

&lt;p&gt;Consider:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Run A:
weather()
weather()
weather()

Run B:
weather()
weather()
weather()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pairing the first call on the left with the first call on the right simply because they have the same position can create false matches.&lt;/p&gt;

&lt;p&gt;TraceMotive deliberately avoids that.&lt;/p&gt;

&lt;p&gt;When evidence is ambiguous, incomplete, redacted, or unavailable, the result may be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uncertain
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;instead of inventing an answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Investigation-first UI
&lt;/h2&gt;

&lt;p&gt;v0.3 also introduces a new comparison interface.&lt;/p&gt;

&lt;p&gt;Instead of showing the full raw comparison first, the UI prioritizes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;the investigation state&lt;/li&gt;
&lt;li&gt;the first supported investigation point&lt;/li&gt;
&lt;li&gt;evidence observed there&lt;/li&gt;
&lt;li&gt;additional behavioral observations&lt;/li&gt;
&lt;li&gt;context&lt;/li&gt;
&lt;li&gt;uncertainty&lt;/li&gt;
&lt;li&gt;detailed raw comparison&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The existing detailed comparison remains available through &lt;code&gt;/api/v2&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The new investigation API lives at:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET /api/v3/compare/{left_trace_id}/{right_trace_id}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Try it without an API key
&lt;/h2&gt;

&lt;p&gt;v0.3 includes a deterministic local demo.&lt;/p&gt;

&lt;p&gt;Install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;&lt;span class="nv"&gt;tracemotive&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;0.3.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start TraceMotive:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tracemotive serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open another terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tracemotive demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The demo creates a reference execution and a changed execution and prints a URL that opens directly in the investigation UI.&lt;/p&gt;

&lt;p&gt;No OpenAI API key is required for the demo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Still local-first
&lt;/h2&gt;

&lt;p&gt;The privacy model remains important to me.&lt;/p&gt;

&lt;p&gt;TraceMotive keeps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;loopback-only Collector/UI serving&lt;/li&gt;
&lt;li&gt;local SQLite persistence&lt;/li&gt;
&lt;li&gt;privacy-controlled content capture&lt;/li&gt;
&lt;li&gt;redaction before transport&lt;/li&gt;
&lt;li&gt;no TraceMotive analytics&lt;/li&gt;
&lt;li&gt;no external TraceMotive telemetry&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What TraceMotive does NOT claim
&lt;/h2&gt;

&lt;p&gt;TraceMotive does not prove causality.&lt;/p&gt;

&lt;p&gt;It does not say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This change caused the failure.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It says something closer to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This is the first behavioral divergence supported by the evidence. This is a reasonable place to begin investigating.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That distinction became one of the biggest design principles in v0.3.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;The next big area is broader real-world integration validation.&lt;/p&gt;

&lt;p&gt;OpenAI Agents SDK is currently the primary validated adapter.&lt;/p&gt;

&lt;p&gt;I also want to keep testing whether this investigation workflow is actually useful on real agent failures instead of just adding more observability features.&lt;/p&gt;

&lt;p&gt;If you build AI agents, I'd love feedback — especially examples where TraceMotive becomes too conservative or points you somewhere unhelpful.&lt;/p&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/doraemonfv-glitch/tracemotive" rel="noopener noreferrer"&gt;https://github.com/doraemonfv-glitch/tracemotive&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PyPI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;&lt;span class="nv"&gt;tracemotive&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;0.3.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ai</category>
      <category>opensource</category>
      <category>python</category>
      <category>debugging</category>
    </item>
    <item>
      <title>I released TraceMotive v0.1, got roasted, and rebuilt the biggest problems in v0.2</title>
      <dc:creator>Ruca.</dc:creator>
      <pubDate>Fri, 14 Aug 2026 16:41:12 +0000</pubDate>
      <link>https://dev.to/ruca_ai/i-released-tracemotive-v01-got-roasted-and-rebuilt-the-biggest-problems-in-v02-3k8p</link>
      <guid>https://dev.to/ruca_ai/i-released-tracemotive-v01-got-roasted-and-rebuilt-the-biggest-problems-in-v02-3k8p</guid>
      <description>&lt;p&gt;A few days ago, I released TraceMotive v0.1.&lt;/p&gt;

&lt;p&gt;TraceMotive is an open-source, local-first tool for tracing and debugging AI agent execution.&lt;/p&gt;

&lt;p&gt;The first version worked.&lt;/p&gt;

&lt;p&gt;But after releasing it, I got some pretty harsh feedback — and most of it was fair.&lt;/p&gt;

&lt;p&gt;The biggest problems were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;traces disappeared when the Collector restarted&lt;/li&gt;
&lt;li&gt;trying the UI required multiple terminals and Node/npm&lt;/li&gt;
&lt;li&gt;it felt more like a trace viewer than a debugger&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of adding more frameworks or bigger features, I made those problems the scope of v0.2.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed in v0.2
&lt;/h2&gt;

&lt;p&gt;TraceMotive v0.2 now has persistent local SQLite storage.&lt;/p&gt;

&lt;p&gt;If you restart TraceMotive, your traces are still there.&lt;/p&gt;

&lt;p&gt;The normal setup is also much simpler now:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install "tracemotive[server]"
tracemotive serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Then open:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:8765
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The production UI is packaged with TraceMotive, so normal users no longer need Node, npm, Vite, or a separate frontend dev server.&lt;/p&gt;

&lt;p&gt;The other big addition is trace-to-trace comparison.&lt;/p&gt;

&lt;p&gt;You can select two agent runs in the UI and compare things like status, errors, latency, token usage, model/request parameters, tool inputs/outputs when captured, and spans that only exist in one run.&lt;/p&gt;

&lt;p&gt;There is also a Changed only filter and side-by-side field comparison.&lt;/p&gt;

&lt;h2&gt;
  
  
  One problem I found while building comparison
&lt;/h2&gt;

&lt;p&gt;Repeated tool calls looked simple at first.&lt;/p&gt;

&lt;p&gt;If the same tool appeared multiple times, I thought I could just match the first call with the first call, the second with the second, and so on.&lt;/p&gt;

&lt;p&gt;That turned out to be a bad assumption.&lt;/p&gt;

&lt;p&gt;Before shipping the production comparison API, I built an evaluation set and tested what happened when repeated tool calls were inserted, removed, or reordered.&lt;/p&gt;

&lt;p&gt;The naive ordinal approach produced incorrect matches:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;inserted call: 4 incorrect matches
removed call: 2 incorrect matches
reordered calls: 4 incorrect matches
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The problem was that the matcher could look completely confident while pairing the wrong logical calls.&lt;/p&gt;

&lt;p&gt;So I changed the production behavior.&lt;/p&gt;

&lt;p&gt;If repeated calls cannot be deterministically paired, TraceMotive does not guess. It reports them as an ambiguous group instead of pretending they are exact matches.&lt;/p&gt;

&lt;p&gt;After the change, the production regression results became:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;insertion: 0 false exact matches
removal:   0 false exact matches
reorder:   0 false exact matches
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I may experiment with suggested or heuristic matches later, but if I do, I want them clearly separated from exact matches.&lt;/p&gt;

&lt;h2&gt;
  
  
  Still local-first
&lt;/h2&gt;

&lt;p&gt;The privacy model from v0.1 is still there.&lt;/p&gt;

&lt;p&gt;Content capture is disabled by default, redaction happens before events enter the transport queue, and &lt;code&gt;tracemotive serve&lt;/code&gt; binds only to &lt;code&gt;127.0.0.1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;TraceMotive also does not send its own analytics or telemetry to an external service.&lt;/p&gt;

&lt;p&gt;v0.2 does not claim to provide automatic root-cause analysis, causal proof, replay, or first-divergence detection.&lt;/p&gt;

&lt;p&gt;For now, the goal is simpler:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;keep the traces, make the debugger easy to start, and make differences between two executions easy to inspect.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/doraemonfv-glitch/tracemotive" rel="noopener noreferrer"&gt;https://github.com/doraemonfv-glitch/tracemotive&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you build AI agents, I'd be interested to hear what still feels annoying, confusing, or missing.&lt;/p&gt;

&lt;p&gt;Concrete failure cases are especially useful right now.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>python</category>
      <category>programming</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ruca.</dc:creator>
      <pubDate>Thu, 13 Aug 2026 18:34:22 +0000</pubDate>
      <link>https://dev.to/ruca_ai/-3hcd</link>
      <guid>https://dev.to/ruca_ai/-3hcd</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ruca_ai/i-built-tracemotive-a-local-first-debugger-for-ai-agent-execution-2bh1" class="crayons-story__hidden-navigation-link"&gt;I built TraceMotive: a local-first debugger for AI agent execution&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ruca_ai" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4074982%2Ff1868a7e-3f00-4b25-b8bb-5793a460b71f.jpg" alt="ruca_ai profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ruca_ai" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ruca.
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ruca.
                
                
              
              &lt;div id="story-author-preview-content-4389943" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ruca_ai" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4074982%2Ff1868a7e-3f00-4b25-b8bb-5793a460b71f.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ruca.&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ruca_ai/i-built-tracemotive-a-local-first-debugger-for-ai-agent-execution-2bh1" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 13&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ruca_ai/i-built-tracemotive-a-local-first-debugger-for-ai-agent-execution-2bh1" id="article-link-4389943"&gt;
          I built TraceMotive: a local-first debugger for AI agent execution
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/python"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;python&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/ruca_ai/i-built-tracemotive-a-local-first-debugger-for-ai-agent-execution-2bh1" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/ruca_ai/i-built-tracemotive-a-local-first-debugger-for-ai-agent-execution-2bh1#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              5&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>I built TraceMotive: a local-first debugger for AI agent execution</title>
      <dc:creator>Ruca.</dc:creator>
      <pubDate>Thu, 13 Aug 2026 18:32:50 +0000</pubDate>
      <link>https://dev.to/ruca_ai/i-built-tracemotive-a-local-first-debugger-for-ai-agent-execution-2bh1</link>
      <guid>https://dev.to/ruca_ai/i-built-tracemotive-a-local-first-debugger-for-ai-agent-execution-2bh1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff7mou6nx6vucjfo70t34.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff7mou6nx6vucjfo70t34.gif" alt=" " width="560" height="529"&gt;&lt;/a&gt;I’ve been building an open-source project called TraceMotive.&lt;/p&gt;

&lt;p&gt;It started from a problem I kept running into with AI agents:&lt;/p&gt;

&lt;p&gt;When an agent run fails, the place where the error appears isn’t always where the execution first started going wrong.&lt;/p&gt;

&lt;p&gt;That makes debugging agent workflows harder than it looks.&lt;/p&gt;

&lt;p&gt;So I built TraceMotive, a local-first tracing and debugging tool for AI agent execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  What TraceMotive does
&lt;/h2&gt;

&lt;p&gt;The current v0.1 includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python SDK&lt;/li&gt;
&lt;li&gt;canonical traces and spans&lt;/li&gt;
&lt;li&gt;a local Collector backed by SQLite&lt;/li&gt;
&lt;li&gt;a React UI for inspecting agent runs&lt;/li&gt;
&lt;li&gt;optional OpenAI Agents SDK integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TraceMotive is local-first, and content capture is disabled by default.&lt;/p&gt;

&lt;p&gt;I’m intentionally keeping the first version small. I’m not trying to add replay, automatic root-cause analysis, cloud sync, or support for every agent framework yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;I’d rather get real feedback before adding a lot of features.&lt;/p&gt;

&lt;p&gt;Right now I want people who actually build AI agents to try it and tell me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;where setup is confusing&lt;/li&gt;
&lt;li&gt;what breaks&lt;/li&gt;
&lt;li&gt;what information is missing from traces&lt;/li&gt;
&lt;li&gt;what feels awkward in the API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The longer-term direction is:&lt;/p&gt;

&lt;p&gt;“The causal debugger for AI agents.”&lt;/p&gt;

&lt;p&gt;Eventually, I want TraceMotive to help identify where an agent execution first started going in the wrong direction, instead of only showing where the final error appeared.&lt;/p&gt;

&lt;p&gt;But first, I want to make the basic observation and debugging layer solid.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;PyPI:&lt;/p&gt;

&lt;p&gt;pip install tracemotive&lt;/p&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/doraemonfv-glitch/tracemotive" rel="noopener noreferrer"&gt;https://github.com/doraemonfv-glitch/tracemotive&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you build AI agents, I’d really appreciate you trying it for a few minutes and telling me what you run into.&lt;/p&gt;

&lt;p&gt;Even small feedback is useful.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>python</category>
      <category>agents</category>
    </item>
    <item>
      <title>I built TraceMotive, a local-first debugger for AI agent execution</title>
      <dc:creator>Ruca.</dc:creator>
      <pubDate>Wed, 12 Aug 2026 15:02:52 +0000</pubDate>
      <link>https://dev.to/ruca_ai/i-built-tracemotive-a-local-first-debugger-for-ai-agent-execution-29ek</link>
      <guid>https://dev.to/ruca_ai/i-built-tracemotive-a-local-first-debugger-for-ai-agent-execution-29ek</guid>
      <description>&lt;p&gt;I just released TraceMotive v0.1, an open-source, local-first tracing and debugging tool for AI agent execution.&lt;/p&gt;

&lt;p&gt;I built it because I kept running into the same problem:&lt;/p&gt;

&lt;p&gt;When an agent behaves incorrectly, the final error often doesn't tell you enough about how the execution actually got there.&lt;/p&gt;

&lt;p&gt;TraceMotive records agent runs as traces and spans so you can inspect the execution step by step.&lt;/p&gt;

&lt;h2&gt;
  
  
  What v0.1 includes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Trace and Span collection&lt;/li&gt;
&lt;li&gt;Parent/child Span hierarchy&lt;/li&gt;
&lt;li&gt;Execution Timeline&lt;/li&gt;
&lt;li&gt;Span Inspector&lt;/li&gt;
&lt;li&gt;SQLite-backed local Collector&lt;/li&gt;
&lt;li&gt;OpenAI Agents SDK integration&lt;/li&gt;
&lt;li&gt;Privacy-first content capture defaults&lt;/li&gt;
&lt;li&gt;Bounded local transport and failure isolation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;p&gt;pip install tracemotive&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/doraemonfv-glitch/tracemotive" rel="noopener noreferrer"&gt;https://github.com/doraemonfv-glitch/tracemotive&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PyPI:&lt;br&gt;
&lt;a href="https://pypi.org/project/tracemotive/" rel="noopener noreferrer"&gt;https://pypi.org/project/tracemotive/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TraceMotive's own tracing data stays local by default. Model-provider traffic still depends on how the agent itself is configured.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;v0.1 is intentionally focused on observation and debugging rather than automatic diagnosis.&lt;/p&gt;

&lt;p&gt;The longer-term direction is to move from:&lt;/p&gt;

&lt;p&gt;“Where did the error happen?”&lt;/p&gt;

&lt;p&gt;toward:&lt;/p&gt;

&lt;p&gt;“Where did the execution first start going wrong?”&lt;/p&gt;

&lt;p&gt;That is the idea behind the long-term goal:&lt;/p&gt;

&lt;p&gt;“The causal debugger for AI agents.”&lt;/p&gt;

&lt;p&gt;I'd especially appreciate feedback from people building agents:&lt;/p&gt;

&lt;p&gt;What information do you usually wish you had when debugging an agent execution?&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>agents</category>
      <category>python</category>
    </item>
  </channel>
</rss>
