Per DESIGN-a2a-agents.md v2.1 §2, §5, §5b: an agent is a persona, not a
queue. Sibling of kb#133's model-registry.yaml, same load/get/CLI shape.
- agent-registry.yaml: populates adolf (trusted, scoped core tools),
claude-coder (trusted, implementer), torgash (sandboxed, marketplace-
only, target state - not yet built), researcher (sandboxed/untrusted-
input, target state), kimi-endpoint/local-small-endpoint (trivial
model-agents from #133), and alvis/elizaveta as first-class human
agents with trust=human, own inboxes, own private memory bank targets
(adolf-alvis/adolf-elizaveta/adolf-shared - split itself is kb#153).
Also carries trust_classes with numeric rank, a runtimes: section for
Claude Code (kb#133 explicitly excluded it from model-registry.yaml),
and memory_bank_policy documenting §5b's hard rules.
- agent_registry.py: effective_card() is what makes "backbone swap is
one field" true rather than aspirational - tier/cost_class/lifecycle
are never stored statically on an agent, they're resolved at read
time from `backbone` via model-registry.yaml or runtimes:. Also
trust_rank() and can_reach_vault() (kb#147's vault-access DECIDED
rule as a checkable function, not just a comment).
Several Cards (torgash, researcher, elizaveta's KB identity, the split
memory banks) describe target state for things not yet built/migrated -
flagged with status/note fields rather than implied live, matching the
task's scope (registry only, no runtime migration).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014t8Qg9gi7H7HtT8MncoXAB