<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on ISH.SYS</title><link>https://proishan11.github.io/posts/</link><description>Recent content in Posts on ISH.SYS</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 30 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://proishan11.github.io/posts/feed.xml" rel="self" type="application/rss+xml"/><item><title>Open Agent Policy Developer Guide</title><link>https://proishan11.github.io/posts/2026-05-31-open-agent-policy-developer-guide/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://proishan11.github.io/posts/2026-05-31-open-agent-policy-developer-guide/</guid><description>&lt;p&gt;This is the technical companion to the introductory Open Agent Policy posts.&lt;/p&gt;
&lt;p&gt;The earlier posts explain the problem in plain English:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;agents need scoped access, not broad API keys&lt;/li&gt;
&lt;li&gt;agent identity must be proven, not claimed&lt;/li&gt;
&lt;li&gt;policy should answer agent + actor + action + resource + context&lt;/li&gt;
&lt;li&gt;resource APIs should validate grants before serving data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This post is about the developer path.&lt;/p&gt;
&lt;p&gt;The goal is to protect one agent action end to end:&lt;/p&gt;</description></item><item><title>Where Open Agent Policy Is Today</title><link>https://proishan11.github.io/posts/2026-05-30-from-prototype-to-enterprise-agent-security/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://proishan11.github.io/posts/2026-05-30-from-prototype-to-enterprise-agent-security/</guid><description>&lt;p&gt;Open Agent Policy is not just an idea anymore.&lt;/p&gt;
&lt;p&gt;It has a server, schemas, a policy evaluator, a Python SDK, LangChain integration, MCP proxy support, an HTTP gateway, sessions, runs, scoped grants, Postgres storage, audit query, OPA and Cedar backend work, and a local validation environment.&lt;/p&gt;
&lt;p&gt;That is enough to try the model seriously.&lt;/p&gt;
&lt;p&gt;It is not the same thing as being enterprise-ready.&lt;/p&gt;
&lt;p&gt;This post is the honest status.&lt;/p&gt;
&lt;h2 id="the-short-version"&gt;The short version&lt;/h2&gt;
&lt;p&gt;OAP is useful today if you want to:&lt;/p&gt;</description></item><item><title>How Developers Can Use Open Agent Policy</title><link>https://proishan11.github.io/posts/2026-05-29-protecting-agent-tools-sdk-mcp-gateway/</link><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><guid>https://proishan11.github.io/posts/2026-05-29-protecting-agent-tools-sdk-mcp-gateway/</guid><description>&lt;p&gt;Security frameworks only matter if developers can use them.&lt;/p&gt;
&lt;p&gt;If protecting an agent requires rewriting the whole application, most teams will not do it. If the docs begin with distributed policy theory, most people will leave before they run the first example.&lt;/p&gt;
&lt;p&gt;Open Agent Policy needs to be useful in a normal developer workflow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I have an agent.&lt;/li&gt;
&lt;li&gt;The agent has tools.&lt;/li&gt;
&lt;li&gt;Some tools touch sensitive systems.&lt;/li&gt;
&lt;li&gt;I want policy checks before those actions happen.&lt;/li&gt;
&lt;li&gt;I want the resource API to verify proof before returning data.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That is the adoption path.&lt;/p&gt;</description></item><item><title>Why Resource APIs Should Check Grants</title><link>https://proishan11.github.io/posts/2026-05-28-sessions-grants-and-proof-of-access/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://proishan11.github.io/posts/2026-05-28-sessions-grants-and-proof-of-access/</guid><description>&lt;p&gt;The easiest place to add agent security is inside the agent.&lt;/p&gt;
&lt;p&gt;Before a tool runs, ask the policy server for permission. If the answer is deny, do not run the tool.&lt;/p&gt;
&lt;p&gt;That is a good start.&lt;/p&gt;
&lt;p&gt;But it is not enough.&lt;/p&gt;
&lt;p&gt;The resource still needs to protect itself.&lt;/p&gt;
&lt;h2 id="the-bypass-problem"&gt;The bypass problem&lt;/h2&gt;
&lt;p&gt;Imagine this flow:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Agent -&amp;gt; OAP -&amp;gt; ticket API
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The agent asks OAP, &amp;ldquo;Can I read ticket T-100?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;OAP says yes.&lt;/p&gt;</description></item><item><title>Policy for AI Agents, in Plain English</title><link>https://proishan11.github.io/posts/2026-05-27-building-open-agent-policy-spec-first/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://proishan11.github.io/posts/2026-05-27-building-open-agent-policy-spec-first/</guid><description>&lt;p&gt;Policy can sound abstract.&lt;/p&gt;
&lt;p&gt;In practice, an agent policy is just a clear answer to a practical question:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Is this agent allowed to take this action on this resource right now?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That question has to be answered before an agent reads customer data, sends an email, creates a refund, modifies a repository, runs a database query, or calls an internal API.&lt;/p&gt;
&lt;p&gt;Open Agent Policy is built around making that question explicit.&lt;/p&gt;</description></item><item><title>Agent Identity Is Not a String</title><link>https://proishan11.github.io/posts/2026-05-26-agent-identity-is-not-a-string/</link><pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate><guid>https://proishan11.github.io/posts/2026-05-26-agent-identity-is-not-a-string/</guid><description>&lt;p&gt;Every agent access system eventually starts with a name.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;agent://support/ticket-assistant
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That name is useful. Policies need stable names. Audit logs need stable names. Humans need to know which agent did something.&lt;/p&gt;
&lt;p&gt;But a name is not proof.&lt;/p&gt;
&lt;p&gt;If a request says, &amp;ldquo;I am &lt;code&gt;agent://support/ticket-assistant&lt;/code&gt;,&amp;rdquo; the server still has to ask:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why should I believe you?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That is the identity problem Open Agent Policy has to solve before policy can mean anything.&lt;/p&gt;</description></item><item><title>Why AI Agents Need an Access Control Plane</title><link>https://proishan11.github.io/posts/2026-05-25-why-ai-agents-need-a-control-plane/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://proishan11.github.io/posts/2026-05-25-why-ai-agents-need-a-control-plane/</guid><description>&lt;p&gt;AI agents are becoming useful because they can do things.&lt;/p&gt;
&lt;p&gt;They do not just answer questions. They call tools. They read tickets. They query databases. They send emails. They open pull requests. They summarize customer records. They may run for several steps before a human looks at the result.&lt;/p&gt;
&lt;p&gt;That is the moment where an agent stops being &amp;ldquo;just a chatbot&amp;rdquo; and starts looking like a small software service.&lt;/p&gt;
&lt;p&gt;And once an agent can touch real systems, we have to ask a security question:&lt;/p&gt;</description></item><item><title>Graph Algorithms: Mathematics &amp; Implementation</title><link>https://proishan11.github.io/posts/graph-algorithms-mathematics-and-implementation/</link><pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate><guid>https://proishan11.github.io/posts/graph-algorithms-mathematics-and-implementation/</guid><description>&lt;p&gt;Graphs are one of the most versatile data structures in computer science. They model everything from social networks to routing protocols to dependency resolution. In this post, we&amp;rsquo;ll build up graph theory from first principles — formal definitions, mathematical analysis, and clean Python implementations for each algorithm. &lt;span class="sidenote-wrap"&gt;&lt;span class="sidenote-mark"&gt;*&lt;/span&gt;&lt;span class="sidenote"&gt;This post assumes familiarity with basic data structures (arrays, hash maps, heaps) and Big-O notation.&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;h2 id="foundations"&gt;Foundations&lt;/h2&gt;
&lt;h3 id="formal-definition"&gt;Formal Definition&lt;/h3&gt;
&lt;p&gt;A &lt;strong&gt;graph&lt;/strong&gt; $G$ is an ordered pair $G = (V, E)$ where:&lt;/p&gt;</description></item><item><title>Mathematics in Web Publishing</title><link>https://proishan11.github.io/posts/mathematics-in-web-publishing/</link><pubDate>Sun, 28 Dec 2025 00:00:00 +0000</pubDate><guid>https://proishan11.github.io/posts/mathematics-in-web-publishing/</guid><description>&lt;p&gt;One of the challenges of technical writing on the web is properly rendering mathematical notation. With KaTeX, we can render both inline and display math beautifully.&lt;/p&gt;
&lt;h2 id="inline-math"&gt;Inline Math&lt;/h2&gt;
&lt;p&gt;The quadratic formula $x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$ is one of the most well-known formulas in mathematics. We can also write Euler&amp;rsquo;s number $e \approx 2.71828$ inline.&lt;/p&gt;
&lt;h2 id="display-math"&gt;Display Math&lt;/h2&gt;
&lt;p&gt;Euler&amp;rsquo;s identity is often cited as the most beautiful equation:&lt;/p&gt;
&lt;p&gt;$$e^{i\pi} + 1 = 0$$&lt;/p&gt;</description></item></channel></rss>