Skip to content
Back to skills

Integrations

ASecurity

"Extend Harbor with custom agents, environments, plugins, bridges,

  • 247 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added September 8, 2026
testingpythondockerapibackend

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill integrations --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Integrations?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Integrations
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-integrations-arex-skill/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-integrations-arex-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: integrations
description: "Extend Harbor with custom agents, environments, plugins, bridges,
  model connections, MCP/skills, simulated users, and optional first-party
  integrations; verify extension contracts without invoking external services by
  accident."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# Extend Harbor integrations

Use this skill when the requested change is **framework extension work**: a
custom agent or environment, an import-path integration, a job plugin, a model
connection, an ACP/bridge adapter, MCP or injected skills support, a simulated
user, or an optional provider such as LangSmith. Keep the extension self-
contained and prove its contract with mocked or local tests before attempting a
real provider, model, Docker daemon, or network service.

## Route before editing

- **Run an existing task/dataset or select an agent/model/provider:** route to
  [`run-evaluate`](../run-evaluate/SKILL.md). Passing an already implemented
  custom import path to a run is execution work there.
- **Author a task-side MCP declaration, verifier, RewardKit criterion, or
  benchmark package:** route to
  [`author-benchmarks`](../author-benchmarks/SKILL.md). Implementing the MCP
  server, bridge, or framework adapter stays here.
- **Inspect, compare, or publish completed results:** route to
  [`analyze-publish`](../analyze-publish/SKILL.md); do not add result
  interpretation to this skill.
- **Experimental map/reduce execution:** route to
  [`exec-map-reduce`](../exec-map-reduce/SKILL.md).

Read the focused references in this order:

1. [`extension-contracts.md`](references/extension-contracts.md)
2. [`optional-integrations.md`](references/optional-integrations.md)
3. [`mcp-skills-bridges.md`](references/mcp-skills-bridges.md)
4. [`troubleshooting.md`](references/troubleshooting.md)

## Safe extension workflow

1. **Normalize the extension boundary.** Record the target class, public
   import path, lifecycle owner, configuration fields, supported operating
   systems/backends, credentials, and a CPU/local acceptance test. Decide
   whether the work is an external agent, installed agent, environment,
   `JobPlugin`, bridge, or configuration-only adapter.
2. **Check the installed surface first.** Run `harbor --version` and inspect
   the relevant `--help` output. In Python, inspect the installed
   `BaseAgent`, `BaseInstalledAgent`, `BaseEnvironment`, `AgentFactory`, and
   `EnvironmentFactory` signatures. The source checkout and installed
   distribution can differ; record the version used for verification.
3. **Implement through a public contract.** Use `module.path:ClassName` for a
   custom `AgentConfig.import_path` or `EnvironmentConfig.import_path`. Do not
   edit the built-in name/type registries unless the extension is intentionally
   first-party. A custom class is instantiated by the factory with framework
   constructor arguments plus `kwargs`; reject unknown or unsafe options
   clearly.
4. **Respect lifecycle and capability gates.** Agents must populate
   `AgentContext` during `run`; environments must enforce or reject resource,
   network, OS, and compose requirements. Advertise `SUPPORTS_WINDOWS`, resume,
   trajectory, handoff, ATIF, and `SUPPORTED_BRIDGES` accurately. A missing
   capability must fail during preflight, not after a costly run starts.
5. **Separate optional layers.** Import only the selected provider/plugin
   extra. Run provider `preflight()` before queueing trials and distinguish a
   missing SDK from missing credentials, a bad endpoint, and a service failure.
   Never use `harbor[cloud]` or a real API as a substitute for a narrow import
   or mocked contract test.
6. **Resolve configuration before execution.** Validate agent/environment
   config, import the class, merge task and runtime MCP servers by name, resolve
   skills and their destination, and validate bridge target support. Show the
   resulting provider/model/environment and credential gates before a real run.
7. **Test in layers.** Start with import and constructor tests, then factory
   wiring, config validation, lifecycle tests using fake environments, optional
   provider tests with SDK/network calls mocked, and only then an explicitly
   approved end-to-end smoke test. Do not put tests, logs, credentials, or
   generated reports in this runtime skill directory.

## Minimal contracts

An external custom agent subclasses `harbor.agents.base.BaseAgent` and provides
`name()`, `version()`, `async setup(environment)`, and `async run(instruction,
environment, context)`. Its constructor should accept the framework's
`logs_dir` and `model_name` and forward supported common kwargs to `super()`.
Use `environment.exec()` with the configured default user; do not assume root.

An installed agent subclasses
`harbor.agents.installed.base.BaseInstalledAgent`. Add `install(environment)`
for tool setup, use the base execution helpers, and decorate prompt-aware
`run()` methods with `with_prompt_template` when appropriate. Declare native
configuration, model connection, system packages, error patterns, and
trajectory capabilities instead of hiding them in arbitrary CLI code.

An environment subclasses `harbor.environments.base.BaseEnvironment`. Implement
`type()`, `_validate_definition()`, `start(force_build)`, `stop(delete)`,
`upload_file`, `upload_dir`, `download_file`, `download_dir`, and `exec`;
override `capabilities`, `resource_capabilities()`, and `preflight()` when the
provider supports those surfaces. A custom environment can use an arbitrary
string from `type()` and `EnvironmentConfig.import_path`, so it does not need a
new enum member.

A job plugin is a class satisfying
`harbor.models.job.plugin.JobPlugin` (or subclassing `BaseJobPlugin`) with
`async on_job_start(job)` and `async on_job_end(job_result)`. Register a package
under the `harbor.plugins` entry-point group to allow a short plugin name, or
pass its full `module:ClassName` import path. Plugins are attached at job
start; their external mutations and credentials require explicit approval.

Model connections are declarative. An installed agent may set a
`ModelConnectionSpec` with a fixed/default provider, agent-specific key and
base-URL environment names, and optional provider-variable passthrough. The
resolver derives a provider from `model_name` when needed, honors explicit
agent environment values over ambient values, and only exposes selected
variables to the agent. A model string or parsed connection is not proof that
credentials or an endpoint are usable.

MCP servers, skills, ACP, simulated users, RewardKit, and LangSmith have
additional data and lifecycle rules; use the bundled references rather than
copying agent-specific setup commands into a new extension.

## Completion record

Report the files changed, installed version and signatures checked, import and
config tests run, optional backends/services not exercised, and unresolved
capability or credential limits. Do not claim an extension is provider-ready,
Windows-compatible, resumable, ACP-compatible, or model-connected unless that
specific gate was checked.

Files in this skill

  • SKILL.md7 KB
  • references/extension-contracts.md8.9 KB
  • references/mcp-skills-bridges.md7.2 KB
  • references/optional-integrations.md5.7 KB
  • references/troubleshooting.md9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.