Retires the Moonshot/Kimi subscription in favour of the already-paid ChatGPT plan. Both CLI wrappers now run `codex exec`; the kimi-agent container is gone. adolf-llm + hindsight-llm: - runKimi -> runCodex (`codex exec --json --skip-git-repo-check`), resume via `codex exec resume <thread_id>`. - MCP moves from a per-session .mcp.json (a workaround for Kimi having no --mcp-config-file flag) to a $CODEX_HOME/config.toml generated once at startup from shared-mcp.json. Field translation is load-bearing: bearerTokenEnvVar -> bearer_token_env_var, enabledTools -> enabled_tools. - approval_policy="never" + sandbox_mode required, or unattended turns block on an approval prompt nobody can answer. kimi-agent removed. It was the ONLY large-tier deployment behind LiteLLM, so deleting it outright would have silently degraded every large-tier request to the local 4B model via the existing fallbacks. tier-large, the auto_router complex-reasoning route and their fallbacks now point at the codex-backed adolf-llm wrapper (model_name: codex-agent). Three environment blockers fixed along the way: - OpenAI geo-blocks this host (403 unsupported_country_region_territory). Both containers now egress via the host xray proxy, with NO_PROXY keeping MCP and *.alogins.net traffic off the tunnel. - node:22-slim ships no system CA store; the Rust codex binary validates TLS against it, so every HTTPS call failed with a generic transport error while Node's own fetch worked. ca-certificates added to both images. - `codex exec resume` rejects -C/--cd (plain `codex exec` accepts it), which broke follow-up turns while first turns succeeded. Known regression: Kimi's managed-usage API has no Codex equivalent, so the /usage route returns 501 and there is no quota probe for the codex model. The two quota plugins degrade quietly to no output. Also: stop tracking cognee.env (live LLM + JWT secrets) and gitignore it. The secrets remain in earlier history and should be rotated. Verified live: plain turn, SSE streaming, session resume, MCP tool call, bearer-token MCP call, and completions through both LiteLLM routes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Y5QPagv4iun1ghpwM96Ff
40 lines
2.5 KiB
JSON
40 lines
2.5 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 -> codex-agent (was kimi-agent until the 2026-08-01 Kimi purge). 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": "codex-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
|
|
}
|
|
]
|
|
}
|