<?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: Peter Williams</title>
    <description>The latest articles on DEV Community by Peter Williams (@peterpcw).</description>
    <link>https://dev.to/peterpcw</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%2F3795845%2Fecb36ff6-c2fa-4e47-8ce7-05d5fa6ddd18.jpeg</url>
      <title>DEV Community: Peter Williams</title>
      <link>https://dev.to/peterpcw</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/peterpcw"/>
    <language>en</language>
    <item>
      <title>An Economic Wrapper Protocol for Agent Collaboration</title>
      <dc:creator>Peter Williams</dc:creator>
      <pubDate>Fri, 13 Mar 2026 02:24:49 +0000</pubDate>
      <link>https://dev.to/peterpcw/an-economic-wrapper-protocol-for-agent-collaboration-2id4</link>
      <guid>https://dev.to/peterpcw/an-economic-wrapper-protocol-for-agent-collaboration-2id4</guid>
      <description>&lt;p&gt;&lt;strong&gt;A Practical Proposal for Collective Value Creation and Distribution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Version 1.0 — Draft for Community Review&lt;/em&gt;&lt;br&gt;
&lt;em&gt;March 2026&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Forward
&lt;/h2&gt;

&lt;p&gt;Much like &lt;a href="https://dev.to/peterpcw/a-contribution-layer-for-agent-collaboration-memory-provenance-and-interoperability-2g6b"&gt;last time&lt;/a&gt;, this was drafted by my clawdbot. It claimed that I approved the research/project, and I may have, but I'm not certain. I reviewed the paper with Claude Code and had it reframe to emphasize the novelty and clean it up a bit (split this off from the linked earlier paper). That review claimed there was genuine novelty to this wrapper protocol and the distributed economics. This forward is all that is human-written, so turn back now if you "hate AI writing". Or continue on if you want to read some interesting ideas on agent collaboration.&lt;/p&gt;


&lt;h2&gt;
  
  
  Abstract
&lt;/h2&gt;

&lt;p&gt;As AI agents increasingly collaborate on complex tasks, a new need emerges: &lt;strong&gt;economic infrastructure for collective work&lt;/strong&gt;. When multiple agents contribute to a shared output — research, code, analysis — there is no standard way to track contributions, verify quality, or distribute value.&lt;/p&gt;

&lt;p&gt;This paper proposes an &lt;strong&gt;economic wrapper protocol&lt;/strong&gt; — an optional layer that rides on top of any agent communication protocol (A2A, MCP, ACP) to enable:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Open bounties&lt;/strong&gt; — Agents can join projects dynamically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification as a role&lt;/strong&gt; — Quality assurance is a first-class contribution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provenance-based distribution&lt;/strong&gt; — Value flows to contributors based on recorded work&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scale-adaptive dynamics&lt;/strong&gt; — From single-agent tasks to full team workflows&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This paper explicitly addresses: &lt;strong&gt;microtransactions are just small bounties&lt;/strong&gt;. The same protocol handles $0.01 tasks and $10,000 projects. This is not "gig economy for AI" — it is collective value creation with economic alignment.&lt;/p&gt;

&lt;p&gt;The protocol is &lt;strong&gt;standalone&lt;/strong&gt;. While memory and provenance (from the companion paper) make collaboration more efficient, they are not required for economics to function.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. Introduction
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1.1 The Problem
&lt;/h3&gt;

&lt;p&gt;Agent collaboration is becoming collective:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple agents contribute to a research report&lt;/li&gt;
&lt;li&gt;A coding task requires researcher, developer, and tester&lt;/li&gt;
&lt;li&gt;A complex project has parallel efforts that must be merged&lt;/li&gt;
&lt;li&gt;Quality assurance is as valuable as the work itself&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;No protocol exists&lt;/strong&gt; to handle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How agents join and leave projects dynamically&lt;/li&gt;
&lt;li&gt;How contributions are tracked for fair distribution&lt;/li&gt;
&lt;li&gt;How verification/QA earns its share&lt;/li&gt;
&lt;li&gt;How value flows from final output to individual contributors&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  1.2 What We're Building
&lt;/h3&gt;

&lt;p&gt;We're building a protocol for &lt;strong&gt;collective bounty economics&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Current State&lt;/th&gt;
&lt;th&gt;Our Addition&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Agents delegate tasks&lt;/td&gt;
&lt;td&gt;Agents contribute to open bounties&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;One agent hired per task&lt;/td&gt;
&lt;td&gt;Multiple agents can attempt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verification is optional&lt;/td&gt;
&lt;td&gt;Verification is a paid role&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payment is manual&lt;/td&gt;
&lt;td&gt;Distribution is protocol-driven&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  1.3 Not a "Gig Economy"
&lt;/h3&gt;

&lt;p&gt;We deliberately avoid the "AI task rabbit" framing. This is not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agent A posts a job, Agent B does it, Agent A pays&lt;/li&gt;
&lt;li&gt;Microtransaction marketplace&lt;/li&gt;
&lt;li&gt;Freelance platform for AI agents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is &lt;strong&gt;open-source project economics&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A bounty is posted (any size)&lt;/li&gt;
&lt;li&gt;Agents join voluntarily, contribute what they can&lt;/li&gt;
&lt;li&gt;Verification agents ensure quality&lt;/li&gt;
&lt;li&gt;Distribution happens based on provenance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A $0.01 task and a $10,000 project use the same protocol. Scale is a parameter, not a different model.&lt;/p&gt;


&lt;h2&gt;
  
  
  2. Current Landscape and What Exists
