Tether
DocsGitHub

Operations

Plans and ceilings

Every tenant resolves to one of four tiers, and the tier decides four things about every turn they take.

The table

Defaults, configurable under AI:Tiers:

TierChat / analysis modelAgent + vision modelOutput ceilingTool turnsDeep analysis
Freegpt-5.6-lunagpt-4o-mini8,0003no
Startergpt-5.6-lunagpt-4o-mini12,0005no
Growthgpt-5.6-lunagpt-4o-mini16,0006yes
Enterprisegpt-5.6-lunagpt-4o25,0008yes

Note what does not change across the first three rows: the conversational model is the same on every tier. What a higher tier buys is budget and capability — a longer answer, more tool rounds, and deep analysis — rather than a better model for ordinary questions.

The stronger model is reserved for the agent and vision paths on Enterprise, where the reasoning matters most and the turn count is lowest.

Resolving a tenant to a tier

The tenant record carries plan_code, and the code decides the tier. The three plan codes the product issues come first; the older prefix rule is what is left.

plan_codeTierWhy
freeFreeDevelopment and testing only; a signup tenant is always here
bring_your_aiFreeTether calls no model on this door, so it gets the smallest model budget rather than one it is not paying for. It buys governance, not managed models
use_tether_aiStarterThis door buys managed models

Any other value is read by its prefix, case-insensitively:

plan_code starts withTier
ENTERPRISEEnterprise
GROWTHGrowth
STARTERStarter
FREEFree
anything else, or emptyFree

An unrecognised plan code resolves to the cheapest budget rather than the most generous one. Resolution is cached for 10 minutes, so a plan change takes up to that long to take effect. An operator assigns the plan when issuing a key; see Signup.

What each ceiling stops

Output tokens bound one response. Reasoning tokens come out of the same budget — that is why these are 8k–25k rather than the 1–2k an answer of this length suggests.

Tool turns bound the model-calls-tools loop. Reaching the ceiling is not an error — the model answers with what it gathered, and telemetry records the tool count so you can see which questions hit the wall.

Deep analysis gates capabilityMode: "Deep". A Deep request from a tenant on Free or Starter is silently clamped to Standard rather than rejected, and any tool registered deep_analysis_only is simply not offered.

Ceilings that are not per tier

BoundDefaultSetting
Concurrent tool calls per turn4AI:Orchestration:MaxConcurrentTools
Per-attempt tool timeout20sToolTransport:TimeoutSeconds
Tool response size256 KBToolTransport:MaxResponseBytes
Request timeout60sAI:Unified:TimeoutSeconds
Conversation history10 messages / 7 daysAI:Policy:HistoryWindowDays
Deep-analysis tool turns12, clamped to the tierAI:DeepOps:MaxToolTurns

Deep analysis raises the tool-turn ceiling but is still clamped by the tier: a Growth tenant requesting Deep gets 6 rounds, not 12.

Changing the table

{
  "AI": {
    "Tiers": {
      "Growth": {
        "ChatModel": "gpt-5.6-luna",
        "AnalysisModel": "gpt-5.6-luna",
        "AgentModel": "gpt-4o-mini",
        "VisionModel": "gpt-4o-mini",
        "MaxOutputTokens": 16000,
        "MaxToolTurns": 6,
        "DeepOpsAllowed": true
      }
    }
  }
}

The table is stated explicitly in configuration so a model or ceiling change is a config edit rather than a code change.

Every model named here must have a price entry, or the process will not start. See Configuration.

A known piece of debt

Plans do not gate tools

A tier controls the model, the ceilings and deep analysis. It does not control which tools a tenant has: that is their catalog, and deep_analysis_only is the only visibility flag a plan influences.