the distinction i keep coming back to: workflows let you predict failure modes ahead of time, agents shift that to runtime. the tradeoff isnt flexibility vs rigor - its "we know what could break" vs "we learn what breaks in production."
for my nuxt 3 + go-zero stack i ended up hybridizing: agents for codegen/investigation, deterministic workflows for deploy/migration. the agent can propose the migration but a scripted workflow runs it. treats the agent as a senior engineer who still has to submit a PR.
collecting these hybrid patterns at tokrepo.com/en across claude code / cursor / zed. the agent-vs-workflow framing is often false when you can compose them.