Skip to main content
Request classifiers are in beta. Owners and admins manage them in Settings → Classifiers or with the /v1/classifiers management API, using a management key with the classifiers:* scopes.
A classifier describes a taxonomy, such as department, audience, or task type, and names the model that applies it. After each eligible request finishes, Phaseo sends the request to that model, which picks a value for every dimension. Each answer is added to the request as a request label, so you can filter and group logs, usage, and analytics by it exactly like labels your code sends. Use classifiers when the category is not known in your code: who a prompt was written for, what kind of work an agent is doing, or whether a request touches a regulated topic.

How a request is classified

  1. The request finishes and its response is returned to your application. Classification never adds latency.
  2. Phaseo builds a transcript of the request: system instructions, messages, tool names (not their schemas), and tool results. Each turn is limited to 4,000 characters and secrets such as API keys are redacted. If the classifier includes the response, the generated output is added too.
  3. The classifier model picks from your values. Anything it answers outside them is dropped (see Choose a model).
  4. The answers are stored as labels on the request, along with each answer’s confidence, before the request appears in your logs.
Classifiers run on chat/completions, responses, and messages requests that succeed. If classification fails or times out, the request is still logged, just without those labels.

Create a classifier

Start from a preset in the dashboard or send the taxonomy yourself:
A workspace can have up to five classifiers. Changes reach the gateway within about a minute.

Choose a model

Any text model or decision model can classify. Phaseo picks how to ask it from what the model’s providers support: A small, fast model is usually enough. Use Try it on a sample in the classifier editor to check a model before saving.

Filter and group by the results

Classifier answers are ordinary request labels:
  • In Logs and Usage, filter by a label such as department = legal.
  • With the API, use label_key and label_value:
  • Broadcast destinations receive labels as phaseo.label.<key> span attributes.
If your code already sends a label with a dimension’s key, Phaseo keeps your value and skips that dimension. When two classifiers use the same key, the one created first wins.

Cost and privacy

  • Each classification is a separate request to the classifier model, made with the same API key or OAuth token as the original request. It is billed at that model’s normal price and follows your workspace’s provider, data retention, and BYOK settings.
  • Classifier requests carry the label phaseo.classifier set to the classifier ID, so you can see their spend in Usage. They are not classified themselves and do not count toward your rate limit policies.
  • Keep costs low with a small, fast model, a sample rate, session sampling, a scope, or a monthly budget.
  • The transcript goes only to the classifier model. The classifier request is logged like any other request, so whether its input is stored follows your workspace’s logging settings.
Last modified on October 20, 2026