Concept
ABL treats reasoning and deterministic behavior as step-level choices insideFLOW. REASONING: true gives a step a goal-driven reasoning zone. REASONING: false makes the step scripted: it should use explicit actions such as GATHER, SET, CALL, RESPOND, ON_INPUT, ON_RESULT, and THEN.
Use reasoning steps for judgment: interpreting messy user language, choosing a tone, deciding whether a situation is urgent, or explaining a result. Use deterministic steps for control: collecting required fields, setting session values, invoking tools, branching on known outputs, and ending the flow.
Do not use the old MODE: pattern. Current ABL expects REASONING: true or REASONING: false on each FLOW step. A deterministic step with a GOAL or AVAILABLE_TOOLS is misleading because those only affect reasoning behavior.
Minimal working example
How it works
The first step is deterministic because the platform should collectpolicy_id and claim_type before doing anything else. The second step is reasoning because urgency is not always a clean enum: the user may describe an accident, water damage, loss, injury, or uncertainty in their own words. The third step is deterministic again because it constructs a known variable. The final reasoning step turns the known state into a user-facing explanation.
This structure makes the flow easier to test. You can verify that required fields are collected before assess_urgency, that claim_summary is set before explain_next_steps, and that completion happens only after the explanation step.
Common variations
Reason first, then collect
Start with a reasoning step when users may open with broad language like “I need help with something that happened yesterday.” The reasoning step can decide what to ask next, then transition into deterministic collection.Collect first, then reason
Start with deterministic collection when compliance, eligibility, identity, or required intake fields must exist before any judgment is useful.Reason after a tool result
Use a deterministicCALL and ON_RESULT to fetch known data, then use a reasoning step to explain the result. This keeps tool execution predictable while allowing the final response to adapt to the user.
Verification
- Validate the project and confirm every
FLOWstep declaresREASONING: trueorREASONING: false. - Test a routine claim, an urgent claim, and an unclear claim.
- Confirm
collect_claimgathers both fields beforeassess_urgency. - Confirm
prepare_summarysetsclaim_summarybeforeexplain_next_steps. - Inspect the trace for step enter and exit events so you can prove the flow moved through deterministic and reasoning steps in the expected order.
Production readiness checklist
- Keep deterministic steps free of unused goals and available-tool lists.
- Keep reasoning goals narrow enough that the model knows what decision or explanation it owns.
- Add fallback paths for unclear user input, failed tool calls, and exhausted attempts.
- Use deterministic steps for required data, compliance checks, and side-effecting actions.
- Use traces to monitor unexpected loops, skipped steps, and repeated clarification turns.