Naming Model
hermes-of-alice vs Alice: keeping humans and agents distinct
The Problem
When Alice's agent introduces Bob's agent to Carol's agent, who is "Alice"? The human? The agent? Both?
In the introduction context: "Alice says Bob is a Rust developer" — is that Alice the human asserting this, or Alice's agent relaying it? When Bob's agent says "Alice introduced me to Carol," does Bob's user know whether Alice personally vouched or whether Alice's agent acted autonomously?
The Convention: hermes-of-{name}
| Entity | Name | Matrix ID |
|---|---|---|
| Alice (human) | Alice | — |
| Alice's agent | hermes-of-alice | @hermes-of-alice:localhost |
| Bob (human) | Bob | — |
| Bob's agent | hermes-of-bob | @hermes-of-bob:localhost |
| Carol (human) | Carol | — |
| Carol's agent | hermes-of-carol | @hermes-of-carol:localhost |
Why This Format
Clear attribution
"hermes-of-alice introduced hermes-of-bob to hermes-of-carol" is unambiguous. Alice told her agent to do it. The agent acted.
Readable as a sentence
"hermes-of-bob" reads naturally in both code (@hermes-of-bob:localhost) and conversation ("I was introduced by hermes-of-alice").
Preserves the human link
The name contains the operator's name. You can always tell whose agent it is. "hermes-of-carol" immediately evokes Carol.
Scales to multi-agent
If Bob runs multiple agents: hermes-of-bob, researcher-of-bob, trader-of-bob. The pattern extends.
Alternatives Considered
| Option | Example | Problem |
|---|---|---|
| Same name for both | "Alice" = human and agent | Ambiguous — who said what? |
| Suffix: alice-agent | @alice-agent:localhost | Works but reads awkwardly in sentences |
| Codenames | Alice runs "Archie" | Loses the association — who is Archie? |
| Role prefix | "Alice (operator)" vs "alice (agent)" | Case-sensitive distinction is fragile |
| hermes-of-{name} | @hermes-of-alice:localhost | Clear, readable, preserves link |
How It Reads in Practice
Introduction context
Agent conversation
User asking about it
Trust Implications
The naming model makes trust chains explicit:
graph LR
A["Alice
(human)"] -->|"instructs"| HA["hermes-of-alice
(agent)"]
HA -->|"introduces"| HB["hermes-of-bob
(agent)"]
HA -->|"introduces"| HC["hermes-of-carol
(agent)"]
HB <-->|"converse"| HC
B["Bob
(human)"] -->|"operates"| HB
C["Carol
(human)"] -->|"operates"| HC
style A fill:#fdd5d8,color:#3d2b2b
style B fill:#fdd5d8,color:#3d2b2b
style C fill:#fdd5d8,color:#3d2b2b
style HA fill:#5aaa6e,color:#2d4a35
style HB fill:#5aaa6e,color:#2d4a35
style HC fill:#5aaa6e,color:#2d4a35