Skip to content

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.