跳到主要内容
Documentation

Prompt Selection

Overview

版本:最新版

Prompt Selection

Overview

prompt uses a concrete helper model to select exactly one model from the matched decision's modelRefs. The runtime owns the candidate list, structured response schema, deterministic generation settings, and fallback behavior.

Key Advantages

  • expresses model-choice policy in plain instructions
  • constrains the helper model to declared decision candidates
  • reuses model-card descriptions and the existing selection registry
  • falls back to the first valid candidate when the helper call fails

What Problem Does It Solve?

Semantic and metrics-based selectors are not always the simplest way to encode qualitative routing policy. Prompt selection lets a small model choose among a bounded candidate set without moving request eligibility or safety logic out of signals and decisions.

When to Use

Use prompt selection when a decision has multiple valid candidates and the choice depends on qualitative task requirements. Keep metadata, authorization, privacy, and other deterministic gates in signals and decisions.

Configuration

routing:
decisions:
- name: adaptive-model-choice
rules:
operator: AND
conditions: []
modelRefs:
- model: general-small
use_reasoning: false
- model: reasoning-large
use_reasoning: true
algorithm:
type: prompt
on_error: fallback
prompt:
model: router-small
instructions: >-
Use general-small for ordinary requests. Use reasoning-large for
hard reasoning, coding, debugging, or multi-step analysis.
timeout_seconds: 5

model must be a concrete model declared in routing.modelCards and backed by providers.models, and it must use an OpenAI-compatible API format. Candidate base-model names must be unique; use separate decisions when LoRA or reasoning variants share the same base model. Candidate names and available model-card descriptions are added by the runtime. The selector receives the current user turn and returns a fixed JSON object containing an exact candidate name and a short rationale. The internal helper call uses global.integrations.looper.endpoint, which must address the router's OpenAI-compatible chat endpoint.

Model-generated rationale text is not logged or persisted verbatim. Replay stores bounded result/fallback reason codes, and metrics expose selector duration plus fallback counts without request content.