Skip to main content
Use this guide to decide whether an agent should be goal-driven and flexible, step-driven and predictable, or a mix of both.

Concept

An Agent Business Language (ABL) agent can run without a FLOW: block or with one. A reasoning agent has an AGENT, a GOAL, optional persona or limitations, optional tools, optional gathered fields, and completion rules. Without a FLOW: block, the reasoning layer chooses the next best action within the defined boundaries. A flow-based agent adds a FLOW: block and named steps. The flow controls the conversation path. Each step declares whether it is deterministic with REASONING: false or allows a bounded reasoning area with REASONING: true. Use a reasoning agent when the work can be expressed as a business goal and the conversation can adapt. Use a flow when the order of operations, checkpoints, or troubleshooting path must be explicit. Use a workflow tool, not a flow, for long waits, polling, scheduled work, or multi-hour orchestration.

Decision guide

Minimal working example: reasoning agent

This example is a single agent file. It leaves the conversation flexible but gives the agent a required topic and a safe completion condition.
Use this pattern when there is no required path beyond collecting the information needed to answer safely. Avoid using WHEN: true as a normal completion rule because it can make the example appear complete even when the customer outcome is not reached.

Working example: deterministic FLOW for required intake

This example is a single agent file. It collects warranty information in a fixed order, then completes only after the required fields are present.
Use this pattern when only one part of the process needs interpretation. Keep the reasoning zone narrow, give it an exit condition, and add a max-turn limit.

Verification

  1. Validate the agent file.
  2. Run a sample utterance for the reasoning-agent example: “Can you explain the parental leave policy?”
  3. Run the warranty flow with a serial number and issue description. Confirm the prompts happen in order and completion waits until both fields are present.
  4. Run the bounded-reasoning flow with a broad request such as “I need help with a billing issue and my account.” Confirm the reasoning step clarifies the path before collecting account_id.
  5. Inspect trace/debug output for the active step name, gathered fields, and final completion response.

Production readiness checklist

  • Use a reasoning agent only when GOAL, LIMITATIONS, tools, and completion rules are enough to bound behavior.
  • Use flow steps for required collection, compliance prompts, or processes support teams must inspect.
  • Keep REASONING: true steps bounded with a clear GOAL, exit condition, and max-turn limit.
  • Ensure every required gathered field feeds into completion, memory, a tool call, handoff, delegate, or another known consumer.
  • Move long waits, polling, scheduled callbacks, and multi-hour orchestration into a workflow tool.

Common mistakes

Troubleshooting