Prior work · 2024

Agent-Inc & the tri-agent harness that taught me what was load-bearing.

Before JustAi, there was Agent-Inc — a three-agent loop I shipped on intuition and a hunch that the literature would eventually agree. Most of the hunches held up. The ones that didn't are the more interesting story.

The loop

Agent-Inc tri-agent architecture Three agents — Observer, Analyzer, and Actor — connected in sequence, with an orchestrator coordinating them and a feedback loop from Actor back to Observer. Agent 01 Agent 02 Agent 03 Observer Analyzer Actor Watches · listens Plans · reasons Writes · executes context plan Orchestrator · coordination plane Intent › schedule › handoff › trace Feedback · outcome signal
Tri-agent loop: Observer feeds the Analyzer, the Analyzer hands off to the Actor, and the Actor's outcome circles back. An orchestrator coordinates handoffs and traces every step.

An Observer watched the environment — repo state, tool outputs, the user's last message. An Analyzer produced a plan and a next-step rationale. An Actor executed that step with shell and file tools. An orchestrator sat underneath the three, handling intent, scheduling, handoff, and trace. The Actor's outcome fed back to the Observer, closing the loop.

What worked

Splitting observation from planning was the right call. Keeping a dedicated Actor meant execution failures were recoverable without the planner having to re-reason from scratch. Logging every edge of the loop — not just model calls, but handoffs — made the system debuggable in a way single-agent harnesses weren't.

The tri-agent shape predated most of the 2025 multi-agent literature. The intuition that roles should be specialized, memory should be shared, and failure should be a first-class event is now common wisdom. In 2024 it was a bet.

What broke

Two things, both obvious in hindsight.

Memory was a toy. I treated cross-session memory as a convenience. Without typed entries, retrieval scoring, and decay, it was a pile of strings that got stale fast. The Analyzer would confidently reuse a pattern that had been invalidated three runs ago. This is the specific mistake that JustAi's typed memory + trajectory replay exists to prevent.

No observability, no policy. There was no principled way to answer "is this fleet getting better?" beyond feel. Without cost, latency, and quality as structured signals, every routing decision was a vibe. The moment I had a dashboard showing escalation was wrong more than half the time, the routing problem became solvable.

What it taught me

The prompts and the models are the glamorous layer. Handoff, memory, and trajectory are the load-bearing ones. A multi-agent system that treats those as infrastructure gets cheaper and more honest as it runs. A system that treats them as convenience re-learns the same lessons forever.

Agent-Inc is archived. Its lessons are JustAi's defaults.


← All work Read the flagship case study →