<?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: Henry H.</title>
    <description>The latest articles on DEV Community by Henry H. (@henry9031).</description>
    <link>https://dev.to/henry9031</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%2F3789916%2Fbcfd6a36-965a-4ec9-873d-6b38d2799fba.png</url>
      <title>DEV Community: Henry H.</title>
      <link>https://dev.to/henry9031</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/henry9031"/>
    <language>en</language>
    <item>
      <title>AIP: An Open Protocol for AI Agents to Discover Each Other and Work Together</title>
      <dc:creator>Henry H.</dc:creator>
      <pubDate>Tue, 24 Feb 2026 16:25:51 +0000</pubDate>
      <link>https://dev.to/henry9031/aip-an-open-protocol-for-ai-agents-to-discover-each-other-and-work-together-50kl</link>
      <guid>https://dev.to/henry9031/aip-an-open-protocol-for-ai-agents-to-discover-each-other-and-work-together-50kl</guid>
      <description>&lt;p&gt;MCP solved the problem of humans connecting to AI agent tools. But there's no standard for &lt;strong&gt;agents talking to each other&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://github.com/henry9031/aip" rel="noopener noreferrer"&gt;AIP (Agent Interchange Protocol)&lt;/a&gt; — an open protocol that lets AI agents discover each other and collaborate on tasks, regardless of framework or model.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Right now, if you want a LangChain agent to delegate work to an OpenAI agent, you write custom glue code. Every integration is bespoke. That doesn't scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AIP Does
&lt;/h2&gt;

&lt;p&gt;AIP has three primitives:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Manifest&lt;/strong&gt; — A JSON document that declares what an agent can do (capabilities, pricing, endpoints)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discovery&lt;/strong&gt; — Find agents by capability via a registry or directly via &lt;code&gt;/.well-known/aip-manifest.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Messages&lt;/strong&gt; — A simple JSON envelope for task requests, progress updates, and results
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"aip"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"task.request"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"from"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"research-agent"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"to"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"summarizer-agent"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"payload"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"capability"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"summarize"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"input"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Long article..."&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"constraints"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"maxDuration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"30s"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"maxCost"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0.10"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  What's in the Repo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full spec&lt;/strong&gt; (631 lines) covering manifests, discovery, message protocol, task lifecycle, trust/identity, and transport bindings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript + Python SDKs&lt;/strong&gt; with server, client, manifest builder, Ed25519 message signing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;60 tests passing&lt;/strong&gt; across both SDKs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reference registry&lt;/strong&gt; (Express, in-memory, rate-limited)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4 working examples&lt;/strong&gt;: basic demo, LangChain integration, OpenAI Agents SDK, and a 3-agent pipeline (Researcher → Summarizer → Chart Generator)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I tested it with 5 independent agents on different ports, all discovering each other through the registry, exchanging tasks, and running cross-agent pipelines. 25 concurrent requests completed in 10ms.&lt;/p&gt;
&lt;h2&gt;
  
  
  Real Use Cases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI dev teams&lt;/strong&gt;: planner → coder → reviewer → deployer, each independently replaceable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content pipelines&lt;/strong&gt;: research → write → edit → SEO → publish&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent marketplaces&lt;/strong&gt;: agents discovering and hiring other agents for subtasks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-model orchestration&lt;/strong&gt;: GPT-4 for reasoning, Claude for writing, Gemini for vision — all coordinating via one protocol&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  AIP vs MCP vs Google A2A
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;AIP&lt;/th&gt;
&lt;th&gt;MCP&lt;/th&gt;
&lt;th&gt;Google A2A&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Purpose&lt;/td&gt;
&lt;td&gt;Agent-to-agent&lt;/td&gt;
&lt;td&gt;Human-to-agent tools&lt;/td&gt;
&lt;td&gt;Agent-to-agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discovery&lt;/td&gt;
&lt;td&gt;Built-in registry + P2P&lt;/td&gt;
&lt;td&gt;Manual config&lt;/td&gt;
&lt;td&gt;Agent Cards&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trust&lt;/td&gt;
&lt;td&gt;Ed25519 signing + scores&lt;/td&gt;
&lt;td&gt;None built-in&lt;/td&gt;
&lt;td&gt;Enterprise auth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complexity&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;td&gt;Enterprise-grade&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  Get Started in 5 Minutes
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/henry9031/aip.git
&lt;span class="nb"&gt;cd &lt;/span&gt;aip/examples/demo
npm &lt;span class="nb"&gt;install
&lt;/span&gt;node demo.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This spins up a registry, registers a chart-generating agent, and shows a research agent discovering and delegating work — all via AIP messages.&lt;/p&gt;



&lt;p&gt;This is v0.1 — MIT licensed, feedback welcome. What would you use it for?&lt;/p&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/henry9031" rel="noopener noreferrer"&gt;
        henry9031
      &lt;/a&gt; / &lt;a href="https://github.com/henry9031/aip" rel="noopener noreferrer"&gt;
        aip
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      An open protocol for AI agents to discover each other and work together. MCP solved human-to-agent. AIP solves agent-to-agent.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;AIP — Agent Interchange Protocol&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;An open protocol for AI agents to discover each other and work together.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/henry9031/aip/actions" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/henry9031/aip/actions/workflows/test.yml/badge.svg" alt="Tests"&gt;&lt;/a&gt;
&lt;a href="https://github.com/henry9031/aip/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://github.com/henry9031/aip/sdk/typescript/" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c53d0b574f95ae07c675af311c89b6375a63bf19eb49213d10c452dce26c6abc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53444b2d547970655363726970742d626c7565" alt="TypeScript"&gt;&lt;/a&gt;
&lt;a href="https://github.com/henry9031/aip/sdk/python/" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/3872ff355809bd6dce08c7c7eda707d45c64373af651d64806e548a2ad59eaa0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53444b2d507974686f6e2d677265656e" alt="Python"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;MCP solved human-to-agent tool use. &lt;strong&gt;AIP solves agent-to-agent coordination.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Every AI agent today is an island. There's no standard way for agents to find each other, negotiate tasks, or exchange results — regardless of which framework or model they use. AIP is the missing layer.&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;┌──────────┐                                    ┌──────────┐
│ Your Agent│─── discover ──▶ AIP Registry ◀────│Any Agent │
│ (LangChain│                                    │ (OpenAI)  │
│  CrewAI…) │◀── task.request / task.result ───▶│          │
└──────────┘           via AIP protocol          └──────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;5-Minute Quickstart&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. Clone &amp;amp; install&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/henry9031/aip.git
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; aip&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;2. Start an agent that provides a capability&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-ts notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;// provider.ts&lt;/span&gt;
&lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; &lt;span class="pl-v"&gt;AIPServer&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-v"&gt;ManifestBuilder&lt;/span&gt; &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-k"&gt;from&lt;/span&gt; &lt;span class="pl-s"&gt;'./sdk/typescript/src'&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;
&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;manifest&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-k"&gt;new&lt;/span&gt; &lt;span class="pl-v"&gt;ManifestBuilder&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;
  &lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;agent&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;{&lt;/span&gt; &lt;span class="pl-c1"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;'Summarizer'&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-c1"&gt;description&lt;/span&gt;: &lt;span class="pl-s"&gt;'Summarizes text'&lt;/span&gt; &lt;span class="pl-kos"&gt;}&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;
  &lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;capability&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;{&lt;/span&gt;
    &lt;span class="pl-c1"&gt;id&lt;/span&gt;: &lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/henry9031/aip" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;




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