Harbor-first, Braintrust-backed evaluation helpers for coding-agent tooling.
Project description
Braintrust Harbor
Harbor-first, Braintrust-backed evaluation helpers for coding-agent tooling.
This package is for teams that want to evaluate how coding agents interact with their developer tools, CLIs, MCP servers, skills, repos, or harness-specific instructions.
The core model is intentionally simple:
- Harbor owns sandboxed agent execution, harness adapters, models, and concurrency.
- Braintrust owns experiments, imported traces, scores, comparison, and analysis.
- This package is the bridge: it runs one Harbor job and imports each Harbor trial as one Braintrust experiment row.
Install
From a checkout:
uv tool install -e .
After publishing:
uvx braintrust-harbor --help
The CLI entrypoints are:
braintrust-harbor --help
bt-harbor --help
Why Harbor Is External
Harbor is not vendored into this package because Harbor is the execution engine, not a helper library here. It owns sandbox provisioning, built-in coding-agent adapters, model execution, retries, job layout, and concurrency. Keeping it as a separate CLI dependency means teams can use Harbor exactly as documented, including their preferred Harbor version and environment backend.
This package only requires that harbor is available on PATH when you run a
job:
harbor --version
If Harbor changes its job layout or CLI flags, update the package compatibility range and tests rather than hiding that coupling behind a vendored copy.
Quickstart
Create a minimal suite:
bt-harbor init my-tool-evals
cd my-tool-evals
Run Harbor and write a local Braintrust import preview:
bt-harbor run harbor-job.json \
--project "agent-tooling-demo" \
--suite-artifacts suite-artifacts.json
Upload to Braintrust:
bt-harbor run harbor-job.json \
--project "agent-tooling-demo" \
--suite-artifacts suite-artifacts.json \
--upload
Import an existing Harbor job:
bt-harbor import jobs/my-harbor-job \
--project "agent-tooling-demo" \
--suite-artifacts suite-artifacts.json \
--upload
Add suite scorers:
bt-harbor import jobs/my-harbor-job \
--project "agent-tooling-demo" \
--suite-artifacts suite-artifacts.json \
--scorer "my_suite.scorers:summary_present" \
--scorer "my_suite.scorers:inspect_before_change" \
--upload
Package Surface
Library APIs:
from braintrust_harbor import (
HarborBatchConfig,
RunAndImportConfig,
SuiteArtifactConfig,
build_harbor_agents,
import_harbor_job_to_braintrust,
load_toml_matrix,
run_harbor_batch,
run_and_import,
write_matrix_harbor_config,
)
The package includes optional matrix helpers for the common pattern:
suite matrix -> generated Harbor job config -> one Harbor run -> one Braintrust experiment
The consuming suite still owns task materialization, fixtures, artifact names, and domain scorers.
See:
Status
This is an alpha extraction. The Harbor job import path and Braintrust upload path are usable, but the CLI and normalized trace/event helpers should be treated as evolving APIs until a stable release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file braintrust_harbor-0.1.0a2.tar.gz.
File metadata
- Download URL: braintrust_harbor-0.1.0a2.tar.gz
- Upload date:
- Size: 36.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f689249d9f2023280afda75d889d2945b9fb8bee8dcb1ce94255f76fca99bc3
|
|
| MD5 |
d5b942db5fc17815b6ee4d704a5ee81b
|
|
| BLAKE2b-256 |
a59dd425a4869b080b11965ab2770065d9050c64312eb42dc808ca4adefeeb0c
|
Provenance
The following attestation bundles were made for braintrust_harbor-0.1.0a2.tar.gz:
Publisher:
publish.yml on dpguthrie/braintrust-agent-evals
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
braintrust_harbor-0.1.0a2.tar.gz -
Subject digest:
4f689249d9f2023280afda75d889d2945b9fb8bee8dcb1ce94255f76fca99bc3 - Sigstore transparency entry: 1567309457
- Sigstore integration time:
-
Permalink:
dpguthrie/braintrust-agent-evals@cca1834a4add68a8eb2d314e213bcf6a2bc66b4f -
Branch / Tag:
refs/tags/v0.1.0a2 - Owner: https://github.com/dpguthrie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cca1834a4add68a8eb2d314e213bcf6a2bc66b4f -
Trigger Event:
release
-
Statement type:
File details
Details for the file braintrust_harbor-0.1.0a2-py3-none-any.whl.
File metadata
- Download URL: braintrust_harbor-0.1.0a2-py3-none-any.whl
- Upload date:
- Size: 35.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
576b3dd3ec02e09cb110ef94715709dfaafe81f0c4a3c4a857deb7306ec15121
|
|
| MD5 |
c57dde47a41abfec85797fd9a5641cf3
|
|
| BLAKE2b-256 |
bc7aabe1eb3549135f8a340b591780d03a9dfb8b583c779f1180f0070ca1d04c
|
Provenance
The following attestation bundles were made for braintrust_harbor-0.1.0a2-py3-none-any.whl:
Publisher:
publish.yml on dpguthrie/braintrust-agent-evals
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
braintrust_harbor-0.1.0a2-py3-none-any.whl -
Subject digest:
576b3dd3ec02e09cb110ef94715709dfaafe81f0c4a3c4a857deb7306ec15121 - Sigstore transparency entry: 1567309529
- Sigstore integration time:
-
Permalink:
dpguthrie/braintrust-agent-evals@cca1834a4add68a8eb2d314e213bcf6a2bc66b4f -
Branch / Tag:
refs/tags/v0.1.0a2 - Owner: https://github.com/dpguthrie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cca1834a4add68a8eb2d314e213bcf6a2bc66b4f -
Trigger Event:
release
-
Statement type: