Connectors
File: config/agents/connectors/*.yaml · Schema: schemas/connector.schema.json
An external system the platform calls: its kind, credentials, options and the actions that may be invoked, with whether each needs approval and is idempotent.
Fields
| Field | Type | Description |
|---|---|---|
actions | map of name → ActionDef | The actions that may be called, by name. Anything not listed is refused. Default: {}. |
credentials | any | Secrets for the adapter, read from the environment with get_env (webhook: hmac_secret). |
enabled | boolean | A disabled connector is not built, and nothing can call it. Default: true. |
id | string | Required. The key connector.invoke and tools name it by. |
kind | string | Required. The adapter: accounting_stub or webhook. |
options | any | Adapter settings (webhook: url, timeout_sec). |
Unknown fields are refused at boot.
Types
Types referred to by the fields above, from the same schema.
ActionDef
| Field | Type | Description |
|---|---|---|
idempotent | boolean | Whether the remote side deduplicates by itself. Declared only: nothing reads it, and every connector.invoke call is guarded by an idempotency key either way. Default: false. |
requires_approval | boolean | The action may only be invoked downstream of a human.approval node. Default: false. |
Unknown fields are refused at boot.
In this repository
config/agents/connectors/accounting.yaml
id: accounting
kind: accounting_stub # adapter registered in Rust; switch to `webhook` with options.url and credentials.hmac_secret
enabled: true
credentials:
hmac_secret: '<%= get_env(name="ACCOUNTING_HMAC_SECRET", default="") %>'
options:
url: '<%= get_env(name="ACCOUNTING_URL", default="") %>'
timeout_sec: 30
actions:
post_bill: { requires_approval: true, idempotent: true }
get_vendor: { requires_approval: false }
Editor support
The schemas are generated from the Rust definition structs (task schema_export), and a test
fails when they drift. Point a YAML language server at the schema to get completion and
validation while editing:
# yaml-language-server: $schema=../../../schemas/connector.schema.json