{"slug": "our-ai-agents-run-on-workflows-and-that-s-deliberate", "title": "Our AI agents run on workflows, and that's deliberate", "summary": "AWFlow's AI agents run on deterministic workflows rather than autonomous agent loops, a design the company says makes runs repeatable, debuggable and cheaper, according to a company post explaining the choice. AWFlow states that a workflow follows the same path on every run with the same input, records each step's inputs and outputs so failures point to a single node, and incurs model-call costs only in steps that need judgement, while a pure agent takes a different path each run, requires reading a transcript to debug and pays for a model call at every step. AWFlow says its assistant, when generating workflows with small local models, repairs structural errors such as a missing trigger or dangling edge in code rather than asking the model to retry.", "body_md": "Our AI agents run on workflows, and that's deliberate\n\nPure agents decide every step at run time, which makes them flexible and hard to trust unattended. AWFlow's agents run on ordinary workflows instead: a deterministic skeleton with AI in the slots. Why we chose it and how it shows up in the code.\n\nRun the same task twice with the same input. Does your AI agent take the same path both times? If you are not sure, you have met the trade-off this post is about.\n\nEvery product with an AI feature is now “building agents”. AWFlow has agents too: you can create them, give them skills, chat with them and let them run things for you. But underneath, they run on workflows. This post explains why we made that choice and how it shows up in the code. It is the first in a series on how AWFlow works inside.\n\nThe trouble with pure agents\n\nA pure agent is a loop: the model looks at the state, picks the next action, observes the result and repeats. It decides every step at run time.\n\nThat flexibility is the point, and also the problem:\n\nDifferent path every run. Same task, same input, a new plan each time.\n\nHard to debug. When something goes wrong, you read a transcript instead of pointing at a step.\n\nScary unattended. Would you schedule it for 3am with nobody watching?\n\nEvery step costs a model call, including the steps that never needed any thinking (“open the page”, “append a row”).\n\nWhat a workflow gives you\n\nA workflow is a graph you can read: a trigger, some steps, an output. (If the term is new, what is an agentic workflow covers the basics.)\n\nSame input, same path. It is deterministic by construction.\n\nEvery run is recorded with each step’s inputs and outputs, so a failure points at one box.\n\nSafe to schedule, because it only does what is drawn.\n\nPut the two side by side and the workflow wins on predictability, debuggability, cost and running unattended. The agent wins on one thing: handling the case nobody drew a box for.\n\nWorkflow\n\nAutonomous agent\n\nSame path every run\n\nYes\n\nNo\n\nWhen it breaks\n\nPoint at one step\n\nRead the transcript\n\nCost per run\n\nFixed\n\nGrows with each step\n\nHandles the unexpected\n\nOnly what you drew\n\nYes\n\nSafe unattended\n\nYes\n\nOnly with guardrails\n\nIt is less a choice between two things than a dial. At one end, the graph decides everything. At the other, the model does.\n\nSo the useful question isn’t “workflow or agent?” It is where each one belongs.\n\nA deterministic skeleton, with AI in the slots\n\nOur answer fits in one line.\n\nIn AWFlow, the workflow is the skeleton. Here is a small one that checks a page every morning and tells you only when something is urgent.\n\nIt starts on a schedule\n\nThe trigger is drawn, so you know exactly when it runs. Nothing wakes up because a model felt like it.\n\nIt reads the page\n\nOpening a page and reading its text needs no judgement. A plain node does it, the same way every time, and costs no model call.\n\nThe AI step decides a value\n\nThis is the slot where judgement is needed. The model reads messy text and returns one value: “urgent” or not.\n\nThe graph decides what happens next\n\nAn If node looks at that value and picks the path. The model never chooses which box comes next.\n\nYou get a message only when it matters\n\nThe run ends in one place, recorded step by step. If it goes wrong, you point at a box.\n\nYou get a model’s judgement where it is needed, the predictability of a flowchart everywhere else, and you only pay for model calls in the steps that need judgement. The same idea runs through the engine. When our assistant generates workflows with small local models and the model gets the graph structure wrong (a missing trigger, a dangling edge), we fix it in code instead of asking the model to try again. Our post on LangChain and LangGraph in the browser shows that build graph and its repair loop.\n\nEven our agents are workflows\n\nWhen you give an agent a routine (“check this page every morning and tell me what changed”), AWFlow doesn’t spin up a hidden agent loop with its own scheduler. It builds an ordinary workflow: one of the existing triggers, followed by a “Run agent” node.\n\nThe “Run agent” node hands the task to one of your agents (or to Aria, the built-in assistant). The agent uses its own model, instructions, memory, skills and rules.\n\nBecause a routine is just a workflow, it gets everything the engine already does:\n\nscheduling, including catch-up runs\n\nrun history, like any other workflow\n\nediting on the canvas: no hidden agent loop, nothing you can’t open and change\n\nWe didn’t build a second runtime for agents. We reused the deterministic one.\n\nWhen nobody is watching, the agent doesn’t improvise\n\nAgents have rules: each kind of action is allowed, asked first, or blocked. In a chat, “ask” shows an approval card and you click. In a background routine there is nobody to click.\n\nSo in a background run, an action marked “ask” is declined, not guessed, and listed in the agent’s Activity for you to deal with later. Predictable even when it is intelligent.\n\nA rule of thumb\n\nUse an AI step when:\n\nthe step needs judgement\n\nthe input is messy text or a web page\n\na wrong guess is cheap, or a human reviews it\n\nIn our experience, most real automations are mostly the first kind, with one or two judgement calls in the middle. Model the first kind as a graph and put AI in exactly those one or two slots.\n\nThe smallest version of this idea is a workflow with exactly one AI slot: read the page, let a local model summarise it, show the result. Everything around the AI step is drawn.", "url": "https://wpnews.pro/news/our-ai-agents-run-on-workflows-and-that-s-deliberate", "canonical_source": "https://awflow.io/blog/our-ai-agents-run-on-workflows", "published_at": "2026-10-15 00:00:00+00:00", "updated_at": "2026-10-21 22:12:33.195848+00:00", "lang": "en", "topics": ["ai-agents", "artificial-intelligence", "ai-tools"], "entities": ["AWFlow", "LangChain", "LangGraph"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/our-ai-agents-run-on-workflows-and-that-s-deliberate", "markdown": "https://wpnews.pro/news/our-ai-agents-run-on-workflows-and-that-s-deliberate.md", "text": "https://wpnews.pro/news/our-ai-agents-run-on-workflows-and-that-s-deliberate.txt", "jsonld": "https://wpnews.pro/news/our-ai-agents-run-on-workflows-and-that-s-deliberate.jsonld"}}