Put an AI agent in a channel where three engineers and a PM are already debugging together, and a question appears that single-player AI never had to answer: when more than one person is steering, whose agent is it?
The access model answers the permissions half cleanly, and it's the right answer. The agent doesn't borrow any one member's credentials; it holds the channel's. A private channel gets its own identity, with its own connectors and repos and keys, scoped by an admin to what that channel's work needs. What the agent learns in one channel never leaks into another. Anyone in the channel can call on it, and it reaches exactly what the channel — not any individual — was granted. The puzzle of "whose permissions apply" dissolves: the channel's do.
Whose permissions? Solved. Whose values? Open.
But permissions were only the half of the question that had a tidy answer. The other half is still wide open, and it's the one your team will actually feel. A shared agent doesn't just reach shared systems; it makes judgement calls in front of several people at once. When the PM asks it to "just ship the summary" and an engineer in the same channel would rather it flag the three caveats first, whose disposition does the shared agent express? They granted it the same keys. They did not grant it the same temperament — because nobody specified one.
This is the values version of the access question, and it has exactly the structural difficulty the permissions version had: there is no single member whose character would be right all of the time. Borrow the most cautious member's instincts and the agent frustrates everyone else; borrow the boldest member's and it unsettles the careful ones. "Act like whoever's talking" is the values equivalent of borrowing a user's credentials — and it has the same failure: the agent becomes a different actor depending on who tagged it last.
One name, many agents
Left unspecified, a shared agent quietly becomes several agents wearing one name. It mirrors whoever spoke most recently, so the engineer experiences a careful, caveat-flagging collaborator and the PM, an hour later, experiences a decisive, ship-it one — the same account, the same avatar, two different colleagues. Nobody on the team can finish the sentence "our agent is the kind that…," because it isn't any kind in particular. It's a weather system. And a weather system is the one thing a team cannot build shared trust on, because trust is precisely the ability to predict what something will do before it does it.
The cost shows up as the team slowly learning not to rely on it for anything that matters. Not because it lacks access — it has all the keys the channel granted — but because no one can predict which version of it will answer. Reach was never the bottleneck. Predictability was. And predictability across several people requires the one thing the access model doesn't provision: a single, specified character that everyone in the channel meets.
A channel-level soul
The fix rhymes with the access model's own best idea. The access model gives each channel its own identity — its own credentials, scoped to its work. A team should give each channel its own soul on the same footing: a single, written specification of how the channel's agent decides, attached to the channel rather than to any member. Not the cautious engineer's instincts, not the decisive PM's, but a deliberate, agreed disposition the whole channel can name and rely on — the agent flags caveats before shipping; it defaults to surfacing risk; it asks before publishing; it disagrees out loud when it sees a wall coming.
A channel-level soul does for behaviour what the channel-level identity does for access. It inherits a sensible baseline from the workspace and gets tuned per channel where the work justifies it: the incident channel's agent is terse and biased to action; the legal channel's is conservative and spells out its uncertainty; the brainstorming channel's is generative and withholds judgement. Each is a single character several people share — which is the only arrangement on which a group can build the kind of trust that lets an agent act without being watched.
Doesn't a shared keyring already make it one agent?
It makes it one account, which is not the same thing. A shared keyring guarantees that everyone's requests run with the same reach — a real and useful guarantee. It says nothing about whether everyone meets the same behaviour. You can hand five people one set of keys and, with the personality left unspecified, give them five different collaborators, because each person's phrasing pulls a different disposition out of the same model. One identity in the access sense is necessary for a shared agent. It is nowhere near sufficient for a shared one. The keyring makes the reach common; only a soul makes the agent common.
- Channel-level access answers: what can the shared agent reach? — the same systems for every member.
- Channel-level soul answers: how does it decide? — the same character for every member.
- A shared keyring makes everyone's requests run with equal reach.
- A shared soul makes everyone meet the same collaborator, regardless of who tagged it.
- Without the second, one account quietly becomes many agents — and a team can't trust a weather system.
There's an older AgentSoul argument underneath this: an agent's hardest question is whose side it's on, and a shared agent multiplies that question by everyone in the room. The access model has given teams a shared keyring, which is genuine progress. The next thing a multiplayer agent needs is a shared character — so that when the engineer and the PM and the analyst each turn to it, they are turning to the same colleague, not three strangers behind one name.
“A shared keyring makes everyone's requests run with the same reach. Only a shared soul makes everyone meet the same agent. One account is not one character — and a team can only trust a character.”
Give a shared agent a character its whole team can name. AgentSoul's Forge produces the soul.md you attach to the channel — one disposition everyone meets, not one per person. **[Forge a soul →](/forge/)**