Problem
Agent Spec currently uses the positional identity as all of these at once:
- the sole stable automation key;
- the bus address;
- the durable catalog-state path;
- the task and PTY identity prefix.
name and description are mutable presentation, but name is non-unique and cannot be used as a selector. There is no immutable surrogate ID and no mutable routable identifier or alias.
This creates a conflict for quick session creation. A session can start before its durable purpose and graph placement are known. The creator must either choose a semantic identity too early or keep a provisional identity forever. Improving the identity later creates a new address and disconnects existing routing, task identity, PTY state, inbox, archive, and context.
Evidence
Source at c4d6f7af3e2a09daebf07e7506f81b4bbba1798e:
crates/agent-spec/src/spec.rs: identity is the unique ID; name is mutable presentation.
src/run.rs: default task IDs derive from <host>.<identity>.<task>.
src/message.rs: recipient identity is encoded in the inbox path.
docs/vrs/.decisions/0002-stable-agent-identity-and-mutable-presentation.md: the positional identity is intentionally the sole stable automation ID and a stable-ID alias is explicitly rejected.
A disposable-catalog E2E confirmed:
st2 rename and st2 describe preserved the same process, task ID, PTY generation, and bus identity.
st2 agents --identity resolved only the exact bus identity, not name.
- Changing the positional identity produced a new bus/task/PTY identity and left the existing inbox and old PTY state behind.
Design question
Revisit decision 0002 for sessions whose semantic identity is not known at creation time. Explore whether Agent Spec needs both:
- an immutable, non-human surrogate used for durable ownership and continuity; and
- a mutable, unique human-facing identifier used for routing, separate from non-unique
name.
The design must define selector ambiguity, uniqueness scope, rename history or redirects, authorization, CAS behavior, migration of existing identities, and how old addresses resolve. A surrogate must remain an internal continuity key rather than becoming a second competing human address.
A smaller alternative is acceptable if it preserves quick creation, later semantic naming, stable lifecycle/state continuity, and unambiguous automation without adding both concepts.
Posted on behalf of @schickling
| field |
value |
agent_identity |
dev3.direct.omp.vx8nuqjp |
session |
dev3.vx8nuqjp |
agent_persona |
generalist |
agent_supervisor |
unavailable |
agent_tool |
OMP |
agent_tool_version |
18.0.11 |
agent_runtime |
OMP 18.0.11 |
tooling_profile |
dotfiles@b85aac7 |
Problem
Agent Spec currently uses the positional identity as all of these at once:
nameanddescriptionare mutable presentation, butnameis non-unique and cannot be used as a selector. There is no immutable surrogate ID and no mutable routable identifier or alias.This creates a conflict for quick session creation. A session can start before its durable purpose and graph placement are known. The creator must either choose a semantic identity too early or keep a provisional identity forever. Improving the identity later creates a new address and disconnects existing routing, task identity, PTY state, inbox, archive, and context.
Evidence
Source at
c4d6f7af3e2a09daebf07e7506f81b4bbba1798e:crates/agent-spec/src/spec.rs:identityis the unique ID;nameis mutable presentation.src/run.rs: default task IDs derive from<host>.<identity>.<task>.src/message.rs: recipient identity is encoded in the inbox path.docs/vrs/.decisions/0002-stable-agent-identity-and-mutable-presentation.md: the positional identity is intentionally the sole stable automation ID and a stable-ID alias is explicitly rejected.A disposable-catalog E2E confirmed:
st2 renameandst2 describepreserved the same process, task ID, PTY generation, and bus identity.st2 agents --identityresolved only the exact bus identity, notname.Design question
Revisit decision 0002 for sessions whose semantic identity is not known at creation time. Explore whether Agent Spec needs both:
name.The design must define selector ambiguity, uniqueness scope, rename history or redirects, authorization, CAS behavior, migration of existing identities, and how old addresses resolve. A surrogate must remain an internal continuity key rather than becoming a second competing human address.
A smaller alternative is acceptable if it preserves quick creation, later semantic naming, stable lifecycle/state continuity, and unambiguous automation without adding both concepts.
Posted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimetooling_profile