Agents make impressive demonstrations because the model can choose among several next steps. The production question is narrower: does this task actually need that choice? An agent may retrieve evidence, call a tool, inspect the result and continue. A workflow fixes more of the sequence in advance, and many useful systems combine the two.

Start with the objective and the stop condition. “Produce a patch and test evidence for review” gives the controller a boundary it can enforce. “Fix production however necessary” leaves authority, cost and stopping conditions undefined.
The controller should limit available tools, runtime, steps, spending and output size. It checks identity and arguments before execution and obtains action-specific approval when required. A timeout, repeated failure, denied operation or exhausted budget should end in a defined stopped state with enough verified context for a person to resume safely.
Persistent memory needs its own design. Separate user preferences and verified task state from retrieved text or model speculation. Store provenance and expire stale material. An instruction planted in a ticket must not become a trusted rule for every later task. [4]
Use an agent when the next step depends on discoveries that are difficult to encode sensibly in advance. If the process is “extract fields, validate them, send for approval,” I would keep it as a fixed workflow. The simpler design will usually be easier to test, explain and operate.