Skip to main content

Overview

The sinker policy namespace gates what the AI agent is allowed to do. Policies set hard limits on tip size, how aggressively the agent escalates on retries, how many bundles can be in-flight at once, and more. Settings persist in sinker.policy.json in the working directory. Both the sidecar and the agent read the file once on startup. Restart the stack to apply any changes.
The policy file is partial by design — only the keys you change need to be present. Missing keys resolve silently to built-in defaults. An empty file (or no file at all) means “use all defaults.”

Policy keys

These keys are accepted by sinker policy set and sinker policy reset <key>.

Tip controls

Bundle & retry controls

Throughput controls


Commands

sinker policy set <key> <value>

Set a single policy value. The change is written to sinker.policy.json immediately.
The stack must be restarted for the new value to take effect.

sinker policy show

Print all policy values as a table — current effective value, built-in default, and which keys have been explicitly set.

sinker policy reset [<key>]

Reset a single key back to its built-in default, or reset all keys if no key is given.
reset without a key writes an empty {} JSON file — all keys will resolve to defaults on next start. The file itself is kept; use sinker policy clear to delete it entirely.

sinker policy clear

Delete the policy file. All settings revert to built-in defaults on the next sidecar or agent start.
Pass --yes / -y to skip the confirmation prompt (useful in CI or setup scripts):

sinker policy validate

Check the current effective policy for contradictions and dangerous values.
Errors (exit code 1 — block correct operation): Warnings (informational — do not exit non-zero): Example output with issues:

sinker policy export [--path <file>]

Export the current effective policy — with all defaults resolved — to a JSON file. Unlike the live policy file (which only stores overrides), the export includes every key. Useful for sharing a policy between Sinker deployments.
The exported file can be applied on another machine with sinker policy import.

sinker policy import <file>

Load a policy JSON file, validate it, and apply it as the active policy. Errors block the import; warnings are printed but do not block it.
If validation errors are found, the import is aborted and the existing policy is left unchanged:

Storage and load order

The policy file is looked up in this order on every sinker start or sinker up:
  1. Path in SINKER_POLICY_FILE env var — custom override
  2. ./sinker.policy.json — working directory
  3. Built-in defaults — no file required, no warning
The file format is plain JSON. Keys not present resolve to defaults — you only need to store values you change:

For most production deployments, a conservative starting point: