Agents, Harnesses, and Loops
From answers to actions
An AI agent is a model wrapped in a loop with tools and a goal. Instead of answering once, it decides an action, observes the result, and decides again until it judges the goal met. In practice: an agent asked to fix a bug can read files, edit code, and run tests without a person choosing each step.
An Agentic workflow is broader: any repeatable multi-step process where model calls make some decisions on their own, such as which branch to take or when to stop. In practice: an intake pipeline where a model classifies, routes, and drafts a reply is agentic even if no single step looks like a full agent.
The scaffolding matters more than the model
Harness engineering is the work of building everything around the model call: tool definitions, retry and timeout policy, input and output guards, and routing between models. In practice: the same model performs very differently inside two different harnesses.
Loop engineering is designing the agent's cycle: what it observes, how it decides the next action, and when it stops. Stop conditions matter most, because a loop without good ones burns tokens indefinitely. In practice: capping iterations and defining a done check are loop engineering decisions.
Orchestration coordinates multiple model calls, tools, and sometimes multiple agents into one process. The Runtime is the environment that actually executes all of it and is the only layer that can enforce behavior at execution time. In practice: LangGraph, CrewAI, and n8n orchestrate; Replit Agent and Claude's agent environment are runtimes.
The Cromus Lens
Cromus is deliberately not in the loop. It is the pre-execution layer: it scores, prices, and governs a workflow before any runtime executes it. The artifacts it produces, SKILL.md, ETHOS.md, MEMORY.md, and GRAPH.md, travel into whatever harness runs them: Replit Agent, Claude Managed Agents, LangGraph, CrewAI, n8n, and others via export targets. Runtime enforcement belongs to the runtime. That is why a governance scope of "enforce" is rejected by design: Cromus declares the rules, and the runtime enforces them.