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-3b: models are the scarce queued
resource, version-controlled here rather than hardcoded in callers.
- model-registry.yaml: kimi (main reasoning, quota-gated), local-small
(ollama/gemma3:4b, always-on cheap tier), bge-m3 (embedder + routing
classifier, never-evict), tei-reranker (never-evict, interactive-
critical), paid-fallback (metered, opt-in only, unreachable by
default via empty routing.metered_opt_in). GPU residency policy
carries the never-evict set, co-residency groups, and measured
baseline (bge-m3+gemma3:4b+tei-reranker ~6.2/8GB on the GTX 1070).
- model_registry.py: resolve(tier) picks an available model without
the caller naming one, gated so a metered model is only reachable
with both allow_metered=True and an opted-in virtual key;
to_probe_config() bridges registry quota data into kb_worker.py's
existing Probe classes (no duplicated probe logic); preload_check()
expresses the §3b pre-load VRAM check purely from registry data.
Gap noted for follow-up: bge-m3 has no litellm-config.yaml model_list
entry yet (embedder there still points at ollama/nomic-embed-text on
a different port) — out of scope here, registry documents it as-is.