ADR-0009: LLM provider strategy¶
- Status: Accepted
- Date: 2026-07-25
- Deciders: El
Context¶
Provider routing affects residency, administrative boundaries, and observability.
Decision¶
Route LLM calls direct to providers (Anthropic, Google Gemini) via packages/llm-client. No OpenRouter (introduces a dual admin boundary). DeepSeek must never touch client or personal data unless self-hosted on Octopodia's own AU infrastructure.
Consequences¶
A single provider boundary; unified observability and cost tracking through llm-client; no aggregator failover (accepted).
Alternatives considered¶
- OpenRouter — rejected: dual admin boundary and residency exposure.
- Hosted DeepSeek on client data — rejected: PRC residency.
Amendment (2026-07-31): llm-client is the sole, un-bypassable LLM gateway¶
packages/llm-client is the ONLY path by which any part of ABOS may call a language model. No component (engines, n8n nodes, optimisers, tools, future adopted runtimes) calls a provider SDK or endpoint directly. Rationale: making llm-client the single door means residency, provider strategy, and observability are enforced structurally — every current and future model-touching feature inherits them for free, rather than each one remembering to comply. This is the enforcement mechanism behind ADR-0019's residency criterion and the DeepSeek/self-hosting rules above.