Learn how coding agents are built

nreece2 pts0 comments

Tau<br>01 A coding agent as a curriculum

Ⅰ tau_ai Models become streams<br>Provider adapters turn model responses into provider-neutral events the rest of the agent consumes.

Ⅱ tau_agent The agent loop<br>The reusable harness: messages, tools, transcript state, cancellation, queued prompts, sessions.

Ⅲ tau_coding It becomes useful<br>The coding environment: files, shell, durable sessions, skills, slash commands, and a Textual TUI.

The lesson<br>Every moving part is visible.<br>Tau answers the questions tutorials skip: What is an agent loop? Where do tool calls come from? How does the transcript grow? How do sessions survive the process exiting?

model streamtokens, tool requests, thinking deltas<br>&darr;<br>event streamthe contract between layers<br>&darr;<br>agent loopdecide, call tools, update transcript<br>&darr;<br>sessioninspectable JSONL history<br>frontendprint, Rich, or TUI

The core idea<br>Separate the brain, the environment, and the face.<br>The whole lesson is the boundary. A reusable harness must not depend on the terminal, file paths, or Rich rendering. Those wrap the harness — they never live inside it.

tau — design split<br>AgentHarness = reusable agent brain<br>AgentSession = coding-agent environment<br>TUI = one possible frontend

dependency direction<br>tau_coding &rarr; tau_agent &rarr; tau_ai

02 What you can learn from Tau

Provider-neutral streaming interfaces<br>Agent loops that request and execute tools<br>Typed local tools for read, write, edit, and bash<br>Durable sessions under ~/.tau/sessions<br>Session resume, branching, JSONL export, and HTML export<br>Project instructions, skills, and prompt templates<br>Slash commands and model/provider selection<br>Context accounting, compaction, and thinking controls<br>How to keep Textual behind a UI adapter boundary

03 Educational principles

Small layers beat magic<br>One job per package. Study the provider layer, harness, and coding app on their own.

Events make agents teachable<br>The agent emits a stream you can render, test, and export — not control flow buried in callbacks.

Real enough to matter<br>Educational, not a toy. Run it as a real terminal agent while reading the code behind it.

Docs follow implementation<br>Built phase by phase, each with notes on what was added, why, and how it fits.

The inspiration<br>Inspired by Pi, written as a Python learning path.<br>Tau borrows Pi's architectural lesson — keep the harness, the environment, and the UI apart. Not a line-by-line port; an educational Python take on the same core ideas.

tau — session<br>τ &rsaquo; explain the agent loop

stream model events<br>request tool call<br>execute read / edit / bash<br>append transcript entries<br>render print mode or TUI

τ A map for building your own agent: start with events, add a loop, wrap it in a harness, then give it tools and a UI.<br>$ uv tool install tau-ai copy Get started &rarr; Follow the roadmap &rarr;

agent harness coding provider tools sessions

Related Articles