Skip to main content
An Agent is the reasoning core of a Flow. The agents command group is the CLI surface for creating, editing, and attaching resources to Agent blocks. Every agents subcommand operates on the active Flow. Pin with nora flows use <slug> or override with --flow.

Commands

agents create

Creates a new Agent at position (x, y) if given; otherwise auto-positions.

Create flags

The command prints the new Agent’s ID: save it for subsequent update/sources calls.

agents update

The command supports many --set-* flags. Only fields you pass change; the rest stay as they were.

Update flags: grouped

Identity & content
  • --set-name <n>: display name.
  • --set-description <d>: description.
  • --set-prompt <text>: inline prompt (replaces).
  • --set-prompt-file <path>: prompt from file (replaces).
Model
  • --set-model <m>: primary model.
  • --set-mode <mode>: api / internal / sdk / local.
  • --set-dispatch <mode>: parallel / conditional / routed.
  • --set-image-model <m>: model for image inputs.
  • --set-voice-model <m>: model for voice inputs.
  • --set-image-output-model <m>: model for image outputs.
  • --set-voice-output-model <m>: model for voice outputs.
Limits
  • --set-max-turns <n>: tool-call round-trip cap.
  • --set-max-tokens <n>: token cap per run.
  • --set-max-cost <usd>: dollar cap per run.
  • --set-memory-max-cost <usd>: dollar cap for memory ops per run.
Trigger flag
  • --mark-trigger / --unmark-trigger: designate this Agent as the trigger entry.
Output
  • --set-output-target <target>: where the Agent’s answer flows to downstream.
Approvals
  • --set-approval on|off: require approval on output.
  • --set-route-approval on|off: require approval on routing decisions.
  • --set-cost-approval <usd>|off: require approval when a single run exceeds this dollar cost.
Behavior
  • --set-force-fresh-context true|false: clear prior context each turn.
  • --set-fuse-optout true|false: opt out of retrieval fusion (use single source).
  • --set-output-rules <JSON|@file|-|null>: deterministic post-processing rules applied after the LLM writes. null clears the field.
  • --set-retry <JSON|@file|-|null>: retry policy for LLM / tool failures ({ "maxAttempts": 3, "backoffMs": 1000, ... }). null clears.
Position/size
  • --set-x <n>, --set-y <n>, --set-width <n>.
Bulk
  • --patch <json>: arbitrary JSON patch to merge in. Advanced use; conflicts with other --set-* flags for the same field.
nora agents update --help prints the current full list.

agents edit

Fetches the Agent’s JSON, opens it in $EDITOR (default: vi). On save, the CLI applies the diff via update. Best when you want to change several fields at once: often faster than chaining a dozen --set-* flags.

agents delete

Removes the Agent. Wires connected to it are pruned automatically. Requires confirmation unless --yes is passed.

agents lock / agents unlock

Freezes the agent against MCP / CLI edits: update / delete / apply_flow calls that would modify it are rejected server-side. Unlock is the sanctioned single-field {"locked": false} ceremony. Same lock semantics apply across agents, tools, actions, and triggers.

agents sources: attach data

Data sources are what the Agent can retrieve from at inference. Each attachment specifies a source kind, an ID, and optional retrieval preset.

List

Prints all sources: kind (documents_folder, memory, kg, vector), ID, and retrieval preset if set.

Attach

Flags:
  • --kind (required): kg / vector / documents_folder / documents_file / memory.
  • --source-id (required): collection slug, folder tag, memory space ID, etc.
  • --preset <preset-id>: retrieval preset (see nora retrieval presets list).
  • --method <mode>: vector / keyword / hybrid / kg_only.
  • --modes <m1,m2>: additional retrieval modes.
  • --exclude-doc <id,…>: exclude specific documents.

Update

Patch an existing attachment. Only flags passed change.
  • --set-preset, --set-method, --set-modes.
  • --set-exclude-doc-ids <ids>: replace the exclusion list.
  • --add-exclude-doc <id>: append one.
  • --remove-exclude-doc <id>: drop one.

Detach

Removes the attachment. The underlying data source is not touched.

agents memories: attach memory spaces

Memory attachments are separate from sources. Same shape.

List / attach / detach

Bind a retrieval preset to a memory space

The Agent uses this preset when retrieving from that specific space. Different spaces can use different presets. Clear the preset (fall back to recency-only):

agents tools: per-attachment policy

The same Tool block can be wired into several agents. Each agent can carry its own budget and failure-handling policy for that attachment. The block’s own defaults still apply where the agent leaves a field blank.

List effective policy

Prints every connected tool with the effective policy row: the per-attachment override where one exists, otherwise the block’s own default. Each field carries a from marker: "attachment" / "block" / "default" so you can tell where the value actually comes from.

Set / update policy

Flags (all optional; omitted fields keep their current value):
  • --tool-block-id <id> (required): the tool block whose attachment to edit.
  • --max-calls <n>: calls allowed per agent run (not per turn).
  • --on-failure <fail|skip>: halt the agent or drop the tool call and continue.
  • --max-attempts <n>: retry budget per call.
  • --max-cost-usd <n>: spend ceiling for this attachment.
Passing a flag with the empty string (e.g. --on-failure "") clears that single field back to the block default. To wipe the whole override, use clear-policy instead.

Clear policy

Removes the entire per-attachment row so the tool block’s own settings (shared across agents) apply again.

Recipes

Bootstrap an Agent with prompt + model + sources

Swap the model on every Agent in a Flow

Handy when doing cost experiments.

Enforce approvals on every Agent

Then publish: high-stakes rollout with a review gate on every output.