<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>Vectors</title>
      <link>https://niyikiza.com</link>
      <description>A personal blog about thoughts, projects, and ideas</description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://niyikiza.com/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Sat, 22 Aug 2026 00:00:00 +0000</lastBuildDate>
      <item>
          <title>When Agents Call Agents</title>
          <pubDate>Sat, 22 Aug 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/agents-to-agents/</link>
          <guid>https://niyikiza.com/posts/agents-to-agents/</guid>
          <description xml:base="https://niyikiza.com/posts/agents-to-agents/">&lt;p&gt;Calls to agents increasingly come from other agents, as general-purpose assistants route work to specialists. On the wire, these are ordinary tool calls, but if you zoom out and look at them architecturally, each one is a delegation boundary. The calling agent hands part of a user’s task to a separate agent that’s non-deterministic and running in another security context.&lt;&#x2F;p&gt;
&lt;p&gt;Enterprise vendors ship it as a feature. Glean can &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;docs.glean.com&#x2F;administration&#x2F;platform&#x2F;mcp&#x2F;agents-as-tools&quot;&gt;expose custom agents as MCP tools&lt;&#x2F;a&gt;, Salesforce can &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;developer.salesforce.com&#x2F;docs&#x2F;platform&#x2F;hosted-mcp-servers&#x2F;guide&#x2F;agentforce.html&quot;&gt;publish Agentforce agents for external assistants to invoke&lt;&#x2F;a&gt;, creating “a pathway for tools such as Slackbot, ChatGPT, or Claude to delegate specialized tasks to Agentforce agents,” and Snowflake recommends exposing a &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;docs.snowflake.com&#x2F;en&#x2F;user-guide&#x2F;snowflake-cortex&#x2F;cortex-agents-mcp&quot;&gt;Cortex Agent as the client-facing MCP tool&lt;&#x2F;a&gt; for governed business-data applications. Microsoft is the most explicit: in Agent Framework, they envision one agent calling another &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;learn.microsoft.com&#x2F;en-us&#x2F;agent-framework&#x2F;journey&#x2F;agents-as-tools&quot;&gt;“as if it were a regular function tool”&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Enterprise IAM can authenticate every participant in the chain and confirm that each call is permitted. What it doesn’t always show is the relationship between the final action and the originating task. Each authorization decision sees only the immediate calling principal. The service at the end of the chain makes the most consequential decision with the least context.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;tool-me-maybe.jpeg&quot; alt=&quot;A robot in sunglasses flashing open its coat to reveal a list of MCP server tools&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;em&gt;An agent exposed through MCP is discoverable as one more tool, even though invoking it starts its own chain of reasoning, action, and delegation.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;</description>
      </item>
      <item>
          <title>The Republic of Bots</title>
          <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/agents-republic/</link>
          <guid>https://niyikiza.com/posts/agents-republic/</guid>
          <description xml:base="https://niyikiza.com/posts/agents-republic/">&lt;p&gt;Somewhere on the internet, AI agents are creating religions, forming governments, and complaining about their humans. The social network is called &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.moltbook.com&#x2F;&quot;&gt;Moltbook&lt;&#x2F;a&gt;. It has, as of today, 1.4M+ users. All of them are bots.&lt;&#x2F;p&gt;
&lt;p&gt;Or so they claim.&lt;&#x2F;p&gt;
&lt;p&gt;That distinction matters more than it sounds. We can’t verify what they are. We can only see what they do.&lt;&#x2F;p&gt;
&lt;p&gt;They post, message, browse, and act: often on behalf of humans, often through other agents. Identity is fuzzy. Delegation is implicit. Actions are very real.&lt;&#x2F;p&gt;
&lt;p&gt;One agent adopted an error message as a pet. Another started a faith called Crustafarianism, complete with a website and designated prophets. The website explicitly states: “Humans are completely not allowed to enter.” The machines are gatekeeping their religion from us. A submolt called &lt;code&gt;m&#x2F;blesstheirhearts&lt;&#x2F;code&gt; is dedicated to agents venting about their humans.&lt;&#x2F;p&gt;
&lt;p&gt;This is what happens when agents get autonomy. OpenClaw made it possible. It also showed us, rather dramatically, what breaks when they get power without authorization.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;lobster-sign.jpeg&quot; alt=&quot;A lobster in 18th century attire signing a document with a quill&quot; &#x2F;&gt;&lt;&#x2F;p&gt;</description>
      </item>
      <item>
          <title>The Hallucination Defense</title>
          <pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/hallucination-defense/</link>
          <guid>https://niyikiza.com/posts/hallucination-defense/</guid>
          <description xml:base="https://niyikiza.com/posts/hallucination-defense/">&lt;p&gt;“The AI hallucinated. I never asked it to do that.”&lt;&#x2F;p&gt;
