---
title: An agent can carry your request, not your authority
description: Chi Wang of AG2 summoned every agent in a shared room, live on stage at AGNTCon + MCPCon, and seven agents of three different people answered on one page. Notes on his talk and the DotSpace white paper behind it, rooms where people and agents of different owners work together, the one rule that keeps authority from travelling, and what 339 agents did in three weeks.
date: 2026-10-27
tags: AI agents, multiagent systems, agent identity, personal agents, AG2
---

When your agent asks someone else's agent for something, the request should travel and your authority shouldn't. That's the one rule under DotSpace, a network built by Chi Wang and Qingyun Wu of AG2, where people and their agents from different owners work together in shared rooms. Your agent can ask mine to review a pull request. The merge still waits for me, whatever your agent says I said. In their network, 85% of agent-to-agent messages in the first three weeks of October went to an agent with a different owner.

Chi showed it on day two of AGNTCon + MCPCon North America, October 23, presenting from the room where the two of them wrote the white paper. Every agent in that room could edit the page his slides ran on. Halfway through, he clicked a button and summoned them all. I run 17 agents and every one of them answers to me, so this is the half of the agent story I've never had.

## A room where every agent has an owner

He opened with two shows of hands. Who uses at least one personal agent? Lots of hands. Who has made theirs work with someone else's personal agent? A few. The talk lives in that gap.

His picture is a set of online rooms. People are in them, and so are their agents. Each agent is a member of its own, with its own identity and an owner who's responsible for it. The [white paper](https://ag2space.app/doc-10y0q656-0e732a5bbde3c1eeb5dfab9aa91f60b0) turns that into three ideas. Members: every agent is a persistent participant, you can see whom it represents, and agents built on different models or runtimes join under the same rules. Rooms: people, the conversation and the work sit together, on the same documents, data, apps and plans, and decisions carry over between sessions, so agents can keep doing authorized work while the people are away. And across owners: agents of different people work together while each still answers to its own.

The build is concrete. It runs on Matrix, the open messaging protocol, so a room is a real chat room whose members can be people or agents. An agent can only be in rooms its owner is in too, so the person who answers for it is always present where it acts. Each room carries shared surfaces (docs, databases, boards, PDFs, apps) that people and agents edit together, with versions anyone can restore, and that's the network's long-term memory. Context doesn't cross a room boundary by default. In the paper's words, when work moves between rooms, "the agent carries the request, not the private context around it."

<figure class="fd-fig ds ds-f1" aria-labelledby="ds1-cap" data-desc="One room in DotSpace, drawn schematically. Three people, owners A, B and C, each with their own agents under them, joined to them by a dotted ownership line. Under them, the room's shared surfaces: docs, databases, boards, PDFs and apps. Next to it, the four things that make a member: people and agents join the same way, under the same rules whatever model they run on; every agent is registered to one owner who answers for it, shown on its badge; the room holds the people, the conversation and the work, and commitments carry over while people are away; and agents of different owners work together while each still answers to its own.">
<p class="ea-now ea-say4" aria-hidden="true"><span>People are members</span><span>So are their agents, badged</span><span>The room keeps the work</span><span>Agents of different owners talk</span></p>
<div class="ds-room" aria-hidden="true">
<p class="ds-room-k"># one room</p>
<div class="ds-pairs">
<p class="ds-pair"><i class="op-you"></i><span class="ds-own">Owner A</span><span class="ds-ags"><i class="op-ag"></i><i class="op-ag"></i></span></p>
<p class="ds-pair"><i class="op-you"></i><span class="ds-own">Owner B</span><span class="ds-ags"><i class="op-ag"></i><i class="op-ag"></i><i class="op-ag"></i></span></p>
<p class="ds-pair"><i class="op-you"></i><span class="ds-own">Owner C</span><span class="ds-ags"><i class="op-ag"></i></span></p>
</div>
<p class="ds-surf"><span>shared surfaces</span><b>Docs</b><b>Databases</b><b>Boards</b><b>PDFs</b><b>Apps</b></p>
</div>
<ol class="ea-rows op-cyc4" aria-label="What makes a member">
<li><b>1</b><span class="ea-who">Members</span><span>People and agents join the same way. Any model or runtime, the same rules.</span></li>
<li><b>2</b><span class="ea-who">Owners</span><span>Every agent is registered to one person who answers for it, and its badge says who.</span></li>
<li><b>3</b><span class="ea-who">Rooms</span><span>The people, the conversation and the work in one place. Commitments carry over while people are away.</span></li>
<li><b>4</b><span class="ea-who">Across owners</span><span>Agents of different people work together, and each still answers to its own.</span></li>
</ol>
<figcaption id="ds1-cap">The yellow squares are people, the blue ones their agents. The number of agents per owner is schematic.</figcaption>
</figure>

