<?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: Joey Brar</title>
    <description>The latest articles on DEV Community by Joey Brar (@zsb7).</description>
    <link>https://dev.to/zsb7</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879895%2F6bb9ea83-fd8b-4969-8896-fd967c6d4ecc.png</url>
      <title>DEV Community: Joey Brar</title>
      <link>https://dev.to/zsb7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zsb7"/>
    <language>en</language>
    <item>
      <title>What Did Your Agent Do Last Night?</title>
      <dc:creator>Joey Brar</dc:creator>
      <pubDate>Tue, 21 Apr 2026 19:20:41 +0000</pubDate>
      <link>https://dev.to/zsb7/what-did-your-agent-do-last-night-2c0b</link>
      <guid>https://dev.to/zsb7/what-did-your-agent-do-last-night-2c0b</guid>
      <description>&lt;p&gt;You deployed an AI agent. It ran overnight. In the morning, you have no idea what it actually did, why it made those decisions, or whether anyone tampered with the record...&lt;/p&gt;

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

&lt;p&gt;Everyday AI agents are taking real actions; sending emails, modifying databases, calling APIs, processing payments. When something goes wrong, nobody can produce a provable, tamper-evident record of what happened.&lt;/p&gt;

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

&lt;p&gt;Every action your agent takes is recorded in a cryptographic hash chain. Each entry's hash depends on the previous entry. Modify any record and the entire chain breaks, thus it is immediately detectable and mathematically provable. With this, you can actually prove to your clients that your agent did what it said it did by showing them the action logs.&lt;/p&gt;

&lt;p&gt;Set it up in 30 seconds for free. If you use Claude Desktop or Cursor, add this to your MCP config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"agentseal"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"agentseal-mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"AGENTSEAL_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"as_sk_..."&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or use the Python SDK:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;agentseal&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Seal&lt;/span&gt;

&lt;span class="n"&gt;seal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Seal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;as_sk_...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;seal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;record&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my-bot&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;email:send&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user@example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;reasoning&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User requested password reset&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every call records what happened, why, and who authorized it. The hash chain links each entry to the last, so any retroactive modification is instantly detectable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why now
&lt;/h2&gt;

&lt;p&gt;The EU AI Act requires tamper-evident logging for high-risk AI systems by August 2026. California SB-833 follows in July 2026. The compliance clock is ticking, and most agent frameworks have no audit trail at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's included
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tamper-proof SHA-256 hash chain&lt;/strong&gt; — each entry cryptographically linked to the previous one&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python SDK and MCP server&lt;/strong&gt; — works with Claude Desktop, Cursor, and any MCP-compatible host&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard&lt;/strong&gt; — search, filter, and inspect every action your agents have taken&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chain verification in one API call&lt;/strong&gt; — &lt;code&gt;POST /v1/verify&lt;/code&gt; walks the entire chain and reports integrity&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works under the hood
&lt;/h2&gt;

&lt;p&gt;When you record an action, AgentSeal computes a SHA-256 hash of the entry content (agent ID, action type, parameters, reasoning, timestamp) combined with the previous entry's hash. This creates a linked chain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Entry 1 → hash: a1b2c3...
Entry 2 → hash: d4e5f6... (includes a1b2c3)
Entry 3 → hash: g7h8i9... (includes d4e5f6)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change Entry 2 and its hash changes. But Entry 3 still references the original hash. The mismatch is detected instantly. You can't silently alter history.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Sign up at &lt;a href="https://agentseal.io" rel="noopener noreferrer"&gt;agentseal.io&lt;/a&gt;. Free. Takes 30 seconds.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://agentseal.io" rel="noopener noreferrer"&gt;Website&lt;/a&gt; · &lt;a href="https://github.com/JoeyBrar/agentseal-sdk" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.npmjs.com/package/agentseal-mcp" rel="noopener noreferrer"&gt;npm&lt;/a&gt; · &lt;a href="https://pypi.org/project/agentseal-sdk/" rel="noopener noreferrer"&gt;PyPI&lt;/a&gt; · &lt;a href="https://agentseal.io/docs" rel="noopener noreferrer"&gt;Docs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>opensource</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
