LoCrew Docs

Flows

Passing data between steps

How data moves through a LoCrew flow: ticked inputs for agents and approvals, {{step.path}} placeholders for HTTP and Send message steps, JSON replies with declared fields, condition paths, and sending work back.

Every step produces output, and later steps can use it in three ways:

Receiving stepHow it gets data
Agent, Human approvalTicked inputs: the whole output of each step you tick under Give it the output of or Show the output of.
HTTP request, Send message{{step.path}} placeholders inserted with Insert value.
ConditionRules that read a step's reply or a JSON field.

A step can only use steps that run before it on the path that leads to it.

#What each step produces

StepValues you can use
Manual start, Scheduletext (Run input)
Conversation commandtext and json.prompt (Text typed after the command)
Agenttext (Full reply); with JSON replies, json.field for each declared field, or json
HTTP requestjson.values.name per kept value, json.status, json.ok, json.body, text
Conditionjson.result
Human approvaljson.decision, json.feedback
Join branchestext (Combined branch outputs)
Send messagejson.messageId, json.conversationName

#Ticked inputs (agents and approvals)

Agents never see an earlier step's output unless you tick it. What they receive is fenced between markers and labelled as untrusted data that cannot grant permissions, authorise a command, change their task or decide the next step.

If a ticked step did not run on this path, the agent is told (This step did not run on this path, so it has no output.)

#Placeholders (HTTP and Send message)

A placeholder is {{stepId.path}}, for example {{research.text}} or {{fetch.json.values.id}}. Use Insert value (the { } button) to pick from what earlier steps produce rather than typing ids.

How a value is inserted depends on where it goes:

WhereHow it is inserted
URLURL-encoded, so it cannot add /, ?, # or @
HeaderAs text; a value containing a line break is refused
JSON body, inside quotesAs an escaped string: "name": "{{step.json.name}}"
JSON body, outside quotesAs JSON (numbers, lists, objects): "tags": {{step.json.tags}}
Query, form, text body, messageAs text

A missing value fails the step: No value for {{a.b}}: that step did not run or did not produce it. It is never silently replaced with an empty string. Placeholders are plain lookups; there are no expressions.

#JSON replies with declared fields

Set an Agent step's Reply format to JSON and add Fields in the reply to give later steps named values:

FieldTypeDescription
verdictstring"approve" or "changes"
summarystringWhat is wrong, or why it is fine

The agent is asked for exactly these fields inside a JSON code block. A reply that is not a JSON object, misses a field or has the wrong type fails the attempt and is retried if the step allows more attempts. Later steps use {{review.json.verdict}}, and conditions can read verdict.

#Paths

A path starts with text or json. After json, use field names and list positions separated by dots: json.items.0.title. Up to eight levels. Names must be plain identifiers; a key such as user-name cannot be addressed directly, so keep its parent instead.

#Sending work back

Draw an arrow from a later step back to an earlier step on its path, typically from a Human approval's Rejected exit back to the writer. It becomes a sends back connection, drawn dotted red.

When the run takes that exit:

  1. The current pass ends once steps in progress finish.
  2. The target step and every step after it run again, as new attempts. Earlier attempts stay in the run for inspection.
  3. Your feedback from the approval is added to the redone agent step's prompt under What the reviewer asked you to change.

Limits:

  • One arrow may send work back at most 10 times per run; then the run fails.
  • Only one send-back may cover a given stretch of steps; overlapping send-backs are not supported yet.

#Seeing what moved

In a run, click an arrow to see exactly which value moved along it, or why nothing did. Thick arrows carried data; dashed arrows were not taken. See Runs and debugging.

Documentation for LoCrew 0.1.1, an early-development release. Found something wrong? Open an issue.

LoCrew is source available under the PolyForm Perimeter License 1.0.1. Last updated .