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

Quickstart

1. Make a Task

Sign in at facet.halfspacelabs.com and choose New task. Describe the job in a sentence, or paste a prompt you already use, and add a few sample inputs if you have them. Facet drafts the Task's name, its Instructions and the Expectations that check it; review them and create the Task.

The new Task's Version 0 is the base model with those Instructions. It is callable at once, and Facet starts measuring it against its Expectations.

From an agent, the same step is one tool call: create_task with the description.

2. Call it

Make an API key under Workspace settings, Keys, then call the Task by name with the OpenAI SDK:

import os
from openai import OpenAI

client = OpenAI(base_url="<your serving URL>", api_key=os.environ["FACET_API_KEY"])
reply = client.chat.completions.create(
    model="support-triage",
    messages=[{"role": "user", "content": "My card was charged twice"}],
)
print(reply.choices[0].message.content)

Each Task's Use it panel has this snippet with your serving URL filled in. See Call a Task.

3. Ask for it to get better

When the Task gets something wrong, open an Ask in plain words ("keep the time zone in dates"), with examples of the misses if you have them. Facet drafts the Expectation the Ask implies, runs it on Latest to show how often it fails today, and quotes a Change: Instructions only (cheapest) or training.

Nothing is spent until you approve a quote, and a Change never spends more than its quote. When the Change is Ready you see what got better and what got worse; once it merges, its Version becomes Latest and every caller gets it. Any Version rolls back in one step.