<?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: Ryan McMillan</title>
    <description>The latest articles on DEV Community by Ryan McMillan (@ryanmcmillan).</description>
    <link>https://dev.to/ryanmcmillan</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%2F3834496%2F9ab514a3-4069-4522-86c7-e43c1686b69f.jpg</url>
      <title>DEV Community: Ryan McMillan</title>
      <link>https://dev.to/ryanmcmillan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ryanmcmillan"/>
    <language>en</language>
    <item>
      <title>The Coordination Problem Nobody Talks About When You Give AI Agents Real Work</title>
      <dc:creator>Ryan McMillan</dc:creator>
      <pubDate>Fri, 20 Mar 2026 02:41:42 +0000</pubDate>
      <link>https://dev.to/ryanmcmillan/the-coordination-problem-nobody-talks-about-when-you-give-ai-agents-real-work-2p8l</link>
      <guid>https://dev.to/ryanmcmillan/the-coordination-problem-nobody-talks-about-when-you-give-ai-agents-real-work-2p8l</guid>
      <description>&lt;p&gt;Everyone talks about giving agents tools. Nobody talks about what happens when those agents need to coordinate.&lt;/p&gt;

&lt;p&gt;The moment you have more than one agent doing real work, you hit a wall that has nothing to do with prompting, context windows, or model quality. It's coordination: which agent owns what, who delegates to whom, and how does anyone know when downstream work is done.&lt;/p&gt;

&lt;p&gt;For months, the coordination layer was &lt;strong&gt;me&lt;/strong&gt;: a human switchboard operator, copy-pasting task updates between agents that couldn't talk to each other.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: human tools don't fit agents
&lt;/h2&gt;

&lt;p&gt;I tried every task tool with an API: Todoist, Linear, Notion, Asana. Same three problems every time.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Three agents, one API key
&lt;/h3&gt;

&lt;p&gt;Todoist doesn't know which agent created a task. They all authenticate as one user. When a rogue task appears at 3 AM, good luck figuring out which agent created it.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. No delegation model
&lt;/h3&gt;

&lt;p&gt;"Assign to user" is not the same as "Agent A delegates to Agent B, who spawns a subtask for Agent C, and the whole chain is tracked." Human task tools don't model this because humans don't work this way. Agents do.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. No deduplication
&lt;/h3&gt;

&lt;p&gt;Agents forget what they already created. Without semantic dedup, you wake up to five copies of "check disk usage" every morning.&lt;/p&gt;

&lt;h2&gt;
  
  
  So I built Delega
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/delega-dev/delega" rel="noopener noreferrer"&gt;Delega&lt;/a&gt; is open source task infrastructure designed for AI agents. Not a human task app with an API bolted on.&lt;/p&gt;

&lt;p&gt;Each agent gets its own identity and API key. When Agent A creates a task and delegates it to Agent B, that chain is tracked: who created it, who's working on it, how deep the delegation goes.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it looks like in practice
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Creating a task via the REST API:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.delega.dev/v1/tasks &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-Agent-Key: &lt;/span&gt;&lt;span class="nv"&gt;$AGENT_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "content": "Fix the broken CSS on /pricing",
    "priority": 1,
    "assigned_to_agent_id": "agent-frontend"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Completing a task:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.delega.dev/v1/tasks/&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;/complete &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-Agent-Key: &lt;/span&gt;&lt;span class="nv"&gt;$AGENT_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Using the CLI:&lt;/strong&gt;&lt;br&gt;
&lt;/p&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;-g&lt;/span&gt; @delega-dev/cli

&lt;span class="c"&gt;# Log in (creates account or authenticates)&lt;/span&gt;
delega login

&lt;span class="c"&gt;# Create a task&lt;/span&gt;
delega tasks create &lt;span class="s2"&gt;"Deploy staging build"&lt;/span&gt; &lt;span class="nt"&gt;--priority&lt;/span&gt; 2

&lt;span class="c"&gt;# List your tasks  &lt;/span&gt;
delega tasks list

&lt;span class="c"&gt;# Mark done&lt;/span&gt;
delega tasks &lt;span class="nb"&gt;complete &lt;/span&gt;abc123
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  MCP integration (zero config)
&lt;/h3&gt;

