Concepts

Models and views

A model is optional. When one is configured, it reads through a model view and can only draft or propose.

Supported providers

Models are set by an operator in a file passed to serve. The service never accepts a model endpoint from a business user, and the credential is read from the environment variable the file names.

{"assistant": {"url": "https://MODEL_PROVIDER/v1/chat/completions",
               "model": "MODEL_ID", "token_env": "HARNESS_MODEL_TOKEN", "timeout_seconds": 60}}
{"claude": {"provider": "anthropic", "model": "CLAUDE_MODEL_ID",
            "token_env": "HARNESS_ANTHROPIC_TOKEN", "timeout_seconds": 60}}
amalgament-harness serve ./demo.sqlite --models models.json --model-user-hour 60 --model-business-day 500

Endpoints must be HTTPS, or HTTP on a local address, with no embedded credentials. The service enforces per-user hourly and per-business daily call limits.

Views

Each field declares who may read it and, separately, whether a model may see it. A model reads only through that view.

Grounded answers

Model output is not shown as such. The host attaches a structured claim to each tool result; the model's final text is rendered only when it matches one of those claims. Otherwise one unambiguous kernel result is rendered, or the reply is withheld with a fixed clarification. Exact phrases declared as named queries run a model-view query and get a Harness-written answer without a provider call.

Note External-preview reliability of model answers is unproven. Streaming is not available yet; replies are returned whole.