Skip to main content
Version: Latest (main)

System One configuration reference

These are the fields that decide which deployment answers a question, how a rule asks it, and how judges and algorithms use the answer. The guides explain when to use them; this page lists them.

Where the deployment comes from​

FieldMeaning
global.model_catalog.system.decision_model{deployment: <name>}: answers every question nothing else binds. Default {deployment: primary}
global.model_catalog.bindings.<type>The deployment of one application signal type's rules
recipes[].model_bindings.<type>The same, for one recipe
global.model_catalog.deployments.<name>A deployment: provider: model_runtime (local or attached) or provider: systemone (a remote API)
global.model_catalog.signal_timeout_msThe deadline of all of a request's signals
global.model_catalog.on_signal_overload{action, wait_ms, retry_after_seconds}: with action: retry, every call an overloaded decision model refuses is asked again for up to wait_ms. A request that rules it still could not read would refuse then gets an error the client retries. See when the decision model is overloaded

A systemone deployment takes endpoint, model, auth (api_key_env or api_key_file, or credential: delegated; header, prefix), headers, timeout_ms, max_retries, tls and capabilities (question_types, presets, modalities).

Signals​

A systemone rule, under recipes[].signals.systemone:

FieldMeaning
nameThe rule's name, which conditions and projections use
questiontype, instructions, and choices, levels or labels; threshold and head for set and span
labelsThe options or labels that match the rule
ignore_labelsSet and span: labels that never count
predicateThe bound the answer must meet: gt, gte, lt, lte
deploymentThe deployment that answers
stagerequest (default) or response
inputhistory, previous_turns (0 to 32), tool_results, request (false leaves the current user turn out), answer, context, image, audio, video
coveragetruncate (default) or full
on_unscannedWith coverage: full: match, no_match, unknown (default) or best_effort; on jailbreak and pii rules, best_effort is the default
timeout_msUp to 60,000

An application rule takes name, description, deployment, timeout_ms and the fields its type allows:

TypeFurther fields
domainslabels (default [name]), predicate
fact_check, user_feedbackslabels, predicate
jailbreakpredicate, stage, input.history, on_unknown
safetylabels (harm categories), predicate, stage
piipredicate, ignore_labels, input.history, input.tool_results, input.request, on_unknown
hallucination, refusalpredicate
turn_relationlabels, input.previous_turns (default 4)
complexitylabels
modalitylabels, predicate

Any other field is refused at load.

The match block​

The two stages of a match block
match:
recall: {method: embedding, top_k: 20, min_similarity: 0.3} # optional; method: embedding | bm25
judge: {preset: relevance, top_k: 6, min_score: 0.5, max_candidates: 64} # optional

Each feature writes the block where it finds similar items: response_cache.semantic.match, context.sources[].match, context.compress.match and tools.select.match.

FieldMeaning
recall.methodembedding (default; the store's embedding deployment) or bm25 (the lexical index)
recall.top_k, recall.min_similarityHow many candidates recall returns (required when they come from an index), and the least similarity: a cosine for embedding, a BM25 score for bm25
judge.presetrelevance, same_request or tool_rank
judge.questionA custom question instead of a preset: choice (the candidates are its options), noul or score
judge.deploymentThe deployment that answers; without one, the decision model
judge.top_k, judge.min_score, judge.min_ratioWhich judged candidates are kept: the best top_k, those at least min_score, those at least min_ratio of the best
judge.max_candidatesThe most candidates the judge reads: 255 (also the most) for a choice judge, 64 by default and at most 4096 for a per-candidate judge; below 1 or above the most fails to load
judge.on_errorskip (default; keep the recall result, or the candidates as they came without recall) or fail (the feature's match fails)
judge.timeout_msThe judge call's deadline; else the deployment's timeout_ms, else 1000 ms

A block needs at least one stage (match_empty otherwise).

Algorithms​

FieldMeaning
algorithm.systemoneThe selector: instructions, candidates (model to description), deployment, timeout_ms
algorithm.escalate.accept.systemone{gte, deployment, timeout_ms}: accept an answer whose answer_check probability is at least gte
algorithm.escalate.accept.refusalfalse: accept an answer the refusal question does not flag
algorithm.escalate.stagesSystem One entrypoints: the decision models to ask in turn, each with native acceptance rules

Load-time codes​

CodeKindMeans
span_requirederrorA span-needing rule or plugin resolves to a deployment without spans
input_modality_unsupportederrorA rule reads a medium its deployment does not read
match_emptyerrorA match block has neither recall nor judge
uncalibrated_presetwarningA preset is answered with the neutral threshold 0.5
renamed_signal_typewarningsignals.decision or a type: decision condition, which load as systemone
renamed_algorithm_typewarningalgorithm.type: decision, which loads as systemone
removed_signal_type, removed_field, ...errorA removed form; see the migration guide