<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://agent-assembly.com/zh-Hant/blog</id>
    <title>Agent Assembly Blog</title>
    <updated>2026-06-25T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://agent-assembly.com/zh-Hant/blog"/>
    <subtitle>Agent Assembly Blog</subtitle>
    <icon>https://agent-assembly.com/zh-Hant/img/favicon.png</icon>
    <entry>
        <title type="html"><![CDATA[SDKs Are Not Security Boundaries]]></title>
        <id>https://agent-assembly.com/zh-Hant/blog/sdks-are-not-security-boundaries</id>
        <link href="https://agent-assembly.com/zh-Hant/blog/sdks-are-not-security-boundaries"/>
        <updated>2026-06-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[An in-process SDK is the fastest way to govern an agent — but it is not, by itself, a]]></summary>
        <content type="html"><![CDATA[<p>An in-process SDK is the fastest way to govern an agent — but it is not, by itself, a
security boundary. Anything running in the same process can bypass it.</p>
<!-- -->
<div class="theme-admonition theme-admonition-note admonition_NavU alert alert--secondary"><div class="admonitionHeading_qcE6"><span class="admonitionIcon_KFPf"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>Editorial note — 13 August 2026</div><div class="admonitionContent_V3XF"><p>As published, this post framed the product as <span data-claims-gate-quote="true">a fixed stack of
interception tiers, each one catching what the tier above it missed</span>. That framing has since
been <strong>retracted</strong>. ADR 0033 records it as
a forbidden design: it presents one deployment shape as the architecture, and "the tier below
catches it" implies a continuity of coverage the product does not have — an absent component
governs nothing, and nothing behind it picks up the slack.</p><p>The body below has been corrected to the current framing: governance is a set of distinct
<strong>roles</strong>, each with its own reach, its own decision authority and its own failure mode, and
which of them exist at all is a deployment fact. The argument this post makes is unchanged —
an in-process SDK is not a security boundary — and the bounds it stated were already accurate.
Only the framing carrying them has been replaced.</p></div></div>
<p>That's why Agent Assembly does not rely on the SDK alone. Governance is spread across distinct
roles, and which of them are present is something you decide when you deploy — not a ladder that
fills itself in:</p>
<ul>
<li class=""><strong>In-process checkpoint (SDK)</strong> — fastest path; the language wrapper raises on a deny before the
tool call it wraps runs, and emits events. Advisory by construction: <code>aa-sdk-client</code> itself has
no in-tree caller that refuses, a non-cooperating process simply never calls it, and it does not
see raw HTTP, subprocess spawns, or file access.</li>
<li class=""><strong>Transport mediation (proxy)</strong> — refuses network egress without requiring changes to the agent,
on traffic that is routed to it. The process has to honour <code>HTTP_PROXY</code>/<code>HTTPS_PROXY</code> and trust
the local CA, and interception is HTTP/1.1 — HTTP/2, gRPC, and WebSocket fall outside it.</li>
<li class=""><strong>Host-level interception (Linux eBPF)</strong> — uprobes on OpenSSL plus exec/file syscall hooks
<strong>observe</strong> activity that neither of the other two roles is positioned to see. The probes emit
telemetry and return no verdict, so this role detects; it does not block, and anything it records
has already happened. Linux only — the file-I/O kprobes, specifically, are x86_64 — and there is
no macOS or Windows equivalent.</li>
</ul>
<p>Each role raises the cost of evading <em>undetected</em>. The SDK is for adoption and speed; the proxy is
where a second, out-of-process decision gets made; the kernel probes are where you find out
something happened that neither of them saw. Treating the SDK as the whole story is the mistake —
defense in depth is the point.</p>
<p>The honest version of "defense in depth" is worth stating, though, because the alternative is the
over-claim this post exists to argue against: three conditional roles compose into a <em>narrower</em>
gap, not the absence of one. An action that is not a wrapped tool call, is not routed through the
proxy, and does not run OpenSSL on a Linux host with the probes loaded is seen by none of them.</p>
<p>The per-role boundaries, and which bypasses have actually been <em>measured</em> versus merely reasoned
about, are enumerated in
<a href="https://docs.agent-assembly.com/core/latest/devtools/limitations.html" target="_blank" rel="noopener noreferrer" class="">Limitations and known bypasses</a>.</p>]]></content>
        <author>
            <name>Agent Assembly Team</name>
            <uri>https://github.com/ai-agent-assembly</uri>
        </author>
        <category label="Engineering" term="Engineering"/>
        <category label="Security" term="Security"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Why Agent Assembly Exists]]></title>
        <id>https://agent-assembly.com/zh-Hant/blog/why-agent-assembly-exists</id>
        <link href="https://agent-assembly.com/zh-Hant/blog/why-agent-assembly-exists"/>
        <updated>2026-06-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Autonomous agents are shipping into production faster than the controls around them.]]></summary>
        <content type="html"><![CDATA[<p>Autonomous agents are shipping into production faster than the controls around them.
An agent that can call tools can move money, touch customer data, and reach the open
internet — usually with the same credentials as the human who deployed it, and with
secrets sitting inside the model's context window.</p>
<!-- -->
<p>Agent frameworks make agents <em>capable</em>. They don't give an agent an identity, constrain
its authority, or keep credentials from travelling with its requests. That gap is what
Agent Assembly is closing: a runtime boundary that gives a registered agent an identity,
limits what it can do on the paths you route through it, and scans its outbound traffic
so recognised credentials are redacted before the request is forwarded.</p>
<p>Worth saying plainly, because the distinction matters more than the pitch: that boundary
holds on the paths it is wired into. An agent launched outside the managed path with no
integration installed, or talking over a transport the proxy does not parse, is outside it —
and we publish exactly where that line falls in
<a href="https://docs.agent-assembly.com/core/latest/devtools/limitations.html" target="_blank" rel="noopener noreferrer" class="">Limitations and known bypasses</a>.</p>
<p>This blog is where we'll share the build — engineering notes, security decisions, and the
story of deciding what an agent may do before it does it.</p>
<div class="theme-admonition theme-admonition-note admonition_NavU alert alert--secondary"><div class="admonitionHeading_qcE6"><span class="admonitionIcon_KFPf"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>Editorial note — 13 August 2026</div><div class="admonitionContent_V3XF"><p>The closing line originally described the product with a category phrase we have since stopped
using, because it names a component rather than what the product decides. Wording only — no claim
in this post has been changed or withdrawn.</p></div></div>]]></content>
        <author>
            <name>Agent Assembly Team</name>
            <uri>https://github.com/ai-agent-assembly</uri>
        </author>
        <category label="Founder's Notes" term="Founder's Notes"/>
        <category label="Security" term="Security"/>
    </entry>
</feed>