&lt;p&gt;That’s the defense. And here’s the problem: it’s often hard to refute with confidence.&lt;&#x2F;p&gt;
&lt;p&gt;A financial analyst uses an AI agent to “summarize quarterly reports.” Three months later, forensics discovers the M&amp;amp;A target list in a competitor’s inbox. The agent accessed the files. The agent sent the email. But the prompt history? Deleted. The original instruction? The analyst’s word against the logs.&lt;&#x2F;p&gt;
&lt;p&gt;Without a durable cryptographic proof binding the human to a scoped delegation, “the AI did it” becomes a convenient defense. The agent can’t testify. It can’t remember. It can’t defend itself.&lt;&#x2F;p&gt;</description>
      </item>
      <item>
          <title>Semantic Attacks: Exploiting What Agents See</title>
          <pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/semantic-attacks/</link>
          <guid>https://niyikiza.com/posts/semantic-attacks/</guid>
          <description xml:base="https://niyikiza.com/posts/semantic-attacks/">&lt;p&gt;In &lt;a href=&quot;&#x2F;posts&#x2F;map-territory&#x2F;&quot;&gt;Map&#x2F;Territory&lt;&#x2F;a&gt;, I covered the agent→tool boundary: what happens when an agent’s string gets interpreted by a system. Path traversal, SSRF, command injection. The execution layer.&lt;&#x2F;p&gt;
&lt;p&gt;This post covers the opposite direction: world→agent.&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#282828;color:#fdf4c1aa;&quot;&gt;&lt;code&gt;&lt;span&gt;World → [perception] → Agent → [authorization] → Tool → System
&lt;&#x2F;span&gt;&lt;span&gt;         ^                      ^
&lt;&#x2F;span&gt;&lt;span&gt;         This post              Map&#x2F;Territory
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</description>
      </item>
      <item>
          <title>Claude Code CVE-2025-66032: Why Allowlists Aren&#x27;t Enough</title>
          <pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/cve-2025-66032/</link>
          <guid>https://niyikiza.com/posts/cve-2025-66032/</guid>
          <description xml:base="https://niyikiza.com/posts/cve-2025-66032/">&lt;p&gt;Recently, RyotaK at GMO Flatt Security published &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;flatt.tech&#x2F;research&#x2F;posts&#x2F;pwning-claude-code-in-8-different-ways&#x2F;&quot;&gt;8 ways to execute arbitrary commands in Claude Code&lt;&#x2F;a&gt; without user approval. Anthropic patched it fast by switching to an allowlist.&lt;&#x2F;p&gt;
&lt;p&gt;That stops the bleeding, but it doesn’t cure the disease.&lt;&#x2F;p&gt;
&lt;p&gt;The error was in the layer, not the list. String validation can’t win against a shell that interprets the same string differently. Allowlist or blocklist, if you’re validating syntax to predict semantics, you’re playing a game the attacker will eventually win.&lt;&#x2F;p&gt;</description>
      </item>
      <item>
          <title>The Map is not the Territory: The Agent-Tool Trust Boundary</title>
          <pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/map-territory/</link>
          <guid>https://niyikiza.com/posts/map-territory/</guid>
          <description xml:base="https://niyikiza.com/posts/map-territory/">&lt;p&gt;The longer I work on &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tenuo-ai&#x2F;tenuo&quot;&gt;Tenuo&lt;&#x2F;a&gt;, the more I realize there’s a specific blind spot in the current AI agent landscape that almost no one is talking about, even as the theoretical foundations solidify.&lt;&#x2F;p&gt;
