Skip to main content
Job plugins run in the Harbor process and react to job and trial events. Pass them at runtime with --plugin; plugins are not stored in config.json.
Install a plugin in the same Python environment as Harbor. Plugin credentials are Harbor process variables, not agent environment variables.

Discover plugins

Installed packages register a short plugin name. List them with:
Harbor provides two official plugins: langsmith and atif2otel. harbor plugins list shows the plugins installed in the environment running Harbor. A source checkout may already include both as editable workspace packages; PyPI installations must add the desired plugin package. You can also pass a full module:Class import path to --plugin.

LangSmith

The LangSmith plugin syncs Harbor tasks to a LangSmith dataset and records each job as an experiment.
LangSmith showing Harbor experiments with reward, latency, token, and error metrics

Harbor experiments in LangSmith

api_key is also accepted, but LANGSMITH_API_KEY is recommended for credentials.
See the LangSmith docs and launch post.

ATIF to OpenTelemetry

The ATIF-to-OpenTelemetry plugin converts each agent’s ATIF trajectory into OpenTelemetry spans. It converts agent/trajectory.json into spans for model calls, tool calls, and subagents.
Export all trials after the job finishes:
mode=auto streams when endpoint is set and writes files when output_dir is set. Set both to enable both outputs.
See the plugin source.

Use multiple plugins

--plugin and --plugin-kwarg are repeatable. Prefix each kwarg with its plugin name when using more than one plugin:
When running from a job config, keep plugin flags on the command line:
To build another integration, see Custom plugins.