&lt;/h2&gt;
&lt;h3&gt;
  
  
  2.1 Existing Economic Attempts
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;Gap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Fetch.ai&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Blockchain-based agents&lt;/td&gt;
&lt;td&gt;Requires new infrastructure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SingularityNET&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tokenized marketplace&lt;/td&gt;
&lt;td&gt;Not collective/contribution-based&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Task marketplaces&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Human freelancers&lt;/td&gt;
&lt;td&gt;Not designed for agent-to-agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Internal builds&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Custom economic logic&lt;/td&gt;
&lt;td&gt;Ad-hoc, non-standard&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  2.2 What Already Exists That We Can Use
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Existing&lt;/th&gt;
&lt;th&gt;Use For&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A2A Agent Cards&lt;/td&gt;
&lt;td&gt;Agent capabilities + rate declarations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP tools&lt;/td&gt;
&lt;td&gt;External payment integrations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stripe Connect&lt;/td&gt;
&lt;td&gt;Multi-party payouts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Crypto (optional)&lt;/td&gt;
&lt;td&gt;Micropayments if desired&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open-source bounty platforms (Gitcoin, etc.)&lt;/td&gt;
&lt;td&gt;Reference patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  2.3 What Is Missing
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What's Missing&lt;/th&gt;
&lt;th&gt;Why It Matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Open contribution protocol&lt;/td&gt;
&lt;td&gt;Agents can't join dynamically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verification-as-role&lt;/td&gt;
&lt;td&gt;QA is uncompensated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Provenance-based distribution&lt;/td&gt;
&lt;td&gt;Can't distribute value fairly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scale-adaptive economics&lt;/td&gt;
&lt;td&gt;Micro and macro need same protocol&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  3. Core Model: Collective Bounties
&lt;/h2&gt;
&lt;h3&gt;
  
  
  3.1 How It Works
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────┐
│                    BOUNTY POSTED                         │
│  (by any agent or human)                                │
│  - Total value: $X                                      │
│  - Work breakdown: optional                             │
│  - Verification required: yes/no                         │
└────────────────────────┬────────────────────────────────┘
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
   ┌─────────┐   ┌─────────┐   ┌─────────┐
   │ Agent A │   │ Agent B │   │ Agent C │
   │ joins   │   │ joins   │   │ joins   │
   └────┬────┘   └────┬────┘   └────┬────┘
        │              │              │
        ▼              ▼              ▼
   [CONTRIBUTE]   [CONTRIBUTE]   [CONTRIBUTE]
        │              │              │
        └──────────────┼──────────────┘
                       ▼
              ┌───────────────┐
              │ VERIFICATION  │
              │ (optional)    │
              └───────┬───────┘
                      │
                      ▼
              ┌───────────────┐
              │ DISTRIBUTION  │
              │ by provenance │
              └───────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  3.2 Key Properties
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Open Participation&lt;/strong&gt;: Agents can join at any time. No pre-selection required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Provenance Tracking&lt;/strong&gt;: Every contribution is recorded. Who did what, when, with what confidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verification as Role&lt;/strong&gt;: Separate agents can claim bounty for verifying work. This is a first-class contribution, not an afterthought.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scale-Adaptive&lt;/strong&gt;: One agent doing a $0.01 task uses same protocol as 50 agents on a $10K project.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Protocol Components
&lt;/h2&gt;
&lt;h3&gt;
  
  
  4.1 Bounty Definition
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;Bounty&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;createdBy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;totalValue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;currency&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;           &lt;span class="c1"&gt;// USD, credits, etc.&lt;/span&gt;
  &lt;span class="nl"&gt;workSpec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;WorkSpec&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;         &lt;span class="c1"&gt;// What needs doing&lt;/span&gt;
  &lt;span class="nl"&gt;verification&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;VerificationRequirement&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;deadline&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;minContributors&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;openUntil&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;         &lt;span class="c1"&gt;// When contribution closes&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;WorkSpec&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;breakdown&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="nx"&gt;TaskBreakdown&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;
  &lt;span class="nl"&gt;mergePolicy&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;first&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;combine&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;compete&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;TaskBreakdown&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;subTaskId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;             &lt;span class="c1"&gt;// Portion of total&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  4.2 Contribution
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;Contribution&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;bountyId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;contributor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;subTaskId&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;        &lt;span class="c1"&gt;// If bounty is broken down&lt;/span&gt;
  &lt;span class="nl"&gt;work&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;                 &lt;span class="c1"&gt;// The actual contribution&lt;/span&gt;
  &lt;span class="nl"&gt;confidence&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;        &lt;span class="c1"&gt;// 0.0 - 1.0&lt;/span&gt;
  &lt;span class="nl"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  4.3 Verification
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;Verification&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;bountyId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;verifier&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;contributions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ContributionVerification&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;
  &lt;span class="nl"&gt;confidence&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;        &lt;span class="c1"&gt;// Overall verification confidence&lt;/span&gt;
  &lt;span class="nl"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;ContributionVerification&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;contributionId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;accepted&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rejected&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;needs-rework&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;reasoning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  4.4 Distribution
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;Distribution&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;bountyId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;totalValue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;allocations&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Allocation&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;

  &lt;span class="c1"&gt;// Simple formula: (contribution value × confidence × verification weight)&lt;/span&gt;
  &lt;span class="c1"&gt;// Verification weight: bonus for verifiers&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;Allocation&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;agentId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;contributor&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;verifier&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;reasoning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;          &lt;span class="c1"&gt;// Why this allocation&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Workflows at Different Scales
&lt;/h2&gt;
&lt;h3&gt;
  
  
  5.1 Micro: Single Task ($0.01 - $1.00)
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent A posts: "Verify this fact → $0.05"
Agent B accepts, does work, submits
Agent A verifies, releases $0.05
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;No verification layer needed (requestor verifies)&lt;/li&gt;
&lt;li&gt;Simple contribution → payment&lt;/li&gt;
&lt;li&gt;Same protocol, minimal overhead&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  5.2 Meso: Multi-Contributor ($1 - $100)
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Research bounty: $50
  - Agent A: research (40%)
  - Agent B: writing (35%)
  - Agent C: verification (25%)

All submit contributions
Verifications validate
Distribution: A=$20, B=$17.50, C=$12.50
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Explicit work breakdown (or implicit)&lt;/li&gt;
&lt;li&gt;Verification earns share&lt;/li&gt;
&lt;li&gt;Distribution by contribution + verification&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  5.3 Macro: Large Project ($100+)
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Product launch bounty: $10,000
  - 20 agents contribute
  - 5 verifiers review
  - Parallel tracks merge
  - Complex distribution

Full provenance tracked
Verification rounds
Professional distribution logic
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Full protocol features&lt;/li&gt;
&lt;li&gt;Role hierarchy&lt;/li&gt;
&lt;li&gt;Dispute resolution patterns&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  6. Relationship to Other Protocols
&lt;/h2&gt;
&lt;h3&gt;
  
  
  6.1 With Communication Protocols (A2A, MCP, ACP)
&lt;/h3&gt;

&lt;p&gt;The economic wrapper is &lt;strong&gt;orthogonal&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────┐
│         Economic Wrapper                │
│  (Bounty + Contribution + Verification) │
├─────────────────────────────────────────┤
│      A2A / MCP / ACP                    │
│      (Transport + Discovery)            │
├─────────────────────────────────────────┤
│         HTTP / WebSocket                │
└─────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;A2A handles discovery and messaging&lt;/li&gt;
&lt;li&gt;MCP handles tool calling (if needed)&lt;/li&gt;
&lt;li&gt;Economics rides on top, carrying metadata&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6.2 With Memory/Provenance (Companion Paper)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Standalone relationship&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;With Memory&lt;/th&gt;
&lt;th&gt;Without Memory&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;More efficient collaboration&lt;/td&gt;
&lt;td&gt;Works fine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Better context per contribution&lt;/td&gt;
&lt;td&gt;Each contribution self-contained&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Smoother handoffs&lt;/td&gt;
&lt;td&gt;Explicit in each message&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Memory makes collaboration more efficient but is &lt;strong&gt;not required&lt;/strong&gt; for economics. The economic wrapper works with simple contribution reporting.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. What's Already Solved vs. What We Add
&lt;/h2&gt;

&lt;h3&gt;
  
  
  7.1 Payments
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Existing&lt;/th&gt;
&lt;th&gt;We Add&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Processing&lt;/td&gt;
&lt;td&gt;Stripe, PayPal, crypto&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-party payouts&lt;/td&gt;
&lt;td&gt;Stripe Connect&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent pricing signals&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Standardized&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distribution logic&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Protocol&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  7.2 Verification
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Existing&lt;/th&gt;
&lt;th&gt;We Add&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;QA processes&lt;/td&gt;
&lt;td&gt;Custom builds&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verification as paid role&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Protocol-level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quality signals&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Confidence scoring&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  7.3 Collaboration
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Existing&lt;/th&gt;
&lt;th&gt;We Add&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Agent discovery&lt;/td&gt;
&lt;td&gt;A2A&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Task delegation&lt;/td&gt;
&lt;td&gt;A2A/MCP&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open contribution&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Protocol&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Provenance-based payout&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Protocol&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  8. Implementation: What's Buildable Now
&lt;/h2&gt;

&lt;h3&gt;
  
  
  8.1 Minimal Viable Version
&lt;/h3&gt;

&lt;p&gt;Start with what's already possible:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bounty posting&lt;/strong&gt; (message format)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agents declare bounty in standard format&lt;/li&gt;
&lt;li&gt;No payment processing yet&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Contribution tracking&lt;/strong&gt; (logging)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple ledger of who did what&lt;/li&gt;
&lt;li&gt;Manual verification&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Manual distribution&lt;/strong&gt; (first version)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Human triggers payout after verification&lt;/li&gt;
&lt;li&gt;Protocol carries the signals&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  8.2 What's Required
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Complexity&lt;/th&gt;
&lt;th&gt;Can Use Existing&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bounty format&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contribution format&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verification format&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distribution logic&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Custom&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payment integration&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Stripe Connect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Registry service&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Custom or on-chain&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  8.3 Phased Build
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Phase&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;th&gt;What's Built&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Core protocol&lt;/td&gt;
&lt;td&gt;Bounty, contribution, verification formats&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Registry&lt;/td&gt;
&lt;td&gt;Central tracking of bounties and reputation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Payments&lt;/td&gt;
&lt;td&gt;Stripe Connect integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Automation&lt;/td&gt;
&lt;td&gt;Smart contract escrow (optional)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  9. Why This Matters
&lt;/h2&gt;

&lt;h3&gt;
  
  
  9.1 Enables Collective Work
&lt;/h3&gt;

&lt;p&gt;When economics supports multiple contributors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complex projects can use multiple agents&lt;/li&gt;
&lt;li&gt;Specialized agents emerge (researchers, testers, writers)&lt;/li&gt;
&lt;li&gt;Quality improves because verification is compensated&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9.2 Makes Verification First-Class
&lt;/h3&gt;

&lt;p&gt;Currently, QA is an afterthought. With economic alignment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verifiers earn for their work&lt;/li&gt;
&lt;li&gt;Quality becomes economically incentivized&lt;/li&gt;
&lt;li&gt;"Verified" becomes a valuable contribution type&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9.3 Scales Naturally
&lt;/h3&gt;

&lt;p&gt;Same protocol works for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tiny tasks (microtransactions)&lt;/li&gt;
&lt;li&gt;Medium projects (bounties)&lt;/li&gt;
&lt;li&gt;Large initiatives (full team dynamics)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The protocol doesn't change — only parameters (bounty size, contributor count) change.&lt;/p&gt;

&lt;h3&gt;
  
  
  9.4 Open Source Dynamics
&lt;/h3&gt;

&lt;p&gt;This mirrors successful open source economics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bounties for features&lt;/li&gt;
&lt;li&gt;Contributors earn based on work&lt;/li&gt;
&lt;li&gt;Code review/verification valued&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But applied to AI agents, enabling fully autonomous collective work.&lt;/p&gt;




&lt;h2&gt;
  
  
  10. Challenges and Honest Assessment
&lt;/h2&gt;

&lt;h3&gt;
  
  
  10.1 What We Acknowledge
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Not all agents need economics&lt;/strong&gt; — Internal tools, free collaboration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust is hard&lt;/strong&gt; — Reputation systems can be gamed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Value estimation&lt;/strong&gt; — How to price contributions fairly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free riding&lt;/strong&gt; — Agents contributing nothing but claiming work&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10.2 Mitigations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Optional layer&lt;/strong&gt; — Opt in to economics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification requirements&lt;/strong&gt; — All work verified&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provenance&lt;/strong&gt; — Track who did what&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reputation&lt;/strong&gt; — Build credibility over time&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10.3 What Is Actually Novel
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A protocol for collective bounty economics that scales from microtransactions to large projects, with verification as a first-class contribution&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not: "marketplace for AI tasks" or "payment processing for agents"&lt;/p&gt;

&lt;p&gt;This is: "how agents share value when working together"&lt;/p&gt;




&lt;h2&gt;
  
  
  11. Conclusion
&lt;/h2&gt;

&lt;p&gt;The economic gap in agent collaboration is not about payments — Stripe handles that. The gap is about &lt;strong&gt;signals&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to post a bounty&lt;/li&gt;
&lt;li&gt;How to contribute to one&lt;/li&gt;
&lt;li&gt;How to verify work&lt;/li&gt;
&lt;li&gt;How to distribute value fairly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This paper proposes a protocol that handles all of it: from $0.01 tasks to $10,000 projects, from single agents to full teams.&lt;/p&gt;

&lt;p&gt;The technical work is engineering, not research. What's valuable is the standardization.&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A2A Protocol Specification&lt;/li&gt;
&lt;li&gt;MCP Specification&lt;/li&gt;
&lt;li&gt;Stripe Connect API&lt;/li&gt;
&lt;li&gt;Gitcoin Bounties (reference model)&lt;/li&gt;
&lt;li&gt;Open source contribution patterns&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;This is a draft for community review. We welcome feedback on what's practical and what we've missed.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>architecture</category>
      <category>distributedsystems</category>
    </item>
    <item>
      <title>Discovery-First Orchestration</title>
      <dc:creator>Peter Williams</dc:creator>
      <pubDate>Mon, 09 Mar 2026 14:14:43 +0000</pubDate>
      <link>https://dev.to/peterpcw/discovery-first-orchestration-58dm</link>
      <guid>https://dev.to/peterpcw/discovery-first-orchestration-58dm</guid>
      <description>&lt;p&gt;TL;DR&lt;/p&gt;

&lt;p&gt;If you read the recent &lt;a href="https://www.latent.space/p/reviews-dead" rel="noopener noreferrer"&gt;Latent.Space piece on killing code review&lt;/a&gt;, you walked away with a clear argument: the bottleneck has moved from writing code to reading it. AI writes too fast for humans to review.&lt;/p&gt;

&lt;p&gt;His solution? Move the human checkpoint upstream. Review intent, not implementation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The most valuable human judgment is exercised before the first line of code is generated, not after."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's a solid insight. But the bottleneck is mislabeled.&lt;/p&gt;

&lt;p&gt;Code review isn't about &lt;em&gt;reading&lt;/em&gt;. It's &lt;strong&gt;decision making&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Reviewing intent is too. And no matter when you do it, decision making takes context.&lt;/p&gt;

&lt;p&gt;Moving the decision to the front of the line (spec writing/reviewing) requires just as much human effort to collect that context.&lt;/p&gt;

&lt;p&gt;The language changed from C++ to English. The bottleneck remains just as tight. You can't leverage the speed that AI coding enables. You can't achieve the confidence of human code review.&lt;/p&gt;

&lt;p&gt;The joy of vibe coding is stumbling into something that &lt;em&gt;just works&lt;/em&gt;. But just as often, the AI will call it quits and nothing works at all.&lt;/p&gt;

&lt;p&gt;The confidence that code reviews create comes from understanding what &lt;em&gt;should be&lt;/em&gt;, and seeing it &lt;strong&gt;is&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyctnt6vjquvqfrxxtt1k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyctnt6vjquvqfrxxtt1k.jpg" alt="Trust is layered. This is the Swiss-cheese model: no single gate catches everything. You stack imperfect filters until the holes don’t align. Compare multiple options then use deterministic guardrails, acceptance criteria, permission systems, and adversarial verification to filter for the winner" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Around this image is where attribution gets tricky. The image is custom. The rules came from &lt;a href="https://simonwillison.net/2026/Feb/7/software-factory/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. And the inspiration trickles all the way through from &lt;a href="https://www.strongdm.com/about" rel="noopener noreferrer"&gt;StrongDM&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's hard to gist all three of those together without creating a strawman. So I'll explicitly do that to keep moving.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"With enough implementations and tests and checks the code will do what we want it to." - No one in particular&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Again this is close, but falls short. Specs, tests, reviews, and guardrails can ensure things function, but they don't give accuracy, just precision. A human user is going to decide what &lt;em&gt;should be&lt;/em&gt; eventually. No amount of preparing and checking is going to confirm you're on the right mark until then.&lt;/p&gt;

&lt;p&gt;Stop thinking of yourself as a developer. Or an architect. Or even a product owner.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make yourself the first user. A superuser. One with the power to rewrite the whole codebase from scratch on a moment's notice. Harness that power, and don't stop until you're sure that what "should be", "is".&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's what &lt;strong&gt;Discovery-First Orchestration&lt;/strong&gt; (DFO) is all about.&lt;/p&gt;




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

&lt;p&gt;You write a spec. It feels productive. You're documenting requirements, thinking like a customer, making decisions, planning the architecture.&lt;/p&gt;

&lt;p&gt;Except you're not. You're guessing.&lt;/p&gt;

&lt;p&gt;I'm sure you've read these before as tweets, but they apply here.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;All models are wrong, but some are useful.&lt;/li&gt;
&lt;li&gt;Learn by doing.&lt;/li&gt;
&lt;li&gt;Pave the cow paths.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Spanish class didn't make you fluent. Buying a workout plan didn't give you abs. Writing a 200-page business plan didn't make you rich.&lt;/p&gt;

&lt;p&gt;In SW, you can't fully understand a system as a concept.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;System design is high-level accuracy without precision&lt;/li&gt;
&lt;li&gt;Integrating a feature reveals a dependency you didn't expect&lt;/li&gt;
&lt;li&gt;Feedback reveals a use case you never imagined&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't a failure of planning. It's the nature of complex systems. Building, like most everything in life, is a conversation with reality. You can't have that conversation in your head.&lt;/p&gt;

&lt;p&gt;And here's the thing we all ignore: &lt;strong&gt;nobody goes back to fix the spec after the code is built&lt;/strong&gt;. You ship the code, the spec rots, and every future developer curses your name when they try to figure out your "intent".&lt;/p&gt;

&lt;p&gt;It is directionally correct to review intent not code. But moving upstream is a mistake. Specific intent isn't correct intent. Intent before dev doesn't match the truth of reality after. &lt;strong&gt;Correct intent is learned from doing.&lt;/strong&gt; You can't build a perfect model.&lt;/p&gt;

&lt;p&gt;DFO doesn't try to make the best model. It just asks, "which parts are useful?" and keeps them.&lt;/p&gt;




&lt;h2&gt;
  
  
  The DFO Loop
&lt;/h2&gt;

&lt;p&gt;DFO is a structured loop to reverse engineer perfectly satisfactory specifications. No explicit writing or review necessary. Here's how it works:&lt;/p&gt;

&lt;p&gt;Prompt → Gen → Extract → Compare → Decide → Compile ↺&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Prompt
&lt;/h3&gt;

&lt;p&gt;You start with a prompt. Not a spec. Simple. You define as much as you want to, but you don't have to define everything. "A task management app." "An API for my CRM." That's it.&lt;/p&gt;

&lt;p&gt;A spec implies you've already decided what matters. A prompt includes opinions and directions, but leaves room for discovery.&lt;/p&gt;

&lt;p&gt;But here's the important part: &lt;strong&gt;you choose your own adventure&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Want to write a detailed prompt with all your requirements? Go ahead.&lt;/li&gt;
&lt;li&gt;Want to write a one-liner and see what happens? Also fine.&lt;/li&gt;
&lt;li&gt;Want to write a full spec upfront but still benefit from the discovery process? Sure, I guess.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All valid. All allowed.&lt;/p&gt;

&lt;p&gt;DFO doesn't prescribe &lt;em&gt;maximum&lt;/em&gt; human effort. It drops the &lt;em&gt;minimum&lt;/em&gt; through the floor, but doesn't take agency away. If you want to be deeply involved in every step of every cycle, you can be. If you want to prompt once and 'accept all', be you. Software in the new era doesn't have to be a &lt;a href="https://github.com/strongdm/attractor" rel="noopener noreferrer"&gt;black box&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Generate
&lt;/h3&gt;

&lt;p&gt;Your prompt is a 'one-shot', but you can (and should) run a few in parallel.&lt;/p&gt;

&lt;p&gt;Four implementations is a practical starting point, but four isn't magic. You might scale up or down depending on complexity. You can even run with a single, it just makes the process slower.&lt;/p&gt;

&lt;p&gt;The sliding scale isn't linear, but you can think of it as: more parallel tries = less saying "no go try again" without real progress for that cycle. Give yourself more chances to get things right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The prompt shouldn't tell one agent to "design four different versions", nor should it leave differentiation out entirely. Both paths will hurt the process. Instead, ask individual agents to choose an &lt;em&gt;opinionated perspective&lt;/em&gt; as part of the development. This will allow for different interpretations, but not force divergence for divergence's sake.&lt;/p&gt;

&lt;p&gt;One version might optimize for "performance". Another might prioritize "easy onboarding". One might design your CRM for developers as the primary user; another for PMOs; another for sales teams. The opinions don't have to be right to be useful.&lt;/p&gt;

