Agent and the resources it owns: rule sets, notification channels, data sources, and limits. The same field shapes are returned by GET /api/v1/agents/{id} and editable via PATCH /api/v1/agents/{id}.
Identity
| Field | Type | Description |
|---|---|---|
name | string | Human-readable label. Visible in the sidebar and notifications. |
description | string? | Optional longer note for teammates. |
goal | string | Plain-English goal that shapes the system prompt. Keep to 1-3 sentences. |
createdBy | string | Clerk user ID of the creator. Read-only. |
Scope
scope_json declares what slice of the workspace the agent operates on. Out-of-scope tool calls return error: "out_of_scope" to the LLM.
| Field | Type | Description |
|---|---|---|
scope.suppliers | string[] | Supplier codes (e.g. ["BOOKING", "EXPEDIA"]). Empty = all. |
scope.regions | string[] | ISO country/region codes. Empty = all. |
scope.sources | string[] | Inventory source identifiers. Empty = all. |
Schedule & status
| Field | Type | Description |
|---|---|---|
scheduleCron | string? | Cron expression (UTC). Null = event-triggered only. |
status | enum | DRAFT, ACTIVE, PAUSED_USER, PAUSED_COST, PAUSED_RATE, ARCHIVED. |
LLM provider
| Field | Type | Description |
|---|---|---|
llmProvider | enum | HOSTED_ANTHROPIC (default), BYO_ANTHROPIC, BYO_OPENAI. |
llmModel | string | claude-opus-4-7 (default), claude-haiku-4-5-20251001, gpt-4.1, etc. |
byoKeySecretId | string? | Vault reference to your API key (BYO only). See BYO Anthropic key. |
Cost & rate limits
| Field | Type | Description |
|---|---|---|
dailySpendCapCents | int | Soft pause when the daily ledger exceeds this. Default 500 ($5). |
hourlyActionCap | int | Hard pause when actions in the last hour exceed this. Default 60. |
Rule set
Rule sets are versioned — every save creates a new row, and every run records the version it executed under. Edit viaPOST /api/v1/agents/{id}/rule-sets. See Rules and decisions for the full schema.
| Group | Purpose |
|---|---|
mapping_jobs | When to trigger jobs (upload, cron, golden-dataset change). |
unmatched_results | How to handle unmatched rows (max candidates, search strategies). |
mismatch_reports | Triage policy. |
coverage | Alert thresholds + digest cadence. |
data_sources | Auto-pull cadence + failure-pause threshold. |
data_sinks | Auto-push policy (default off). |
mode_preference, export, bulk_update | Off by default; explicit opt-in. |
notifications | Cost-threshold percentage + event subscriptions. |
Notification channels
Resourceagent_notification_channel. See Notifications.
| Field | Type | Description |
|---|---|---|
type | enum | EMAIL, SLACK_WEBHOOK, GENERIC_WEBHOOK. |
target | string | Email address, Slack incoming-webhook URL, or HTTPS URL. |
eventSubscriptions | string[] | Subset of on_action, on_escalation, on_pause, on_cost_threshold. |
enabled | boolean | Toggle without deleting. |
Data sources & sinks
Resourceagent_data_source. See Data sources and sinks.
| Field | Type | Description |
|---|---|---|
role | enum | INVENTORY_SOURCE (inbound) or RESULTS_SINK (outbound). |
type | enum | S3 or HTTPS_WEBHOOK. |
name | string | Display label. |
configJson | object | Type-specific (bucket/prefix/region for S3; URL/auth scheme for webhook). |
secretRef | string? | Vault id for credentials. Never returned in full. |
format | enum | CSV, JSON, XLSX. |
scheduleCron | string? | Per-source schedule (overrides the agent’s). |
enabled | boolean | Toggle without deleting. |
Read-only fields
| Field | Description |
|---|---|
id, workspaceId, createdAt, updatedAt, deletedAt | Standard. |
lastSyncedAt, lastStatus, lastError (data sources) | Updated by the sync runtime. |
Related
- Agents overview — context for what these fields shape.
- Rules and decisions — the rule-set JSON in detail.