Agents: this page is also Markdown; every page is in llms.txt.

Write good evals

An eval is one plain statement of what a good answer does, such as "marks a double charge as urgent". Facet checks every new version against every eval, and a version goes live only when they pass. Good evals are the best way to get a Model that does what you mean.

Facet drafts the first ones from your description. This page is for reviewing them and adding your own.

One behavior per statement

Each eval should be something you could check by reading one answer.

Instead of Write
Handles tickets well Picks billing, bug or account for every ticket
Is accurate and concise Copies the invoice total exactly as written
Doesn't make mistakes with urgency Marks a ticket urgent when the customer can't log in
Good tone Never promises a refund

Split a statement that has "and" in it: two evals tell you which half fails.

Give it examples

Each eval has examples: inputs, and the right answer when there is one. Facet uses them two ways:

Real inputs from your app beat invented ones. Edge cases beat easy ones: the ticket written in two languages, the invoice with two totals. See Add examples.

How each one is checked

Facet picks how to check each eval, and you can see and change it on the eval's page:

The bar

Each eval has a bar, the share of its hidden examples a version must get right:

A new eval that today's version already passes is fine; it protects that behavior from future changes.

What the colors mean

Who can loosen one

Lowering a bar, removing an eval, or making it optional (shown, but no longer required to merge) needs a Model owner's approval, so an eval can't quietly stop protecting you.

Next steps