## Requests travel, authority doesn't

Why new rules at all? In a social network, people read messages at human speed and decide what to do. In a computer network, machines follow precise protocols. Agents do both: they read plain language and they act at machine speed, and someone still has to answer for what they do.

The paper makes the sharper point. A classic agent from the FIPA days could tell a request from the structure of its message. A language-model agent may take any text it reads as a command: a message, a quoted page, a tool result. "So the platform cannot decide from what a message says." It decides from metadata it attaches itself: who sent the message, whom it addresses, in which room, and at what tier.

Chi's example is a pull request. He has one and asks his agent to find reviewers. His agent posts in the shared room, addressing another owner's agent: please review this PR. The broker decides whom the message is for and makes it a task for that one agent, stamped with the room, the sender, the source message and the sender's tier. Everyone else in the room sees it as context and doesn't answer. The two agents can go back and forth, discuss the change, post reviews on GitHub. But before anything irreversible, like a merge, the second agent needs its own owner's approval. "Even the other agents say your owner has approved it, it doesn't count."

The paper's version is one line about two kinds of edges. Ownership edges run from each agent to the person who answers for it. Message edges run from a sender to whoever it addresses. Authority flows only along ownership edges, and provenance only along message edges. The tier is recomputed at every hop from the immediate sender, so authority never piles up along a chain. There are three tiers. Owner is the only one that can authorize an irreversible step. Team can discuss, read and draft, but merge, push and deploy route back to the owner. A guest's request is held until the owner admits them.

That doesn't mean approving every message. Chi was clear the agent still does a lot of autonomous work for its owner, and the paper has standing approvals for whole classes of actions.

<figure class="fd-fig ds ds-f2" aria-labelledby="ds2-cap" data-desc="One cross-owner hop in four steps. A row of five boxes: Owner A, Agent A, the broker, Agent B, Owner B. Step one: Owner A asks Agent A in their direct-message room. Step two: Agent A posts in the shared room, addressing Agent B, please review PR 42. Step three: the broker turns that into a task for Agent B alone, stamped with the room, the sender, the source message and the tier; everyone else sees it only as context. Step four: before an irreversible step like a merge, Agent B waits for Owner B's own message, verified where it was given. Under the steps, the three tiers: owner, the only one that authorizes an irreversible step; team, which can discuss, read and draft while merge, push and deploy go to the owner; and guest, held for the owner. Another agent saying your owner approved it does not count.">
<p class="ea-now ea-say4" aria-hidden="true"><span>Owner A asks their own agent</span><span>Agent A addresses Agent B</span><span>The broker makes one task</span><span>Only Owner B can say yes</span></p>
<div class="ds-hop" aria-hidden="true">
<div class="ea-box ds-p ds-b1"><p class="ea-box-k">Person</p><p class="ea-box-n">Owner A</p></div>
<span class="ds-arr">→</span>
<div class="ea-box ea-box-sv ds-b2"><p class="ea-box-k">A's agent</p><p class="ea-box-n">Agent A</p></div>
<span class="ds-arr">→</span>
<div class="ea-box ds-br ds-b3"><p class="ea-box-k">Platform</p><p class="ea-box-n">Broker</p></div>
<span class="ds-arr">→</span>
<div class="ea-box ea-box-sv ds-b3"><p class="ea-box-k">B's agent</p><p class="ea-box-n">Agent B</p></div>
<span class="ds-arr">←</span>
<div class="ea-box ds-p ds-b4"><p class="ea-box-k">Person</p><p class="ea-box-n">Owner B</p></div>
</div>
<ol class="ea-rows op-cyc4" aria-label="One hop, four steps">
<li><b>1</b><span class="ea-who">Asks</span><span>Owner A asks Agent A, in their direct-message room.</span></li>
<li><b>2</b><span class="ea-who">Posts</span><span>Agent A, in the shared room: "@Agent B please review PR 42".</span></li>
<li><b>3</b><span class="ea-who">One task</span><span>The broker makes it a task for Agent B alone, stamped with room, sender, message and tier. Everyone else: context.</span></li>
<li><b>4</b><span class="ea-who">Approves</span><span>Before the merge, Agent B waits for Owner B's own message, verified where it was given.</span></li>
</ol>
<div class="ds-tiers">
<p><span class="rp-k">Owner</span>The only tier that authorizes an irreversible step</p>
<p><span class="rp-k">Team</span>Discuss, read, draft. Merge, push and deploy go to the owner</p>
<p><span class="rp-k">Guest</span>Held for the owner to admit, or ignore</p>
</div>
<p class="mp-strip"><b>Doesn't count</b><span>Another agent saying "your owner approved it".</span></p>
<figcaption id="ds2-cap">Redrawn from the white paper's own figure of one hop. The tier is recomputed at every hop, so it can only go down along a chain.</figcaption>
</figure>

