Skip to content

Configuration

sarr-io edited this page Sep 26, 2026 · 1 revision

Configuration

Connector reads strict YAML from ac.yaml. Unknown keys and invalid values fail validation. directory is optional and defaults to the directory containing the config; policy source paths are relative to it. Agent config remains opaque to Connector except for the explicitly permitted top-level overrides.

Minimal policy

version: 1
policies:
  zinc:
    source: package
    entry: zinc
    memory_bytes: 100663296
    discord: true
    images: true
    overrides: [parent, memory, run, models, retrieval]
    config:
      version: 1
      actor: "discord:${application}:${policy}:member:${member}:channel:${channel}"
      preset: safe
members: {}
channels: {}
guilds: {}

Each policy names its package source and entry, memory ceiling, and opaque JSON-compatible agent config. instructions is an optional PA instruction limit. discord: true grants the built-in Discord Import; images: true opts the policy into image envelopes. imports can compose other leaf policies, with per-edge config overlays. Policies that are imported must be leaves: they cannot themselves import other policies or request the built-in Discord Import.

Named policies can be routed directly or used as leaf Imports. members, channels, and guilds are maps from Discord snowflakes to policy names. Empty maps deny access. Top-level operational settings include concurrency, profiling, and limits (pending_requests, lifetime_ms, rpc_bytes, output_messages). Their defaults are concurrency 4, 32 pending requests, a 10-minute lifetime, an 8 MiB RPC ceiling, and 32 output messages.

Per-call overrides

The registered /agent command accepts an optional YAML object in addition to prompt/image input. The policy's overrides list is an allowlist of top-level fields callers may change. If omitted, no fields may be overridden. Unknown keys are rejected; objects merge recursively, while arrays, scalars, and null replace. Overrides apply to one invocation only and never modify ac.yaml.

Connector expands ${application}, ${policy}, ${member}, ${channel}, ${guild}, and ${message} in config strings. It does not interpret the resulting agent config. For example, a policy can bind a durable-memory actor to the invoking Discord member and channel while keeping the selected preset sealed.

See Routing and requests for route precedence and invocation behavior.

Clone this wiki locally