Skip to content

Settings and CLI lookup

Use this page when you know what you need and want the exact entry point. For a first application, start with the configuration guide.

Settings file

The CLI defaults to config/settings.yaml relative to the working directory; it does not search parent directories. Override it with --config PATH.

Top-level key Default Guide
workflows Discover immediate nonhidden config/*/workflow.yaml Layout and discovery
models Empty Model profiles
mcp Empty MCP connections
execution Bounded execution defaults Time and capacity
telemetry Disabled Observability
evaluation Conventional dataset location on explicit evaluation only Ground truth

An explicit workflows map uses public names as keys and workflow directories relative to the settings file as values. Paths must remain within the allowed configuration root. Duplicate keys, aliases, unknown fields, and custom YAML tags are rejected.

Execution limits

Defaults under execution are concurrency: 4, queue_limit: 16, run_timeout: 300, model_timeout: 60, tool_timeout: 30, max_steps: 32, model_requests_per_step: 4, and tool_calls_per_step: 3. Time values are seconds. An LLM step separately defaults to max_iterations: 4 logical model turns.

See the limit tables for scopes, allowed ranges, timeout precedence, retries, and a slow local-model configuration. These are per-process limits, not distributed queues or service-level guarantees.

Model profiles

Providers: openai, openai_compatible, azure_openai, anthropic, google, and bedrock. model and output_mode are required. Profiles have no reserved name and there is no implicit model selection or model-list request.

Shared defaults: text/schema/tool capabilities enabled, four concurrent requests, 16 waiting requests, a 60-second request timeout, one attempt, and 4096 output tokens. Explicit capabilities must match the actual model.

Choose a provider for native APIs, authentication, and endpoint differences. Configure models for step selection, profile overrides, generation options, and structured-output modes.

Provider retries

Both model and MCP profiles default to max_attempts: 1, initial_delay_seconds: 0.25, and max_delay_seconds: 5. Retries are opt-in and apply only to classified completed transient failures. They consume the existing attempt and time budgets. Timeouts and ambiguous connection failures are not automatically retried; see retry behavior.

Environment references

Marked deployment fields accept whole-value $NAME references; $$ escapes a literal dollar. The runtime reads .env beside the selected settings file, then overlays the host-supplied environment. Offline preparation resolves neither. Prompts, schemas, inputs, numeric limits, and dataset paths stay literal. See secrets and environment.

MCP profiles

Declare transport, an explicit catalog, and optional host credential/identity hooks. Defaults are four active sessions, 16 waiting, a 30-second timeout, one attempt, and a 1 MiB output limit. Built-in tool execution is read-only. See MCP setup, direct calls, and model-selected calls.

Telemetry

Telemetry is disabled unless configured. A profile requires service_name; trace and metric endpoints are independently optional. Full defaults and safe data boundaries are in observability.

Evaluation dataset

The conventional path is evaluation/dataset.json beside config/. Optional evaluation.dataset selects a literal path relative to the settings file. Normal preparation and execution do not read gold. See evaluation setup and run/replay/compare.

CLI reference

Command Purpose External model/tool calls?
foliqant init DEST Create a small application template No
foliqant validate Compile and validate configuration No
foliqant explain --workflow NAME Inspect the compiled process No
foliqant doctor Check configuration and optional dependencies No
foliqant run --workflow NAME --input PATH Run one request file As configured
foliqant run --workflow NAME --input - Read one request from standard input As configured
foliqant evaluate --check Validate reviewed gold and targets No
foliqant evaluate Execute configured suites As configured
foliqant evaluate --replay REPORT Rescore saved complete results No
foliqant evaluate --compare CANDIDATE --baseline BASELINE Compare compatible reports No

Use --help on each command for its full argument list. run prints one JSON result and exits. It does not start a server or persist a job. Custom handlers must be registered through the Python host; the CLI does not import arbitrary application functions from configuration.

Evaluation defaults: one concurrent case, a 300-second case timeout, one attempt per case. Reports use a new file under .foliqant/evaluations/ beside settings unless --output chooses another new path. Never commit private reports.

Exit codes: 0 success, 1 gold mismatch, 2 invalid input/configuration, 3 missing optional dependency, 4 runtime failure, and 130 interruption. For business review versus operational errors, see error handling.

Installed schemas

Python boundary models are authoritative. Generated JSON Schema files are shipped for editors and validators; the runtime does not load those copies. Access one without depending on a checkout layout:

from importlib.resources import files

deployment_schema = files("foliqant").joinpath("schemas", "deployment.schema.json")

foliqant.contracts.schemas.runtime_schemas() and decision_schemas() generate the same schemas from the installed models. See public data fields for the advanced input/result contract lookup.