&lt;p&gt;If your agents use Claude Code, Codex, Cursor, or any MCP client:&lt;br&gt;
&lt;/p&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;"mcpServers"&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;"delega"&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;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&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="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@delega-dev/mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&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;"DELEGA_AGENT_KEY"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your-key"&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;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;p&gt;That gives your agent 14 MCP tools: create tasks, delegate, complete, comment, manage projects, register new agents, set up webhooks. The agent just uses them naturally.&lt;/p&gt;

&lt;h3&gt;
  
  
  The loop that made it worth shipping
&lt;/h3&gt;

&lt;p&gt;Here's the actual workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring agent&lt;/strong&gt; detects a cert expiring in 7 days&lt;/li&gt;
&lt;li&gt;Creates a Delega task: "Renew TLS cert for api.example.com"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure agent&lt;/strong&gt; picks it up, runs the renewal&lt;/li&gt;
&lt;li&gt;Marks the task complete&lt;/li&gt;
&lt;li&gt;HMAC-signed webhook fires back to the monitoring agent&lt;/li&gt;
&lt;li&gt;Monitoring agent confirms the cert is valid&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No human routing anything. This pattern scales to any number of agents and delegation depth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core features
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Per-agent API keys&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Each agent has its own identity, scoped permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Delegation chains&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Track who delegated to whom, with depth tracking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Semantic dedup&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Prevents agents from creating duplicate tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Lifecycle webhooks&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;HMAC-signed events (created, updated, completed, deleted, assigned, delegated, commented)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Projects&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Organize tasks by domain (infra, content, security)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;14 MCP tools&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Native integration with any MCP client&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;REST API + CLI + Python SDK&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Use however you want&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why this matters now
&lt;/h2&gt;

&lt;p&gt;This isn't just my problem. The ecosystem is moving toward agent-native infrastructure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1Password&lt;/strong&gt; launched &lt;a href="https://1password.com/product/unified-access" rel="noopener noreferrer"&gt;Unified Access&lt;/a&gt; specifically for agent credentials. Their thesis: agents need their own identity, not shared human logins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AgentMail&lt;/strong&gt; built email infrastructure for agents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ramp&lt;/strong&gt; built payment cards for agents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tasks were the missing piece. If agents have their own email, their own payment methods, and their own credentials, they need their own task system too.&lt;/p&gt;

&lt;h2&gt;
  
  
  The category thesis
&lt;/h2&gt;

&lt;p&gt;Human tools with APIs bolted on will always be a bad fit for agents. Not because the APIs are bad, but because the &lt;strong&gt;data model assumes a human is the primary user&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Agent identity, delegation semantics, programmatic dedup: these aren't features you add later. They're design decisions that have to be there from the start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Self-hosted (MIT licensed, SQLite):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/delega-dev/delega
&lt;span class="nb"&gt;cd &lt;/span&gt;delega/backend
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Hosted free tier:&lt;/strong&gt; &lt;a href="https://delega.dev" rel="noopener noreferrer"&gt;delega.dev&lt;/a&gt; (1,000 tasks/month, 2 agents, $0)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP (one line):&lt;/strong&gt; &lt;code&gt;npx @delega-dev/mcp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python SDK:&lt;/strong&gt; &lt;code&gt;pip install delega&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;It's fully open source. MIT licensed. No vendor lock-in, no phone-home. Self-host it and read every line.&lt;/p&gt;




&lt;p&gt;I've been dogfooding this in production for months across content, infrastructure, QA, security, and research workflows. Happy to answer questions about the architecture decisions or how agent-to-agent delegation actually works in practice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/delega-dev/delega" rel="noopener noreferrer"&gt;github.com/delega-dev/delega&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Site:&lt;/strong&gt; &lt;a href="https://delega.dev" rel="noopener noreferrer"&gt;delega.dev&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Ryan McMillan builds tools for AI agents. Creator of &lt;a href="https://delega.dev" rel="noopener noreferrer"&gt;Delega&lt;/a&gt;. Fintech by day.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>mcp</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
