Internals of an agentic system

In regulated environments like financial services: Every agent action must be observable, reviewable, and defensible after the fact. In part I we took a bet on the idea of agentic primitives or "batteries included" for implementing consistent, reliable agentic systems.

Every team building a serious agentic system implements some version of these primitives. Usually differently in every iteration, because it's not their core focus. This constant, custom rebuilding of essential infrastructure is like a race team having to invent a new Pit Crew for every single pit stop.

In part II we will go deeper in defining these primitives. The primitives above aren't independent. Their value compounds through integration:

A framework that treats these as separate plugins misses the point. The agent memory system should know about the work graph. The messaging system should know about resource locks.

This is the "batteries included" vision: not just that the primitives exist, but that they're wired together with sensible defaults.

Primitive 1: Memory

The problem: Agents operate across time. A task started yesterday needs context today. A decision made last week informs work this week. Without persistent, structured memory, every agent invocation starts from zero.

The requirements:

Batteries-included convention:

Primitive 2: Identity and Messaging

The problem: When agents multiply, they need to communicate. Agent A discovers something Agent B needs. Agent C is blocked waiting for input. Agent D needs human approval before proceeding.

The requirements:

Batteries-included convention:

Primitive 3: Work Graph

The problem: Real tasks aren't atomic. They decompose into subtasks with dependencies. Some can parallelize; others must sequence. State needs tracking: pending, in-progress, blocked, complete, failed.

The requirements:

Batteries-included convention:

Primitive 4: Resource Locks

The problem: Parallel agents can collide. Two agents edit the same file. Two agents call an API with rate limits. Two agents try to deploy to the same environment. Without coordination, corruption or thrashing.

The requirements:

Batteries-included convention:

Primitive 5: Decision Capture

The problem: Agents make decisions: which approach, which library, which tradeoff. If those decisions aren't captured, they're invisible. When something goes wrong (or needs to change), there's no record of why things are the way they are.

The requirements:

Batteries-included convention:

Primitive 6: Human Oversight

The problem: Agents aren't fully autonomous and shouldn't be. Humans need to observe what's happening, intervene when needed, approve consequential actions, and correct mistakes.

The requirements:

Batteries-included convention:

AI on Rails is the standardized Pit Crew for your agents, providing the tools and protocols necessary for smooth, fast, and reliable operation. A set of conventions, integrated primitives, and opinionated defaults that let teams build agentic systems without reinventing coordination infrastructure. Part III will tease out UX elements for these agentic primitives. Stay tuned!

This article was originally published on LinkedIn. Read it on LinkedIn →