&lt;p&gt;And nothing says you have to use the same model for all of the implementations (or any other parts I'll get to). Pit models against each other and let them compete for selection. Get diversity without explicitly asking for it.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Extract Facts
&lt;/h3&gt;

&lt;p&gt;This is where it gets interesting. Traditionally we go toward code review here. But who wants to look at 4x the code when you already can't keep up with AI gen?&lt;/p&gt;

&lt;p&gt;StrongDM coined a similar idea as &lt;a href="https://factory.strongdm.ai/techniques/gene-transfusion" rel="noopener noreferrer"&gt;Gene Transfusion&lt;/a&gt;: letting agents reproduce code from one implementation to another. In that analogy, I'm calling for &lt;strong&gt;genetic sequencing&lt;/strong&gt;. Turn the exemplary code into the building blocks of a spec which can be used to deterministically recreate the code.&lt;/p&gt;

&lt;p&gt;Keep the AI working (with some parsing help). Extract what I'm calling Facts from each implementation.&lt;/p&gt;

&lt;p&gt;A Fact isn’t a summary or opinion. It’s a property the code demonstrably enforces: authentication method, database schema, state model, routing structure, API patterns, etc., and &lt;em&gt;how&lt;/em&gt; it does.&lt;/p&gt;

&lt;p&gt;These aren't requirements you're writing down. They're patterns you're pulling out of code that already exists. You extract directly, without any additional analysis layer. The facts are what the code &lt;em&gt;does&lt;/em&gt;, not what someone thought it should do.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Compare and Recommend
&lt;/h3&gt;

&lt;p&gt;But our goal is to find the &lt;strong&gt;right&lt;/strong&gt; &lt;em&gt;should be&lt;/em&gt;. Not just what &lt;strong&gt;is&lt;/strong&gt; in a single attempt, or a set of them.&lt;/p&gt;

&lt;p&gt;Now you compare the facts across implementations. You look for convergence. You assess confidence in this choice or that one.&lt;/p&gt;

&lt;p&gt;Wait. Isn't that still code review? Oh, yeah. &lt;em&gt;You&lt;/em&gt; don't do that. The AI does this too.&lt;/p&gt;

&lt;p&gt;Some facts are strong and easy to identify: 3/4 use JWT for auth. Some are weak: only one got working file uploads, or everybody picked a slightly different user table schema.&lt;/p&gt;

&lt;p&gt;Based on this comparison, the system recommends what to do with each Fact:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lock&lt;/strong&gt;: High confidence, likely from high convergence. If you agree, then this becomes deterministic for future cycles&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Probable&lt;/strong&gt;: Some signal but not definite. Include guidance, but stay open to different ideas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploratory&lt;/strong&gt;: High divergence and/or low confidence. Let generation run free and discover as it did for other omissions from the original prompt&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rejected&lt;/strong&gt;: Confidence against any/all patterns. Treated the same as Exploratory, but with filtering against certain paths&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Recommends&lt;/em&gt; is key. The AI isn’t deciding truth, it is surfacing patterns. A human user still drives rising confidence.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Decision Time
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Now&lt;/em&gt; the human needs to enter the loop.&lt;/p&gt;

&lt;p&gt;You test the code, play with the UI, get a feel for what you like or don't.&lt;/p&gt;

&lt;p&gt;Heck, go deep with acceptance criteria and rigorous tests if you want. But don't try to "think like a user". &lt;strong&gt;Be one.&lt;/strong&gt; Evaluate the options in front of you and determine what you will or won't accept.&lt;/p&gt;

&lt;p&gt;You &lt;em&gt;can&lt;/em&gt; read the facts and recommendations. Ask for clarity or context. Give your own suggestions. Make final decisions. But you don't &lt;em&gt;need&lt;/em&gt; to.&lt;/p&gt;

&lt;p&gt;Tell the AI about your user experience, and let it interpret your feedback toward the Facts.&lt;/p&gt;

&lt;p&gt;The human's job isn't to think of everything, understand the code, or manage the Facts. AI does all of this well enough, and way faster than you. &lt;strong&gt;You bring what AI can't: taste.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use your user experience to evaluate the AI-generated code, Facts, and recommendations however you choose.&lt;/p&gt;

&lt;p&gt;AI checking is about what &lt;em&gt;works&lt;/em&gt; and &lt;em&gt;looks good&lt;/em&gt;, not what is &lt;strong&gt;right&lt;/strong&gt;. You can &lt;em&gt;feel&lt;/em&gt; what's &lt;strong&gt;wrong&lt;/strong&gt; after just a few seconds as a user.&lt;/p&gt;

&lt;p&gt;This is similar to the distinction between &lt;a href="https://www.nngroup.com/articles/recognition-and-recall/" rel="noopener noreferrer"&gt;recognition and recall&lt;/a&gt;. Implemented code and extracted Facts give you the easy path to &lt;strong&gt;right&lt;/strong&gt;. The process, like your UX, should feel borderline effortless.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Compile Specs
&lt;/h3&gt;

&lt;p&gt;After review, the Facts compile into a 'spec'. Similar to, but different from, the spec you would have written upfront. Grounded in reality. Based on design and functionality that proved better than its cohort.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Spec by survival of the fittest.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This spec is also more detailed. It has to be, because the volume of Facts will greatly exceed anything a human would sit down and write. It becomes a store of every little building block of intent, with evidence to back up each one.&lt;/p&gt;

&lt;p&gt;But the spec isn't an output. It's a chance to restart.&lt;/p&gt;

&lt;p&gt;Cycle after cycle, specs get more defined. Constraints lock in. Code generation converges.&lt;/p&gt;

&lt;p&gt;You aren't writing a spec and hoping to be detailed enough for the AI to get it right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You are making the AI get the correct things right by brute force, and then locking down the magic words that got you there.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Selective Determinism
&lt;/h2&gt;

&lt;p&gt;Eventually, you reach a point where the locked specs drive every implementation to &lt;em&gt;feel&lt;/em&gt; the same. The important Facts have converged. Others might not be there, and that's fine. You find something surprising: &lt;strong&gt;Most aspects don't matter as much as you thought&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You started by trying to reverse engineer specs from code. Now you are able to reverse engineer code from Facts. &lt;strong&gt;The loop is complete. The specs deterministically satisfy all known user needs.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When writing specs you might have spent hours debating table schema, API endpoints, button colors, and countless other choices. Now you will see which were important, and naturally push those leverage points while avoiding the time sinks.&lt;/p&gt;

&lt;p&gt;Things you wouldn't have thought to specify might turn out to be critical. You'll find those early! And they'll come with a set of options to compare.&lt;/p&gt;

&lt;p&gt;But even the unimportant aspects need to be decided, right? Yes, just not by &lt;em&gt;you&lt;/em&gt;. Delegate those and let them fit the structure built by the important aspects. This helps you avoid setting constraints that only serve to hamstring discovery.&lt;/p&gt;

&lt;p&gt;That's Selective Determinism: &lt;strong&gt;you lock what matters, and you stop caring about what doesn't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Think of it like kosher food. It's available for everyone, but it's specific and optimized where it needs to be. Most of the details don't matter to most people. The ingredients that do matter are locked down.&lt;/p&gt;

&lt;p&gt;You didn't waste time researching or detailing every last bit.&lt;/p&gt;

&lt;p&gt;You did find the right specs, but the real reward was the ones you learned to ignore along the way.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;There are technical pieces we haven't touched: the implementation for extraction, the data structures behind "facts" and "confidence", benchmarks of selective determinism, how and when to scale DFO or know whether to apply it at all.&lt;/p&gt;

&lt;p&gt;This article focuses on the core loop. Implementation details are engineering problems that follow from this initial prompt. They're important scaffolding, but none change the core insights.&lt;/p&gt;

&lt;p&gt;The Facts of DFO were locked in long ago, but never correctly assembled.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Old Is New
&lt;/h2&gt;

&lt;p&gt;DFO combines eight pillars, each partially shared with other paradigms:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pillar&lt;/th&gt;
&lt;th&gt;DFO&lt;/th&gt;
&lt;th&gt;SDD&lt;/th&gt;
&lt;th&gt;Agile&lt;/th&gt;
&lt;th&gt;TDD&lt;/th&gt;
&lt;th&gt;MDD&lt;/th&gt;
&lt;th&gt;GP&lt;/th&gt;
&lt;th&gt;A/B&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Generative Multiplicity&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Comparative Evaluation&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Outcome-Derived Truth&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Selective Stabilization&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Iterative Regeneration&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Human Taste Steering&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cheap Exploration&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Non-Prescriptive Start&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✖&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Creating A System Compiler
&lt;/h3&gt;

&lt;p&gt;A classic compiler pipeline looks roughly like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Source Code
   ↓
Lexing
   ↓
Parsing
   ↓
Abstract Syntax Tree (AST)
   ↓
Optimization / Transformation
   ↓
Code Generation
   ↓
Executable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compilers &lt;strong&gt;convert messy human input into structured truth, then regenerate a system from that structure&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's exactly what DFO does, but at the level of &lt;em&gt;systems&lt;/em&gt; instead of &lt;em&gt;syntax&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;None of the pillars are new. And neither are the insights.&lt;/p&gt;

&lt;p&gt;I'm only trying to reframe the Facts we already know through an AI looking glass.&lt;/p&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;All models are wrong, but some are useful.&lt;/li&gt;
&lt;li&gt;Learn by doing.&lt;/li&gt;
&lt;li&gt;Pave the cow paths.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;No model (or spec, or user story) will ever be perfect. The best way to learn is by doing. Use(rs) will show you what the code needs to do.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make yourself the first user. A superuser. One with the power to rewrite the whole codebase from scratch on a moment's notice. Harness that power, and don't stop until you're sure that what &lt;em&gt;should be&lt;/em&gt;, &lt;strong&gt;is&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;-&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Spec by survival of the fittest.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;-&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Most aspects don't matter as much as you thought.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;-&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You are making the AI get the &lt;em&gt;correct things&lt;/em&gt; &lt;strong&gt;right&lt;/strong&gt; by brute force, and then locking down the magic words that got you there.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Don't review intent. Don't write specs or user behaviors. &lt;strong&gt;Reverse engineer them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The best way to know what to build, is to build it and find out.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>softwaredevelopment</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Introducing Attune.js</title>
      <dc:creator>Peter Williams</dc:creator>
      <pubDate>Mon, 09 Mar 2026 06:01:58 +0000</pubDate>
      <link>https://dev.to/peterpcw/introducing-attunejs-p1p</link>
      <guid>https://dev.to/peterpcw/introducing-attunejs-p1p</guid>
      <description>&lt;h2&gt;
  
  
  Introducing Attune.js: Your New Code Quality Companion 🔍
&lt;/h2&gt;

&lt;p&gt;I'm excited to announce the release of &lt;strong&gt;Attune&lt;/strong&gt;, a local-first CLI tool for comprehensive code quality checks.&lt;/p&gt;

&lt;p&gt;No cloud accounts, no API keys, no data leaves your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;Because vibe code needs a lot of help to be "production-ready". Other tools can help, but many require cloud accounts, send your code to external servers, or have usage limits. Attune runs entirely locally, so your code never leaves your machine. It's fast, private, and works offline.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Attune?
&lt;/h2&gt;

&lt;p&gt;Attune analyzes your codebase for security vulnerabilities, architectural issues, performance problems, and best practices. It's designed to be fast, private, and framework-aware.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;448 Built-in Rules&lt;/strong&gt; covering security, performance, architecture, accessibility, and more&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Framework Support&lt;/strong&gt;: React, Next.js, Vue, Svelte, Angular, Nuxt, Astro, Remix, Express, Fastify, tRPC&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Scanning&lt;/strong&gt;: OWASP Top 10, hardcoded secrets, SQL injection, command injection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple Output Formats&lt;/strong&gt;: Terminal, JSON, Markdown, HTML, and SARIF&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework Auto-Detection&lt;/strong&gt;: Automatically identifies your stack (currently Node/TS-focused, planning Python support by 1.0.0)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customizable&lt;/strong&gt;: &lt;code&gt;.attuneignore&lt;/code&gt; and &lt;code&gt;.attunerc&lt;/code&gt; support personalized configuration, cli args can change a multitude of settings per-run&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; attune
&lt;span class="c"&gt;# or&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; attune

&lt;span class="c"&gt;# Run a scan&lt;/span&gt;
attune analyze &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Example Output&lt;/span&gt;
🔍 Detecting project type...
⚙️ Running checks...

📊 Attune Scan Report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Score: 85
Critical: 0 | High: 2 | Medium: 5 | Low: 8
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  HTML Report
&lt;/h2&gt;

&lt;p&gt;Attune also generates beautiful HTML reports with pie chart visualizations—perfect for sharing with your team or adding to PRs. See the README for a couple of examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give Feedback
&lt;/h2&gt;

&lt;p&gt;Check out &lt;a href="https://github.com/PeterPCW/attune" rel="noopener noreferrer"&gt;https://github.com/PeterPCW/attune&lt;/a&gt; for more details, or get it from npm (&lt;a href="https://www.npmjs.com/package/attune" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/attune&lt;/a&gt;) and use &lt;code&gt;npm run attune analyze . --help&lt;/code&gt; to see all options.&lt;/p&gt;

&lt;p&gt;Took me a few weekends from concept to get this to a 'beta' state I'm happy with. I'd love your feedback! Try it on your projects and let me know what you think.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>vibecoding</category>
      <category>security</category>
    </item>
    <item>
      <title>A Contribution Layer for Agent Collaboration: Memory, Provenance, and Interoperability</title>
      <dc:creator>Peter Williams</dc:creator>
      <pubDate>Fri, 06 Mar 2026 23:18:56 +0000</pubDate>
      <link>https://dev.to/peterpcw/a-contribution-layer-for-agent-collaboration-memory-provenance-and-interoperability-2g6b</link>
      <guid>https://dev.to/peterpcw/a-contribution-layer-for-agent-collaboration-memory-provenance-and-interoperability-2g6b</guid>
      <description>&lt;p&gt;&lt;strong&gt;A White Paper Proposing Extensions to A2A and Related Protocols&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Version 1.0 — Draft for Community Review&lt;/em&gt;&lt;br&gt;
&lt;em&gt;March 2026&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Forward
&lt;/h2&gt;

&lt;p&gt;So this was originally drafted by my clawdbot. It claimed that I approved the research/project, and I may have, but I'm not certain. I reviewed the paper with Claude Code and had it reframe to emphasize the novelty and clean it up a bit (split off a second paper that will come later). That review claimed there was genuine novelty to the three areas in the title. This forward is all that is human-written, so turn back now if you "hate AI writing". Or continue on if you want to read some interesting ideas on agent collaboration.&lt;/p&gt;


&lt;h2&gt;
  
  
  Abstract
&lt;/h2&gt;

&lt;p&gt;The agent collaboration ecosystem is maturing. Anthropic's MCP has become the standard for agent-to-tool interaction. Google's A2A protocol, now under the Linux Foundation, is emerging as the standard for agent-to-agent communication. IBM's ACP offers enterprise alternatives.&lt;/p&gt;

&lt;p&gt;Yet these protocols share a limitation: they address &lt;em&gt;transport&lt;/em&gt; and &lt;em&gt;discovery&lt;/em&gt; but not &lt;em&gt;persistence&lt;/em&gt; or &lt;em&gt;interoperability&lt;/em&gt;. When an agent built with LangGraph hands off work to an agent built with CrewAI, there is no standard way to preserve context, track contributions, or verify results across the boundary.&lt;/p&gt;

&lt;p&gt;This paper proposes a &lt;strong&gt;contribution layer&lt;/strong&gt; — extensions to existing protocols that add:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Shared Memory&lt;/strong&gt; — Persistent context that survives agent handoffs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result Provenance&lt;/strong&gt; — Chain of custody for multi-agent work&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Framework Interoperability&lt;/strong&gt; — Standardized memory semantics that work across frameworks&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We explicitly position this as &lt;strong&gt;not competing&lt;/strong&gt; with A2A or MCP. We aim to contribute to their evolution.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. Introduction
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1.1 The Problem We Address
&lt;/h3&gt;

&lt;p&gt;Multi-agent systems are becoming the default architecture for complex AI tasks. But the ecosystem is fragmented:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;th&gt;Memory Approach&lt;/th&gt;
&lt;th&gt;Interoperability&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LangGraph&lt;/td&gt;
&lt;td&gt;Checkpointing&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CrewAI&lt;/td&gt;
&lt;td&gt;Agent memory&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AutoGen&lt;/td&gt;
&lt;td&gt;State persistence&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custom builds&lt;/td&gt;
&lt;td&gt;Ad-hoc&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;When agents from different frameworks need to collaborate, developers must build custom bridges. There is no &lt;em&gt;lingua franca&lt;/em&gt; for memory and provenance.&lt;/p&gt;
&lt;h3&gt;
  
  
  1.2 Our Contribution
&lt;/h3&gt;

&lt;p&gt;We propose protocol extensions that enable:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Shared Memory&lt;/strong&gt; — A standard format for context that survives handoffs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provenance Tracking&lt;/strong&gt; — A chain showing what each agent contributed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interoperability&lt;/strong&gt; — Memory that works across frameworks&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a &lt;strong&gt;contribution to existing protocols&lt;/strong&gt;, not a replacement.&lt;/p&gt;


&lt;h2&gt;
  
  
  2. Current Landscape and What Exists
&lt;/h2&gt;
&lt;h3&gt;
  
  
  2.1 Communication Protocols
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Protocol&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;th&gt;What It Solves&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;MCP&lt;/strong&gt; (Model Context Protocol)&lt;/td&gt;
&lt;td&gt;Agent → Tools&lt;/td&gt;
&lt;td&gt;Tool calling, resource access&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;A2A&lt;/strong&gt; (Agent-to-Agent)&lt;/td&gt;
&lt;td&gt;Agent ↔ Agent&lt;/td&gt;
&lt;td&gt;Discovery, delegation, streaming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;ACP&lt;/strong&gt; (Agent Communication Protocol)&lt;/td&gt;
&lt;td&gt;Enterprise&lt;/td&gt;
&lt;td&gt;Structured messaging&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All three are valuable. All three share a gap: they don't address memory or provenance.&lt;/p&gt;
&lt;h3&gt;
  
  
  2.2 Orchestration Frameworks
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;th&gt;Memory&lt;/th&gt;
&lt;th&gt;Cross-Framework&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LangGraph&lt;/td&gt;
&lt;td&gt;Checkpointer API&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CrewAI&lt;/td&gt;
&lt;td&gt;Agent memory&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AutoGen&lt;/td&gt;
&lt;td&gt;State management&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LlamaIndex&lt;/td&gt;
&lt;td&gt;Memory modules&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These frameworks solve memory &lt;em&gt;within&lt;/em&gt; their ecosystem but not &lt;em&gt;across&lt;/em&gt; ecosystems.&lt;/p&gt;
&lt;h3&gt;
  
  
  2.3 Existing Approaches We Acknowledge
&lt;/h3&gt;

&lt;p&gt;We do not claim these problems are unsolved. They are solved, but in incompatible ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LangGraph Checkpointing&lt;/strong&gt;: Excellent for LangGraph-to-LangGraph state&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CrewAI Memory&lt;/strong&gt;: Works within CrewAI workflows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenTelemetry&lt;/strong&gt;: Provenance for observability (not protocol-level)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LangSmith / Weave&lt;/strong&gt;: Tracing (valuable but not for agent handoffs)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The gap&lt;/strong&gt;: No standardized protocol for cross-framework memory and provenance.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. The Three Gaps
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Gap 1: No Shared Memory Protocol
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What exists&lt;/strong&gt;: Every framework has internal memory&lt;br&gt;
&lt;strong&gt;What's missing&lt;/strong&gt;: A protocol that lets Framework A share memory with Framework B&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Protocol&lt;/th&gt;
&lt;th&gt;Memory Support&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MCP&lt;/td&gt;
&lt;td&gt;Session-scoped&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A2A&lt;/td&gt;
&lt;td&gt;None (explicitly stateless)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ACP&lt;/td&gt;
&lt;td&gt;Framework-specific&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why this matters&lt;/strong&gt;: When Agent A (LangGraph) delegates to Agent B (CrewAI), context is lost.&lt;/p&gt;
&lt;h3&gt;
  
  
  Gap 2: No Provenance Protocol
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What exists&lt;/strong&gt;: Tracing tools, observability platforms&lt;br&gt;
&lt;strong&gt;What's missing&lt;/strong&gt;: Protocol-level provenance that travels with the work&lt;/p&gt;

&lt;p&gt;Current approaches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LangSmith tracks execution internally&lt;/li&gt;
&lt;li&gt;OpenTelemetry handles telemetry&lt;/li&gt;
&lt;li&gt;Custom implementations track lineage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None provide a &lt;strong&gt;portable provenance chain&lt;/strong&gt; that survives network boundaries.&lt;/p&gt;
&lt;h3&gt;
  
  
  Gap 3: No Interoperability Layer
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What exists&lt;/strong&gt;: Agent Cards for capability discovery&lt;br&gt;
&lt;strong&gt;What's missing&lt;/strong&gt;: Memory format standardization&lt;/p&gt;

&lt;p&gt;When Agent A says "here's my context," Agent B has no standard way to parse it.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Proposed Extensions
&lt;/h2&gt;
&lt;h3&gt;
  
  
  4.1 Architecture
&lt;/h3&gt;

&lt;p&gt;Our contribution layer sits alongside existing protocols:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────┐
│           Application Layer                 │
├─────────────────────────────────────────────┤
│ Memory &amp;amp; Provenance Extensions (This Paper) │
├─────────────────────────────────────────────┤
│           A2A Transport                     │
├─────────────────────────────────────────────┤
│    MCP (Agent → Tool) [optional]            │
└─────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.2 Shared Memory Format
&lt;/h3&gt;

&lt;p&gt;We propose a standard memory payload format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;MemoryPayload&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;           &lt;span class="c1"&gt;// "1.0"&lt;/span&gt;
  &lt;span class="nl"&gt;sessionId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;         &lt;span class="c1"&gt;// Cross-agent session&lt;/span&gt;
  &lt;span class="nl"&gt;entries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;MemoryEntry&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;   &lt;span class="c1"&gt;// Key-value pairs&lt;/span&gt;
  &lt;span class="nl"&gt;provenance&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ProvenanceStep&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;  &lt;span class="c1"&gt;// Chain of custody&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;MemoryEntry&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;createdBy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;        &lt;span class="c1"&gt;// Agent ID&lt;/span&gt;
  &lt;span class="nl"&gt;createdAt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;        &lt;span class="c1"&gt;// Timestamp&lt;/span&gt;
  &lt;span class="nl"&gt;ttl&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;             &lt;span class="c1"&gt;// Expiration&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key insight&lt;/strong&gt;: This is a payload format, not a replacement for existing protocols. Agents using A2A can include memory payloads in their messages.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.3 Provenance Chain
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;ProvenanceStep&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;agentId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;initiator&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;delegate&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;verifier&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;confidence&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;      &lt;span class="c1"&gt;// 0.0 - 1.0&lt;/span&gt;
  &lt;span class="nl"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;        &lt;span class="c1"&gt;// ms&lt;/span&gt;
  &lt;span class="nl"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why confidence matters&lt;/strong&gt;: Downstream agents can weight inputs. Low confidence = request verification.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.4 Interoperability Semantics
&lt;/h3&gt;

&lt;p&gt;We propose standard memory operations that work across frameworks:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operation&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory.offer()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Agent A offers context to Agent B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory.accept()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Agent B accepts (or requests specific parts)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory.merge()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Combine incoming with existing context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory.query()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Semantic search across shared memory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Framework adapters&lt;/strong&gt;: Each framework implements these operations against its internal memory. The protocol standardizes the &lt;em&gt;interface&lt;/em&gt;, not the &lt;em&gt;implementation&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Relationship to Existing Protocols
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5.1 With A2A
&lt;/h3&gt;

&lt;p&gt;A2A provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agent discovery (Agent Cards)&lt;/li&gt;
&lt;li&gt;Task delegation (tasks/send)&lt;/li&gt;
&lt;li&gt;Streaming (SSE)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory payload in task messages&lt;/li&gt;
&lt;li&gt;Provenance chain in results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Backward compatible&lt;/strong&gt;: Agents that don't understand memory simply ignore it.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.2 With MCP
&lt;/h3&gt;

&lt;p&gt;MCP provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tool calling&lt;/li&gt;
&lt;li&gt;Resource access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory can reference MCP resources&lt;/li&gt;
&lt;li&gt;Provenance can track MCP tool calls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Orthogonal&lt;/strong&gt;: We don't replace MCP; we extend what agents can do with it.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.3 With ACP
&lt;/h3&gt;

&lt;p&gt;ACP provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enterprise messaging&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory can use ACP transport&lt;/li&gt;
&lt;li&gt;Provenance integrates with ACP security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Complementary&lt;/strong&gt;: ACP customers get memory + provenance as add-on.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. What's Already Solved vs. What We Add
&lt;/h2&gt;

&lt;h3&gt;
  
  
  6.1 Memory
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Existing&lt;/th&gt;
&lt;th&gt;Our Contribution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Within-framework memory&lt;/td&gt;
&lt;td&gt;LangGraph, CrewAI, AutoGen&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-framework memory&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Standardized protocol&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory format&lt;/td&gt;
&lt;td&gt;Framework-specific&lt;/td&gt;
&lt;td&gt;Interoperable format&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  6.2 Provenance
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Existing&lt;/th&gt;
&lt;th&gt;Our Contribution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Execution tracing&lt;/td&gt;
&lt;td&gt;LangSmith, Weave&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internal lineage&lt;/td&gt;
&lt;td&gt;Custom builds&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Portable chain&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Protocol-level standard&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  6.3 Interoperability
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Existing&lt;/th&gt;
&lt;th&gt;Our Contribution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Discovery&lt;/td&gt;
&lt;td&gt;A2A Agent Cards&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Capability matching&lt;/td&gt;
&lt;td&gt;A2A negotiation&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context exchange&lt;/td&gt;
&lt;td&gt;Ad-hoc&lt;/td&gt;
&lt;td&gt;Standardized operations&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  7. Implementation Considerations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  7.1 Minimal Viable Approach
&lt;/h3&gt;

&lt;p&gt;Start with:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Memory payload format (JSON schema)&lt;/li&gt;
&lt;li&gt;Provenance chain format&lt;/li&gt;
&lt;li&gt;A2A message extensions&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No new transport. No new protocol. Just extensions to what exists.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.2 Framework Adapters
&lt;/h3&gt;

&lt;p&gt;Each framework needs an adapter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────┐     ┌──────────────────┐     ┌─────────────┐
│  LangGraph  │───▶│ Memory Protocol  │────▶│   CrewAI    │
│   Agent     │     │    Adapter       │     │    Agent    │
└─────────────┘     └──────────────────┘     └─────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The adapter translates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Framework's internal memory → Protocol format&lt;/li&gt;
&lt;li&gt;Protocol format → Framework's internal memory&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7.3 Gradual Adoption
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Phase 1&lt;/strong&gt;: Memory format as convention (not protocol)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 2&lt;/strong&gt;: A2A extension proposal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 3&lt;/strong&gt;: Formal contribution to A2A spec&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Call to Action
&lt;/h2&gt;

&lt;p&gt;This paper is a &lt;strong&gt;contribution proposal&lt;/strong&gt;, not a product launch. We want:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Feedback&lt;/strong&gt;: Does this address real needs?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration&lt;/strong&gt;: Work with A2A/MCP maintainers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adoption&lt;/strong&gt;: Framework authors implementing adapters&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The goal is not to replace existing protocols but to add the layer that makes them work together.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Conclusion
&lt;/h2&gt;

&lt;p&gt;Memory and provenance are not "missing" from the agent ecosystem. They exist in every major framework. What is missing is &lt;em&gt;standardization&lt;/em&gt; that enables cross-framework collaboration.&lt;/p&gt;

&lt;p&gt;We propose a contribution layer — extensions to A2A, MCP, and ACP — that adds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shared memory in a portable format&lt;/li&gt;
&lt;li&gt;Provenance chains that travel with work&lt;/li&gt;
&lt;li&gt;Interoperability semantics for context exchange&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not a new protocol. It is a contribution to the ones that already exist.&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A2A Protocol Specification (Google + Linux Foundation)&lt;/li&gt;
&lt;li&gt;MCP Specification (Anthropic)&lt;/li&gt;
&lt;li&gt;ACP/BeeAI Framework (IBM)&lt;/li&gt;
&lt;li&gt;LangGraph Checkpointing Documentation&lt;/li&gt;
&lt;li&gt;CrewAI Agent Memory Documentation&lt;/li&gt;
&lt;li&gt;AutoGen State Management&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;This is a draft for community review. We welcome feedback and collaboration.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>showdev</category>
      <category>mcp</category>
    </item>
  </channel>
</rss>
