docker-compose.yml gains healthchecks and depends_on/condition chains for the
litellm/langfuse/postgres tier so dependants wait for a genuinely ready
service instead of a started container. Also plumbs AGAP_MCP_TOKEN into the
adolf and adolf-llm containers, sourced from openai/.env (gitignored), for the
kb#180 bearer auth on the agap MCP server; shared-mcp.json consumes it via
bearerTokenEnvVar so the Kimi backbone authenticates too.
agent-registry.yaml / agent_registry.py: the version-controlled source of
truth for agent identities and trust classes -- the same ids the agap-mcp
token map resolves to (`adolf`, `claude-coder`; note `claude-code-cli` is the
runtime entry, not an agent identity).
model-registry.yaml, litellm-config.yaml, auto-router-routes.json and
provision_litellm_keys.py: model tiering, virtual-key provisioning and
auto-router routes. tei-reranker/ is the local reranker service backing
Hindsight recall.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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