harbor-agent.json manifest.
Connect the repository from your profile settings before using a private one.
The template below intentionally omits source.ref, so Harbor starts from the repository’s default
branch and records the resolved commit SHA in the stored job config:
<...> value before submitting. To select an explicit revision, add
"ref": "<branch-tag-or-commit>" inside source.
The source rules are:
namemust beacpwhensourceis present.source.typemust begithub, andsource.repomust useowner/repoform.source.refis optional and accepts a branch, tag, or commit SHA. When omitted, Harbor resolves GitHubHEAD, which is the repository’s configured default branch and is normallymain, then records the exact commit SHA in the stored config so retries stay reproducible.source.pathdefaults to.and selects the repository directory holding the agent project.source.manifestdefaults toharbor-agent.jsonand is resolved relative tosource.path.- Custom agents bring their own model credentials. Supply the key in
job_secretsor store it as a hosted secret, and name it in the agent’ssecretseither way. Select the credential matchingmodel_name’s provider; it backsHOSTED_INFERENCE_TOKENas described in Inference Credentials.
schema_version must be 1, protocol must be acp, runtime.kind must be python-uv, and
runtime.python must be "3.12". The entrypoint must be an executable that speaks ACP over standard
input and output, and its first element is a command name rather than a path. Commit the manifest,
the project files, and uv.lock to the repository.
To check repository access, the ref, and the manifest without launching anything, send the same
request with "dry_run": true. A successful validation returns the resolved repository, the pinned
commit, the manifest identity, and the access mode.
Inference Credentials
Setconfig.credential_mode to choose how the custom agent receives its selected model credential:
Read
HOSTED_INFERENCE_TOKEN for inference authentication. Only override the provider client’s
base URL when HOSTED_INFERENCE_URL is set. An absent URL is expected in direct mode; do not
require it or substitute a hard-coded gateway URL.
Direct mode also injects selected secrets under their environment variable names, so agent code
can read their real values. Gateway mode proxies supported inference provider credentials; selected
non-provider secrets still arrive with their real values. See
Agent Secrets for supported providers and secret selection.
