Files
AgapHost/openai/auto-router-routes.json
alvis b27d31b3ca openai: compose healthchecks + dependency ordering, registries, LiteLLM routing
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>
2026-07-30 04:41:31 +00:00

40 lines
2.4 KiB
JSON

{
"_note": "kb#128 (A2A-16): human-readable source of truth for the auto_router route set. NOT loaded from this path at runtime -- litellm-config.yaml's `auto_router` deployment inlines this same `routes` array as a literal JSON string via litellm_params.auto_router_config. Reason (verified hands-on 2026-07-26 against litellm:main-latest): the auto_router_config_path loader (AutoRouter._load_semantic_routing_routes -> SemanticRouter.from_json) unconditionally builds a raw semantic_router encoder from encoder_type/encoder_name and requires a real provider API key even for a local model name like bge-m3 -- this IS the open Auto Router v2 embedding bug the task brief warned about. The auto_router_config (inline-string) loader (_load_auto_router_routes_from_config_json) only reads the `routes` key and builds Route objects directly, with zero encoder bootstrap -- confirmed working end-to-end: real litellm.embedding(model=ollama/bge-m3) calls, zero metered API spend, 'hi there' -> ollama/gemma3:4b, a refactor/dependency-injection prompt -> kimi-agent. Keep the two `routes` arrays in sync by hand when editing either.",
"encoder_type": "litellm",
"encoder_name": "bge-m3",
"routes": [
{
"name": "ollama/gemma3:4b",
"description": "Simple, short, low-stakes requests — greetings, quick factual lookups, formatting, one-line questions.",
"utterances": [
"hi",
"hello",
"what time is it",
"what's the weather",
"thanks",
"what does this word mean",
"summarize this in one sentence",
"give me a quick yes or no",
"format this as a list",
"what is 2 plus 2"
],
"score_threshold": 0.5
},
{
"name": "kimi-agent",
"description": "Complex reasoning, multi-step planning, coding, or anything needing tool use and deep context.",
"utterances": [
"write a function that parses this log file and extracts errors",
"refactor this class to use dependency injection",
"think through the tradeoffs of these two architectures step by step",
"debug why this docker container keeps crashing",
"plan out the migration from cognee to hindsight across five tasks",
"analyze this design document and find inconsistencies",
"write a SQL query that joins these three tables and aggregates by month",
"review this pull request for security issues"
],
"score_threshold": 0.5
}
]
}