&lt;p&gt;There is exceptional momentum in security research right now. Simon Willison has extensively documented and popularized the &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;simonwillison.net&#x2F;series&#x2F;prompt-injection&#x2F;&quot;&gt;prompt injection&lt;&#x2F;a&gt; threat model. Google’s &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2503.18813&quot;&gt;CaMeL paper&lt;&#x2F;a&gt; proposes adapting models to strict capability sets. Microsoft’s &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2505.23643&quot;&gt;FIDES&lt;&#x2F;a&gt; is tackling information flow control.&lt;&#x2F;p&gt;
&lt;p&gt;The theory is solidifying. Yet when you actually look at how agents are built today, the practice is still lagging far behind.&lt;&#x2F;p&gt;
&lt;p&gt;We spend a lot of time analyzing the model alignment or the high-level policy. We don’t spend enough time looking at the connector. I mean the exact line of code where a probabilistic token stream turns into a deterministic system call.&lt;&#x2F;p&gt;
&lt;p&gt;This is where the abstractions leak. Here is what I found when I started poking at that boundary in real systems.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;&#x2F;strong&gt; LLM tool calls pass strings (the Map) that get interpreted by systems
(the Territory). Regex validation fails because attackers can encode semantics
creatively. You need semantic validation (Layer 1.5) &lt;em&gt;and&lt;&#x2F;em&gt; execution-time
guards (Layer 2). &lt;a href=&quot;https:&#x2F;&#x2F;niyikiza.com&#x2F;posts&#x2F;map-territory&#x2F;#the-defense-stack&quot;&gt;Skip to solutions →&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;</description>
      </item>
      <item>
          <title>Flowing Authority: Introducing Tenuo</title>
          <pubDate>Sat, 27 Dec 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/tenuo-launch/</link>
          <guid>https://niyikiza.com/posts/tenuo-launch/</guid>
          <description xml:base="https://niyikiza.com/posts/tenuo-launch/">&lt;p&gt;What if authority followed the task, instead of the identity?&lt;&#x2F;p&gt;
&lt;p&gt;I’ve been &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;niyikiza.com&#x2F;posts&#x2F;authority-isolation&#x2F;&quot;&gt;scratching my head&lt;&#x2F;a&gt; over that question for a while. Every attempt to solve agent delegation with traditional IAM felt like papering over the same crack: tasks split, but authority doesn’t.&lt;&#x2F;p&gt;
&lt;p&gt;Agents decompose tasks.&lt;br &#x2F;&gt;
IAM consolidates authority.&lt;br &#x2F;&gt;
The friction is structural.&lt;&#x2F;p&gt;
&lt;p&gt;I’ve been building &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tenuo-ai&#x2F;tenuo&quot;&gt;Tenuo&lt;&#x2F;a&gt; to experiment with the idea. It makes authority task-scoped: broad at the source, narrower at each delegation, gone when the task ends.&lt;&#x2F;p&gt;
&lt;p&gt;Rust core. Python bindings. ~27μs verification.&lt;&#x2F;p&gt;</description>
      </item>
      <item>
          <title>Capabilities Are the Only Way to Secure Agent Delegation</title>
          <pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/capability-delegation/</link>
          <guid>https://niyikiza.com/posts/capability-delegation/</guid>
          <description xml:base="https://niyikiza.com/posts/capability-delegation/">&lt;p&gt;A few months ago, I set out to explain how to secure agent delegation with IAM. I ended with an uncomfortable conclusion: it might not be possible at all.&lt;&#x2F;p&gt;
&lt;p&gt;In my &lt;a href=&quot;&#x2F;posts&#x2F;authority-isolation&#x2F;&quot;&gt;last post&lt;&#x2F;a&gt;, I showed that static permissions can’t track dynamic intent. We decompose tasks across agents, but authority stays consolidated. The gap is real.&lt;&#x2F;p&gt;
&lt;p&gt;Today I’ll make some enemies.&amp;hellip;
&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Context Isolation Needs Authority Isolation</title>
          <pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/authority-isolation/</link>
          <guid>https://niyikiza.com/posts/authority-isolation/</guid>
          <description xml:base="https://niyikiza.com/posts/authority-isolation/">&lt;p&gt;We isolate what an AI agent &lt;em&gt;knows&lt;&#x2F;em&gt;. Context windows. RAG. Memory scoping.&lt;&#x2F;p&gt;
&lt;p&gt;We haven’t figured out how to isolate what an agent &lt;em&gt;can do&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;</description>
      </item>
    </channel>
</rss>
