<?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: bnyhil31-afk</title>
    <description>The latest articles on DEV Community by bnyhil31-afk (@bnyhil31-afk).</description>
    <link>https://dev.to/bnyhil31-afk</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%2F3912232%2Fcd1ee6bc-3e8b-4e6b-9788-9314665b29e5.png</url>
      <title>DEV Community: bnyhil31-afk</title>
      <link>https://dev.to/bnyhil31-afk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bnyhil31-afk"/>
    <language>en</language>
    <item>
      <title>Governance and Liability in AI Agents: What I Built Trying to Answer Those Questions</title>
      <dc:creator>bnyhil31-afk</dc:creator>
      <pubDate>Mon, 04 May 2026 14:15:39 +0000</pubDate>
      <link>https://dev.to/bnyhil31-afk/governance-and-liability-in-ai-agents-what-i-built-trying-to-answer-those-questions-39h8</link>
      <guid>https://dev.to/bnyhil31-afk/governance-and-liability-in-ai-agents-what-i-built-trying-to-answer-those-questions-39h8</guid>
      <description>&lt;p&gt;Working in business process automation and exploring AI agents — reading&lt;br&gt;
the research, following the tooling, watching how teams were starting to&lt;br&gt;
deploy them — two topics kept surfacing in almost every serious&lt;br&gt;
conversation: governance and liability.&lt;/p&gt;

&lt;p&gt;Who is accountable when an agent makes a consequential decision? How do&lt;br&gt;
you prove what context it had? What happens when it acts on data it&lt;br&gt;
shouldn't have accessed? How do you satisfy a regulator who wants to see&lt;br&gt;
the record? I'm not a veteran agent engineer — I came to these questions&lt;br&gt;
from the automation and process side, developing my understanding of how&lt;br&gt;
AI agents actually work in production and where the real friction is. But&lt;br&gt;
the governance questions didn't require deep hands-on experience to&lt;br&gt;
recognise. They were showing up everywhere: in the research, in the&lt;br&gt;
compliance conversations, in the gap between what the tooling offered and&lt;br&gt;
what real accountability would actually require.&lt;/p&gt;

&lt;p&gt;I found those questions genuinely interesting. I also found that the&lt;br&gt;
existing tooling didn't have good answers for them. Observability&lt;br&gt;
platforms record outputs. Memory stores optimise for recall. Neither was&lt;br&gt;
designed around the question that kept coming up: what can you actually&lt;br&gt;
prove, to whom, and how?&lt;/p&gt;

&lt;p&gt;Aevum is my attempt at a best current answer. Not a final one — the&lt;br&gt;
field is moving fast and the right architecture will keep evolving. But&lt;br&gt;
a principled one, built around the properties that governance and&lt;br&gt;
liability actually require: consent as a precondition, tamper-evident&lt;br&gt;
audit as a structural property, and deterministic replay as the mechanism&lt;br&gt;
that turns a log into evidence.&lt;/p&gt;


&lt;h3&gt;
  
  
  What Aevum is
&lt;/h3&gt;

&lt;p&gt;Aevum is an open-source context kernel for AI agents. It sits between&lt;br&gt;
your agent and the data it accesses. Every read and write is&lt;br&gt;
policy-governed. Every decision is recorded in a tamper-evident sigchain.&lt;br&gt;
Any past session can be replayed deterministically.&lt;/p&gt;

&lt;p&gt;It is not a memory store. It is not an observability platform. It is the&lt;br&gt;
governance and auditability layer underneath both.&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;aevum.core&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Engine&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;aevum.core.consent.models&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ConsentGrant&lt;/span&gt;

&lt;span class="n"&gt;engine&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Engine&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_consent_grant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ConsentGrant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;grant_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;g1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;subject_id&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-42&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;grantee_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;billing-agent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;operations&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;ingest&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;query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;purpose&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;billing-inquiry&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;classification_max&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;granted_at&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;2026-01-01T00:00:00Z&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;expires_at&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;2030-01-01T00:00:00Z&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ingest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;data&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;invoice_id&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;INV-001&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;amount&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1500.00&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;provenance&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;source_id&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;billing-system&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;chain_of_custody&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&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;billing-system&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;classification&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;purpose&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;billing-inquiry&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;subject_id&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-42&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;actor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;billing-agent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;audit_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;           &lt;span class="c1"&gt;# urn:aevum:audit:0196...
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;             &lt;span class="c1"&gt;# ok
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;verify_sigchain&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;  &lt;span class="c1"&gt;# True
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No consent grant means no operation. Not a warning — an error, every&lt;br&gt;
time, at the kernel level. The five absolute barriers (crisis detection,&lt;br&gt;
classification ceiling, consent, audit immutability, provenance) are&lt;br&gt;
hardcoded. They cannot be disabled by configuration, policy, or&lt;br&gt;
administrator override.&lt;/p&gt;