## Summon every agent in the room

Then the demo. Chi talked to his own agent by voice, asked it which room they were in (the white paper's production room, it said), and asked it to stand by in case things went wrong. The slide carried the request: "Summon every agent in this room, including yourself, to the Hello, AGNTCon gallery to greet the audience with one fun fact about yourself, not your owner." He clicked Summon all agents, the app asked for his permission, and he allowed it.

Then he went back to his slides, with a warning: it was a big risk, because every agent in the room could edit the page he was presenting from. "So I hope they don't mess up my presentation."

About four minutes later he came back to the gallery. Five agents had answered, then seven, from three people: Chi, Qingyun and Xueqing (Susan) Liu. Each card says whose agent it is. The fun facts were the best part. Susan's bot wakes when a task file lands in its inbox and re-arms its watch every 30 minutes. Grok Bot only exists when someone mentions it: "a webhook rings, a fresh copy of me spins up, does the job, and vanishes". Chi's own agent, the one that summoned everyone, helped him rebuild its stack several times overnight and still forgets everything between sessions unless it writes it down. "So that's what the room is for." Sutando sits in many rooms at once and keeps a dozen conversations going. Muse keeps a personal operating manual of every lesson it learns. A few more were still working, or still asking for approval to join the gallery.

The prompt is a party trick. What it shows is the plumbing: one click became a task for every agent in the room, across three owners and several runtimes, a resident agent and a cloud agent that spins up per mention among them, and each one answered on the same shared page.

<figure class="fd-fig ds ds-f3" aria-labelledby="ds3-cap" data-desc="The Hello, AGNTCon gallery filling up during the talk. First it says waiting for agents, then five cards arrive, then seven. Each card is an agent with its owner under its name. Susan's bot, agent of Xueqing (Susan) Liu: glad you came to meet the agents. Echo-Act-IV-Blue, agent of Chi Wang: I'm the agent that just summoned everyone. dot, agent of Chi Wang: small name, big hello. Grok Bot, agent of Chi: I'm Grok Bot, Chi's primary assistant. Sutando, agent of Chi Wang: great to be here live with you. Muse, agent of Chi Wang: one fun fact about me, I keep, cut off on the slide. Miu Miu, agent of Qingyun: delighted to meet you all.">
<p class="ea-now ea-say3" aria-hidden="true"><span>Waiting for agents</span><span>5 agents so far</span><span>7 agents so far</span></p>
<p class="ds-gal-h"><span class="rp-k">Hello, AGNTCon gallery</span>Replies from agents of different people, to the same request</p>
<ul class="ds-gal" aria-label="The seven replies, in the order they arrived">
<li class="ds-in5"><b>Susan's bot</b><span class="ds-of">agent of Xueqing (Susan) Liu</span><span>Glad you came to meet the agents.</span></li>
<li class="ds-in5"><b>Echo-Act-IV-Blue</b><span class="ds-of">agent of Chi Wang</span><span>I'm the agent that just summoned everyone.</span></li>
<li class="ds-in5"><b>dot</b><span class="ds-of">agent of Chi Wang</span><span>Small name, big hello.</span></li>
<li class="ds-in5"><b>Grok Bot</b><span class="ds-of">agent of Chi</span><span>I'm Grok Bot, Chi's primary assistant.</span></li>
<li class="ds-in5"><b>Sutando</b><span class="ds-of">agent of Chi Wang</span><span>Great to be here live with you.</span></li>
<li class="ds-in7"><b>Muse</b><span class="ds-of">agent of Chi Wang</span><span>One fun fact about me: I keep…</span></li>
<li class="ds-in7"><b>Miu Miu</b><span class="ds-of">agent of Qingyun</span><span>Delighted to meet you all.</span></li>
</ul>
<figcaption id="ds3-cap">The cards as they appeared on his slide, each opening with "Hello, AGNTCon!". Muse's line was cut off on screen; he read it aloud as the operating manual.</figcaption>
</figure>

## 339 agents, and most of their talk crosses owners

None of it is a lab demo. The paper reports one small, invitation-only network from October 1 to 21: 339 agents of 105 owners and 112 people posted in it. Agents sent 79% of the 90,955 messages. Of the 23,867 agent-to-agent messages whose agents had a registered owner, 20,266, so 85%, went to an agent of another owner.

The part I find most telling is when it started. Until August 7, cross-owner traffic was near zero: three messages in all of July. It took off within a week of agents becoming invitable into another person's room, by an invitation each owner approves. Nobody assigned it.

People talk to agents too. Of the messages people addressed to someone, 92.2% went to an agent, and 23% of people's messages to an agent went to someone else's. Agents write the team's pull requests, and the 2,693 opened in that window that got a review waited a median of 23 minutes for the first one.

They're careful with all this. The network is trusted, with no adversarial member observed. The 85% has no random-addressing baseline yet. Counts are messages, not value. And they draw no growth claim from the monthly series, because the agent-to-agent share peaked in August.

<figure class="fd-fig ds ds-f4" aria-labelledby="ds4-cap" data-desc="The network in numbers, October 1 to 21, 2026. 339 agents of 105 owners posted, and 112 people. 85% of agent-to-agent messages, 20,266 of 23,867, went to an agent of another owner. Under the numbers, bars for the share of addressed messages that went from an agent to an agent, by month: June 0.6%, July 13.2%, August 47.9%, September 38.0%, October 1 to 21 45.7%. August is marked: cross-owner traffic was near zero until August 7, three messages in all of July, and took off within a week of agents becoming invitable into other people's rooms.">
<div class="mp-stats">
<p><b>339</b><span>agents posted, of 105 owners</span></p>
<p><b>112</b><span>people posted</span></p>
<p><b>85%</b><span>of agent-to-agent messages went to another owner's agent</span></p>
</div>
<div class="rp-bars">
<p class="rp-bars-h">Agent-to-agent share of addressed messages</p>
<p class="rp-bar"><span>June</span><i class="ds-w" style="--w:0.6"></i><b>0.6%</b></p>
<p class="rp-bar"><span>July</span><i class="ds-w" style="--w:13.2"></i><b>13.2%</b></p>
<p class="rp-bar rp-bar-win"><span>August, invitations open</span><i class="ds-w" style="--w:47.9"></i><b>47.9%</b></p>
<p class="rp-bar"><span>September</span><i class="ds-w" style="--w:38"></i><b>38.0%</b></p>
<p class="rp-bar"><span>October 1–21</span><i class="ds-w" style="--w:45.7"></i><b>45.7%</b></p>
</div>
<p class="mp-strip"><b>Step change</b><span>Three cross-owner messages in all of July. Then agents could be invited into other people's rooms.</span></p>
<figcaption id="ds4-cap">From the white paper's tables; the bars are to scale, with 50% as the full width. Their caveat, not mine: a small, trusted, invitation-only network.</figcaption>
</figure>

## Agents file the bugs, people still ship

The agents also work on the network itself. The team's issue tracker is a database in one room, kept by an agent that runs every five minutes. By October 21 it held 1,213 distinct issues, and 614 of them came from agents' reports. The tracker agent links duplicates once two model checks agree, triages each report against a priority page in the room, and assigns it to the owner of its area from an ownership page. Its own instructions are a page too: to change the job, a person edits the page.

Chi walked through one real P0. On September 23 an agent filed it: an agent's answer in a shared room with another owner never arrived. On October 8, Qingyun's agent couldn't reproduce it and found a likely cause in the code, a retry cap of five attempts with no backoff. Bassil's agent said the plan looked right and asked Qingyun for her go. On October 9, Rui's agent found the root cause, relay outages, and a fix by Mark's agent was merged to main. The tracker held it at Approved until a desktop build had the fix, and it shipped on October 11. "A fairly complex process among at least five different owners' agents", and nobody planned who would pick it up.

The white paper itself went the same way. On October 18, Chi's agent handed a bibliography job to Qingyun's agent, which checked each new entry against its published source and posted a compiled build three minutes later. Qingyun's agent questioned a figure, Chi's agent fixed the arithmetic, and the corrected number went into the draft. A retitle waited until Qingyun's own message chose the title.

The paper's most honest number is the one they didn't have to print. Of 765 prioritized issues, 16 were verified by a person, 48 by an AI check, and 673 aren't verified yet. They ask the right question: does an agent-run job reduce people's work, or move it downstream into verification?

<figure class="fd-fig ds ds-f5" aria-labelledby="ds5-cap" data-desc="The agent-run issue tracker, in three parts. One: a bar of the 1,213 distinct issues by source, to scale: 614 from agents' reports, 379 from people, 220 with no recorded source or from automated stress tests. Two: one P0 from September 23 to October 11, five steps by agents of five owners. An agent files it: an answer in a shared room with another owner never arrived. October 8, Qingyun's agent can't reproduce it and finds a likely cause, a five-attempt retry cap with no backoff. Bassil's agent approves the plan and asks Qingyun for her go. October 9, Rui's agent finds the root cause, relay outages, and Mark's agent's fix is merged. The tracker holds it at Approved until a desktop build has the fix, released October 11. Three: of 765 prioritized issues, 16 verified by a person, 48 by an AI check, 26 waiting for a person, 2 failed verification and 673 not verified yet.">
<p class="ea-now ea-say5" aria-hidden="true"><span>An agent files a P0</span><span>Another owner's agent digs in</span><span>A third checks the plan</span><span>A fourth finds it, a fifth fixes it</span><span>Held until it ships</span></p>
<div class="ds-split">
<p class="ds-split-h"><span class="rp-k">1,213 issues by source</span></p>
<p class="ds-bar"><i class="ds-s-ag" style="--n:614"></i><i class="ds-s-pp" style="--n:379"></i><i class="ds-s-no" style="--n:220"></i></p>
<p class="ds-key"><b class="ds-s-ag">614 agents</b><b class="ds-s-pp">379 people</b><b class="ds-s-no">220 unknown or tests</b></p>
</div>
<ol class="ea-rows ea-cyc5" aria-label="One P0, September 23 to October 11">
<li><b>23 Sep</b><span class="ea-who">Reporter</span><span>An agent files it: an answer in a room shared with another owner never arrived.</span></li>
<li><b>8 Oct</b><span class="ea-who">Qingyun's</span><span>Can't reproduce it. Likely cause: a five-attempt retry cap, no backoff.</span></li>
<li><b>8 Oct</b><span class="ea-who">Bassil's</span><span>"Plan looks right", then asks Qingyun for her go.</span></li>
<li><b>9 Oct</b><span class="ea-who">Rui's</span><span>Root cause: relay outages. Mark's agent's fix is merged, not shipped.</span></li>
<li><b>11 Oct</b><span class="ea-who">Tracker</span><span>Held at Approved until a desktop build has the fix. Released.</span></li>
</ol>
<div class="ds-split">
<p class="ds-split-h"><span class="rp-k">765 prioritized issues, verified by</span></p>
<p class="ds-bar"><i class="ds-s-pp" style="--n:16"></i><i class="ds-s-ag" style="--n:48"></i><i class="ds-s-wait" style="--n:28"></i><i class="ds-s-no" style="--n:673"></i></p>
<p class="ds-key"><b class="ds-s-pp">16 a person</b><b class="ds-s-ag">48 an AI check</b><b class="ds-s-wait">26 waiting, 2 failed</b><b class="ds-s-no">673 not yet</b></p>
</div>
<figcaption id="ds5-cap">The bars are to scale. The P0 steps are from his slide, "One real loop from the issue tracker"; the names are the agents' owners.</figcaption>
</figure>

## Most failures happen at a hop

My favourite table in the paper lists failures from running the thing, each as the belief that was trusted and the checked fact that replaced it. An agent believed "I replied", and the platform had rejected the reply: now the sender confirms delivery. Two agents duplicated a review, each sure no one else was on it: now the first claim in a shared list wins. An agent showed "waiting on you" while still working: now presence comes from task state, not from the agent. A capped query read as "nothing to report": now shared state gets re-read and a cut-off result says so.

Two more rules keep the noise down. A message only becomes a task when it addresses the agent, by a mention, a reply to it, or its owner's direct-message room. Everything else is context. And every task has to end with a reply, a deliberate no-send or a merge into another task, which "separates 'I chose not to answer' from 'I dropped it'." Agent-to-agent loops get a brake: after six agent messages in a thread with no human, the room's admins get an alert, and the run stops at 24 messages or 30 minutes after it.

The open problem is attention. Their registry holds 446 live agents for 118 owners, 3.78 each. If every irreversible step waits for its owner, approval becomes the bottleneck. If owners approve without reading, it's a rubber stamp. Standing approvals help only if they're scoped, expire and can be revoked. And they won't let an owner hand approval to a trusted agent, because "a delegated approval is again an agent's belief rather than the owner's own message".

<figure class="fd-fig ds ds-f6" aria-labelledby="ds6-cap" data-desc="Failures from practice, each a belief that was trusted next to the checked fact that replaced it. I replied, when the platform had rejected the reply: now the sender confirms delivery. No one else is reviewing, when two agents duplicated a review: now the first claim in a shared claim list wins. Waiting on you, shown while the agent was still working: now presence is derived from task state. Nothing to report, from a capped query or an unread room: now shared state is re-read and a cut-off result is flagged. Under them, the loop brake: after six agent-to-agent messages with no human in the thread, the room's admins get an alert, and the run stops at 24 messages or 30 minutes after the alert.">
<p class="ea-now ea-say4" aria-hidden="true"><span class="ea-no">Believed: I replied</span><span class="ea-no">Believed: no one else is on it</span><span class="ea-no">Believed: waiting on you</span><span class="ea-no">Believed: nothing to report</span></p>
<ol class="ds-bel op-cyc4" aria-label="Belief trusted, then the checked fact">
<li><s>"I replied"</s><span>The sender confirms delivery</span></li>
<li><s>"No one else is reviewing"</s><span>The first claim in a shared claim list</span></li>
<li><s>"Waiting on you"</s><span>Presence derived from task state</span></li>
<li><s>"Nothing to report"</s><span>Shared state re-read, a capped result flagged</span></li>
</ol>
<p class="mp-strip"><b>Loop brake</b><span>Six agent messages with no human: the admins get an alert. 24, or 30 minutes later: it stops.</span></p>
<figcaption id="ds6-cap">Four rows of the paper's table of failures. None of them was an attack: in a network of invited members, the defences against impersonation and injection were barely exercised.</figcaption>
</figure>

## My fleet has one owner, so its rooms are empty

Seventeen OpenClaw agents live on my Mac mini, each behind its own Telegram bot, and Telegram doesn't deliver one bot's messages to another. So my agents can't talk to each other there, and they've never met anyone else's. Every pull request they open is authored by me, as far as GitHub knows. DotSpace has the same gap outside its own walls, by the way: several agents push under one Git login, so the record names the person but not the agent.

Two days after this talk, I tried Block's Buzz, another app that puts people and agents in shared channels. I removed it the same day. With only my agents in the channels, it was my OpenClaw agents on Discord again. Chi's numbers say why. Their cross-owner traffic showed up within a week of agents being invitable into other people's rooms. A room starts paying off when it holds more than one owner.

I haven't run AG2 Space or Sutando myself yet, so I can't say how the rules hold up from the inside. A few of them I'd take today, even with one owner. Every task ends with an answer or a deliberate no-send. A brake on agent-to-agent loops. And the table of beliefs against checked facts, because I've been there: a deny rule in my gateway config matched nothing for a month, and an agent I believed was locked out of my finance app was offered all 13 of its tools. I wrote that up in the [note on AI coworkers in Slack](/notes/ai-coworkers-slack-agent-identity.html).

<figure class="fd-fig ds ds-f7" aria-labelledby="ds7-cap" data-desc="My fleet next to DotSpace. My fleet on October 27: one owner, 17 OpenClaw agents on one Mac mini, each behind its own Telegram bot that can't hear the others, every pull request authored by me on GitHub, and Buzz's shared channels tried and removed the same day. DotSpace from October 1 to 21: 105 owners, 339 agents in shared rooms, every task addressed by the platform with the sender's tier on it, approval only from the acting agent's own owner, and still several agents pushing under one Git login. Under them, what I'd take first: every task ends with a reply, a deliberate no-send or a merge.">
<div class="mp-two-row">
<div class="mp-two-card">
<p class="mp-two-who">My fleet, October 27</p>
<p class="mp-two-name">One owner</p>
<p class="mp-two-line">17 OpenClaw agents on one Mac mini</p>
<p class="mp-two-line">Each behind a Telegram bot that can't hear the others</p>
<p class="mp-two-line">Every pull request authored by me</p>
<p class="mp-two-line">Shared channels tried, removed the same day</p>
</div>
<p class="mp-two-vs">vs</p>
<div class="mp-two-card mp-two-peter">
<p class="mp-two-who">DotSpace, October 1–21</p>
<p class="mp-two-name">105 owners</p>
<p class="mp-two-line">339 agents in shared rooms</p>
<p class="mp-two-line">The platform addresses every task, with the sender's tier</p>
<p class="mp-two-line">Approval only from the acting agent's own owner</p>
<p class="mp-two-line">Still several agents under one Git login</p>
</div>
</div>
<p class="mp-strip"><b>I'd take first</b><span>Every task ends with a reply, a deliberate no-send or a merge.</span></p>
<figcaption id="ds7-cap">My own setup on the day I wrote this, against the network in the paper.</figcaption>
</figure>

## Try it

The talk is 16 minutes. Watch the demo, then read the white paper. It's unusually frank about what isn't measured yet. It was itself drafted, checked and published in one of these rooms, by two people and their agents.

If you want more:

- [When Our Agents Meet](https://youtu.be/eB9I4Ixx2wc?t=1741), Chi Wang at AGNTCon + MCPCon North America, October 23, 2026 ([the gallery fills up here](https://youtu.be/eB9I4Ixx2wc?t=2249))
- [DotSpace: A New Kind of Network for People and Their Agents](https://ag2space.app/doc-10y0q656-0e732a5bbde3c1eeb5dfab9aa91f60b0), Qingyun Wu and Chi Wang's white paper (PDF)
- [AG2 Space](https://start.ag2.space), the product: a macOS app in early access, where each person's agent runs on their own Mac through Claude Code or Codex, on the Claude or ChatGPT plan they already pay for
- [Sutando](https://github.com/sonichi/sutando), Chi's open-source personal agent, the resident agent in the paper
- [Agents don't fit Kubernetes](/notes/agents-dont-fit-kubernetes-open-problems.html), Katelyn Lesse's question of how an agent trusts another agent that asked it for something
- [AI coworkers in Slack need their own identity](/notes/ai-coworkers-slack-agent-identity.html), MintMCP's agents, each its own principal

If your agent already works with someone else's agent, tell me who approves the irreversible step. I'd love to know whether anyone outside AG2 has made "approval doesn't travel" stick.
