Agent harness as code

The Terraform model for agent harnesses. Declare your whole harness once — agents, memory, tools, gates, flows — validate it before you ship, then provision native configs for Claude Code, OpenClaw, Codex, Cursor, and more.

View on GitHub
dev-pipeline : pipeline, fan-out, human-gatedesign-review[revise, max 2]intakeactionresearchersonnet · phase 1writersonnet · phase 2revieweropus · phase 3quality-checkgatearchitectsonnetsecurity-leadhaikumoderatorhumanAgentActionGateGroupHumanFlow
Declare once. Provision anywhere.
Claude CodeOpenClawCodexCursorGemini CLICopilotKiro
The problem

Everyone hand-wires
their harness

Harness ClickOps

Every agent harness is hand-assembled — 15 files, custom prompts, hooks, MCP servers, memory wired by hand. It's the agentic equivalent of clicking through a cloud console. No source of truth, and no two harnesses built the same way twice.

No plan step

You apply blind. There's no validate, no preview of the loop, no graph of how your agents actually connect. You learn the wiring is broken when it fails at runtime — never before.

One provider, locked in

Built your harness for Claude Code? Now re-author the whole thing for OpenClaw, Codex, or Cursor — completely different config formats. There's no provider abstraction for harnesses. You rewrite everything from scratch.

How it works

Declare. Plan. Provision.

01

Declare

Write your whole harness in a single .at file — agents, memory, tools, flows, gates, groups. Or start from a template.

02

Plan

29 built-in rules validate the wiring and an interactive graph shows the loop — before you ever apply.

03

Provision

One command emits platform-native configs. Claude Code, OpenClaw, Codex, Cursor — same harness, any provider.

The .at format

Your whole harness,
in one file

A declarative topology file that describes agents, their memory, capabilities, and how they connect. The single source of truth — no boilerplate.

dev-team.at
topology dev-team : [pipeline, fan-out, debate] {
  orchestrator { model: opus, handles: [intake] }

  agent researcher { model: sonnet, tools: [Read, WebSearch] }
  agent writer     { model: sonnet, tools: [Read, Write] }
  agent reviewer   {
    model: opus
    outputs: { verdict: approve | revise }
  }

  group design-review {
    members: [architect, security-lead]
    speaker-selection: "round-robin"
    max-rounds: 3
  }

  gates {
    gate quality-check {
      after: reviewer
      run: "scripts/lint.sh"
      on-fail: halt
    }
  }

  flow {
    intake -> researcher -> writer -> reviewer
    reviewer -> writer [when verdict == revise, max 2]
    reviewer -> design-review [when verdict == approve]
  }
}
design-review[revise, max 2]intakeresearchersonnet · tools: Read, WebSearchwritersonnet · Read, Writerevieweropus · verdictarchitectsonnetsecurity-leadhaikuquality-checkgate · on-fail: halt
Examples

See it in action

Real-world topologies you can explore, download, and scaffold in seconds.

Open source

An open standard for
agent harness as code

AgenTopology is Apache 2.0. Your .at files are the source of truth and work everywhere — no vendor lock-in, no proprietary formats.

0
Stars
0
Forks
1
Contributors