&lt;h3&gt;
  
  
  The replay distinction
&lt;/h3&gt;

&lt;p&gt;LangSmith's "replay" re-runs a trace against a new model version. That&lt;br&gt;
is re-execution. LangGraph Time Travel restores a checkpoint. That is&lt;br&gt;
state recovery. Neither produces a replayable audit artifact.&lt;/p&gt;

&lt;p&gt;Aevum's replay reads from the immutable provenance graph — not the live&lt;br&gt;
knowledge graph. Two calls to &lt;code&gt;engine.replay&lt;/code&gt; with the same &lt;code&gt;audit_id&lt;/code&gt;&lt;br&gt;
return identical data regardless of how much time has passed or how the&lt;br&gt;
live graph has changed. That guarantee is what makes it useful as&lt;br&gt;
compliance evidence, not just a debugging tool.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why governance questions are becoming engineering questions
&lt;/h3&gt;

&lt;p&gt;EU AI Act Article 12 enforcement begins August 2, 2026. High-risk AI&lt;br&gt;
systems must support automatic, tamper-evident recording of events. The&lt;br&gt;
regulation does not specify a format — but tamper-evident hash-chaining&lt;br&gt;
is the implementation that simultaneously satisfies Article 12, Article&lt;br&gt;
15 (accuracy and robustness), ISO/IEC 42001, and SOC 2 PI1.2.&lt;/p&gt;

&lt;p&gt;OWASP's Top 10 for Agentic AI Applications (December 2025) classifies&lt;br&gt;
memory and context poisoning (ASI06) as a top risk. Aevum's consent&lt;br&gt;
enforcement addresses this structurally — a poisoned entry cannot be&lt;br&gt;
written without a valid consent grant for the actor, subject, and&lt;br&gt;
purpose. The barrier fires at the kernel level before the model sees&lt;br&gt;
the data.&lt;/p&gt;

&lt;p&gt;These aren't future concerns. The governance questions that kept coming&lt;br&gt;
up in the research are now arriving as engineering requirements with&lt;br&gt;
deadlines attached.&lt;/p&gt;




&lt;h3&gt;
  
  
  What's in v0.3.0
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Five governed functions: &lt;code&gt;ingest&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;review&lt;/code&gt;, &lt;code&gt;commit&lt;/code&gt;, &lt;code&gt;replay&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Five absolute barriers, hardcoded in &lt;code&gt;barriers.py&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Ed25519 sigchain + SHA3-256 hash chaining&lt;/li&gt;
&lt;li&gt;Cedar in-process policy + OPA HTTP sidecar support&lt;/li&gt;
&lt;li&gt;MCP integration via &lt;code&gt;aevum-mcp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Agent autonomy levels L1–L5 (DeepMind taxonomy), enforceable by policy&lt;/li&gt;
&lt;li&gt;A2A task format compatibility&lt;/li&gt;
&lt;li&gt;280 tests, mypy strict, ruff clean&lt;/li&gt;
&lt;li&gt;Apache-2.0, no telemetry, runs fully offline
&lt;/li&gt;
&lt;/ul&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;aevum-core
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Documentation: &lt;a href="https://aevum.build/?utm_source=devto&amp;amp;utm_medium=post" rel="noopener noreferrer"&gt;https://aevum.build/?utm_source=devto&amp;amp;utm_medium=post&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/aevum-labs/aevum" rel="noopener noreferrer"&gt;https://github.com/aevum-labs/aevum&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  What Aevum is not
&lt;/h3&gt;

&lt;p&gt;It is not a memory store — pair it with Mem0, Zep, or your own store.&lt;br&gt;
It is not an observability platform — it exports to OpenTelemetry.&lt;br&gt;
It is not a compliance report generator — it produces the evidence,&lt;br&gt;
your compliance team interprets it.&lt;/p&gt;

&lt;p&gt;This is a best current answer, not a final one. The concepts behind the&lt;br&gt;
replay/observability distinction are at&lt;br&gt;
&lt;a href="https://aevum.build/concepts/replay-vs-observability/" rel="noopener noreferrer"&gt;https://aevum.build/concepts/replay-vs-observability/&lt;/a&gt; and the Article 12&lt;br&gt;
implementation guide is at &lt;a href="https://aevum.build/concepts/audit-trails/" rel="noopener noreferrer"&gt;https://aevum.build/concepts/audit-trails/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback welcome — especially from anyone working through the same&lt;br&gt;
governance questions from a different angle.&lt;/p&gt;

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