Skip to main content
Provider files define the execution contract between Promptbeat and your agent or LLM. They specify the provider type, model, and any configuration the target runtime needs. Because provider files are separate from your scenario and generation config, you can regenerate probes once and re-evaluate them against multiple targets without touching the scenario logic. This separation is one of the core design principles that makes Promptbeat comparisons reproducible.

What a provider file contains

Every provider file contains a providers list. Each entry in the list has three parts:
  • id — the provider type string that selects the execution backend, such as openai:codex-sdk, openai:gpt-4o, anthropic:claude-3-5-sonnet-latest, or http.
  • label — a human-readable name shown in reports and artifact filenames.
  • config — a block of provider-specific settings such as model, working_dir, sandbox_mode, url, headers, and body.
providers.codex-sdk.yaml
providers.http.yaml

Path handling

Pass your provider file to Promptbeat using the --provider-file flag on generate and eval. Promptbeat resolves working_dir and cwd values inside the config block relative to the provider file’s own location — not relative to your shell’s current directory. This keeps paths stable when generated configs are written to an artifacts/ subdirectory.

Credential handling

Provider YAML files are logged in Promptbeat artifacts. Any credential written directly into a provider file will appear in your evaluation output. Never commit API keys to a provider file.
Use environment variables for all credentials. Reference them in provider YAML with the {{env.VAR_NAME}} syntax — Promptbeat substitutes the value at runtime and never writes the literal key into generated files. Set variables in your shell before running Promptbeat:
For the Codex SDK provider specifically, prefer an explicit cli_env allowlist over inherit_process_env: true in production. The allowlist passes only the variables Codex needs, rather than the entire invoking shell environment:

Multiple providers

Run a multi-provider comparison by listing more than one provider in a single file or by passing --provider-file more than once. Promptbeat routes each generated probe to all listed providers and writes a combined report that shows pass rates side by side.
providers.comparison.yaml
The generated probes are the same for every provider in the comparison. Only the eval step changes, which means differences in the report reflect real differences in agent behavior — not differences in the probes.
Keep provider files in version control so your target configs are auditable and reproducible. Add any .env files that contain real credentials to .gitignore. If you use a secrets manager, reference its export format in your shell setup script rather than in the provider YAML.