Five questions that settle it
How much has the procedure changed in the last month? How many times does it run, and is that number growing? Does anyone need to review, test, or audit what it does? What happens when step seven fails halfway through, and is a clean retry required? And how many of its steps involve a real decision rather than a known action? Confident answers to these five usually make the call obvious without a spreadsheet.
Stable + high volume → compile it
Stable + needs audit, tests, or approvals → compile it even at low volume
Unstable + high volume → stabilise it first; compiling a moving target wastes the work
The case for leaving it as an agent
Open-ended planning is a feature when inputs are unstructured, the path really does differ per run, and a human is in the loop to catch a bad call. Exploration, one-off analysis, and genuinely novel problems all belong in an agent. Converting these to workflows trades flexibility you need for determinism you do not, and you will spend the following month adding branches to recover what you gave up.
The case for compiling it
Once the same successful path repeats, the agent's planning is overhead you pay for on every run. Code can be reviewed, diffed, and regression-tested. A durable runtime can retry a failed external call without replaying the conversation. Approvals can pause explicitly rather than depending on a model choosing to ask. And the remaining model calls get cheaper to reason about because there are fewer of them and each has a typed boundary.
The middle path most teams actually want
This is rarely all-or-nothing. Most proven processes are mostly settled with a few genuinely ambiguous steps. Rote's five node kinds exist for that shape: pure functions and external calls for the settled parts, LLM judges and bounded agent loops for the parts that still need a model, and human approval gates where a person must sign off. The result is a workflow with a small, visible inference surface rather than an agent with an unbounded one.
How to make the transition safely
Keep the original skill; compilation produces a separate artifact rather than editing it. Run both implementations against the same set of real cases and compare outputs field by field, not just success rates. Expect the compiled version to surface ambiguities the agent was silently papering over. That is the process working, and it is cheaper to resolve them at review time than in production.
Frequently asked questions
When should I compile a skill?
Keep one-off exploration in an agent. Compile a skill after the procedure is proven, repeats often, and needs lower cost, faster execution, regression tests, explicit approvals, or reliable retries.
What is the difference between an AI agent and an AI workflow?
An agent chooses its next action at run time using a model. A workflow follows declared control flow, though individual steps may still call models. The practical difference is that a workflow's path can be read, reviewed, and tested before it runs, while an agent's path only exists after the fact.
Can an AI agent workflow be deterministic?
Parts of it can. Rote makes control flow explicit and moves pure functions and fixed API orchestration into testable code. Nodes intentionally kept as LLM judges or agent loops remain probabilistic. The goal is to minimize and expose the inference surface, not pretend every output is deterministic.
Compile a workflow
Inspect the open-source CLI or run a compilation in Rote Cloud.