<?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>Forem: Amad</title>
    <description>The latest articles on Forem by Amad (@amadc2207).</description>
    <link>https://forem.com/amadc2207</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%2F3756575%2F104d34e9-11ee-4702-92a8-e369aeab00be.png</url>
      <title>Forem: Amad</title>
      <link>https://forem.com/amadc2207</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/amadc2207"/>
    <language>en</language>
    <item>
      <title>Your AI agent just did 5 things. Can you prove it?</title>
      <dc:creator>Amad</dc:creator>
      <pubDate>Fri, 06 Feb 2026 18:02:58 +0000</pubDate>
      <link>https://forem.com/amadc2207/your-ai-agent-just-did-5-things-can-you-prove-it-50bc</link>
      <guid>https://forem.com/amadc2207/your-ai-agent-just-did-5-things-can-you-prove-it-50bc</guid>
      <description>&lt;p&gt;I've been building AI agents for the past year. Last month I realized I have no idea what half of them actually do in production.&lt;/p&gt;

&lt;p&gt;Like, I &lt;em&gt;think&lt;/em&gt; my support agent looks up the right docs and gives good answers. But when someone asks "why did the bot say X?" — I'm grepping through logs hoping to find something useful. Usually I don't.&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2Fftd6jmcon97i8psktebh.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.amazonaws.com%2Fuploads%2Farticles%2Fftd6jmcon97i8psktebh.gif" alt=" " width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This wasn't a huge problem until I started reading about the EU AI Act.&lt;/p&gt;

&lt;h2&gt;
  
  
  The law nobody's talking about
&lt;/h2&gt;

&lt;p&gt;August 2026. That's when the EU AI Act fully kicks in. Fines up to €35 million or 7% of global turnover.&lt;/p&gt;

&lt;p&gt;And here's the thing that surprised me: &lt;strong&gt;AI agents are in scope.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The law doesn't use the word "agent" anywhere — it was written before the current agentic AI wave. But it covers "AI systems," and agents are AI systems. A report from The Future Society confirmed this: the Act wasn't designed with agents in mind, but it absolutely applies to them.&lt;/p&gt;

&lt;p&gt;The tricky part? Agents are &lt;em&gt;harder&lt;/em&gt; to comply with than regular AI. A chatbot takes input, gives output, done. An agent takes input, calls three APIs, makes a decision, updates a database, sends an email — and you need to be able to explain every step.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you actually need to build
&lt;/h2&gt;

&lt;p&gt;I spent a few weeks digging into the actual requirements. Here's the short version:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Log everything (Article 12)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every LLM call, every tool use, every decision. With timestamps. For 10 years if you're high-risk.&lt;/p&gt;

&lt;p&gt;This is where I started. Wrapped my OpenAI client, started capturing traces:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;AgentGov&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@agentgov/sdk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;OpenAI&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;AgentGov&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;AGENTGOV_API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;projectId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;AGENTGOV_PROJECT_ID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;openai&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ag&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;wrapOpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

&lt;span class="c1"&gt;// now every call is traced — inputs, outputs, tokens, cost&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you're using the OpenAI Agents SDK, there's an exporter that plugs right in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BatchTraceProcessor&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setTraceProcessors&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@openai/agents&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;AgentGovExporter&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@agentgov/sdk/openai-agents&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nf"&gt;setTraceProcessors&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
  &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BatchTraceProcessor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;AgentGovExporter&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;AGENTGOV_API_KEY&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;projectId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;AGENTGOV_PROJECT_ID&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;}))&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Tell users it's AI (Article 50)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your agent emails customers, chats with users, generates content — they need to know it's AI. Sounds obvious but I've seen a lot of agents that don't disclose this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Figure out your risk level (Annex III)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not all agents need the same compliance. An agent that filters spam? Minimal risk, basically no requirements. An agent that screens job applicants or scores credit? High-risk, full compliance stack.&lt;/p&gt;

&lt;p&gt;This is the part that takes actual thinking. You need to look at Annex III categories and figure out where your agent lands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Human oversight (Article 14)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For high-risk agents: a human needs to be able to stop the agent, override its decisions, and understand what it's doing. This is genuinely hard for autonomous agents. I ended up building approval gates for anything with real-world consequences.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable truth
&lt;/h2&gt;

&lt;p&gt;Most of us are building agents without any of this. I was too. And honestly, if you're just shipping a side project, maybe it doesn't matter.&lt;/p&gt;

&lt;p&gt;But if you're building agents for a company that operates in Europe (or has European customers), this is coming. August 2026 is 6 months away. Retrofitting audit trails into an existing system is way harder than building them in from the start.&lt;/p&gt;

&lt;p&gt;I started working on this problem because I needed it myself. That turned into AgentGov — open source, combines tracing with EU AI Act compliance stuff (risk classification, documentation generation, incident tracking).&lt;/p&gt;

&lt;p&gt;This is my first open source project, so I'm figuring things out as I go. If you have feedback on the approach, the code, or anything really — I'd genuinely appreciate it.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/agentgov-co/agentgov" rel="noopener noreferrer"&gt;github.com/agentgov-co/agentgov&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Website: &lt;a href="https://agentgov.co" rel="noopener noreferrer"&gt;agentgov.co&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Anyway, that's where I'm at. Still figuring this out. If you're building agents and thinking about compliance (or deliberately not thinking about it), I'd love to hear how you're approaching it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>compliance</category>
      <category>euaiact</category>
    </item>
  </channel>
</rss>
