Agentic Harness Explained: Multi-Agent Team Management with OpenRig

Agentic Harness Explained: Multi-Agent Team Management with OpenRig

Yesterday we discussed Hermes. Hermes brings together the tools and management you need to run a single agent—from ChatGPT conversations to web service integrations. Hermes is broad in scope—it can manage any kind of agent.

Today we look from another angle. In software development, you often need multiple coding agents. Claude Code writes one thing, Codex does another, and both work from the same repository on the same project. How do you orchestrate this? How many terminals will you open? How does one agent’s output flow to another? Who is responsible for what if someone fails?

OpenRig is the answer.

Multi-Agent Team vs. Terminal Sprawl

A common scenario in software development:

Morning. Five terminal windows on the developer’s machine.

Machine reboots. Terminal windows close. Context is lost. Who was doing what? Which change came from which agent? Is an agent stuck in a deadlock?

OpenRig manages this. You open it, it snapshots. You close it, it saves state. You open it again, it resumes from where it was.

Without a harness, agents are terminal sprawl. With a harness, they are a team.

What Is OpenRig?

OpenRig is an open-source multi-agent harness. A rig (team) is defined in YAML.

# rig-spec.yaml
rig:
  name: "blog-development"
  pods:
    - name: "writer"
      harness: Claude Code
      model: Claude 3.5 Sonnet
      context_size: 200k
    
    - name: "editor"
      harness: Codex
      model: Claude 3.5 Sonnet
      context_size: 100k

  edges:
    - from: "writer"
      to: "editor"
      type: "review"

Then:

rig up blog-development --cwd .

OpenRig starts tmux sessions, gives each agent a “seat,” sets environment variables, binds them to the project, and they all work from the same repository.

OpenRig’s Core Features

1. Team definition in YAML. Define the team as code — keep it in version control. The question “who is on the team now, which models, which connections?” is answered by git log.

2. Connections and flow. Agent A’s output goes to Agent B. Define who works, who waits for results, who can veto.

3. State persistence. Close an agent’s session, its state is saved. Open it hours later, that context is still there. Chat history, completed work, error logs — all persistent.

4. Terminal management. OpenRig manages terminal panes with tmux. Each agent gets its own pane. Look at the screen: who is active, who is waiting, who hit an error — all visible.

5. Observability. Every step an agent takes, its output, its error messages — all recorded. If an agent fails, its full history is traceable.

6. Multiple harness support. Claude Code, Codex, other software agents — they can all join the same team. All managed by OpenRig.

Scenario: Software Development Team

You have a blog, you write articles. You use two agents:

In OpenRig, it looks like this:

rig:
  name: "blog-team"
  pods:
    - name: "writer"
      harness: Claude Code
      model: Claude 3.5 Sonnet
    
    - name: "editor"
      harness: Codex
      model: Claude 3.5 Sonnet

  edges:
    - from: "writer"
      to: "editor"
      type: "review"

Morning:

rig up blog-team --cwd /path/to/blog
rig tui --shared  # Terminal UI opens

On your screen, a status table of two seats appears:

Seat Runtime Model Status Context
writer Claude Code Claude 3.5 Running 45k tokens
editor Codex Claude 3.5 Waiting 0

You give the writer a task:

rig send writer@blog-team "Write an article about OpenRig"

Writer starts, writes the article. OpenRig records the output.

When the article is done:

rig send editor@blog-team "Review the article from writer and provide feedback"

Editor receives writer’s output (OpenRig automatically wires them together), reviews, writes feedback.

If the machine reboots, all this history is recorded. Resume tomorrow:

rig up blog-team --cwd /path/to/blog

OpenRig restores the previous state or final context. The team resumes where it left off.

Why Is This Critical in an Organization?

If a company runs 10 software agents, each is terminal sprawl. OpenRig turns that into a 10-seat, well-defined team.

For a manager:

With OpenRig, you see the team’s state in a table. History is permanent. Decisions are traceable.

The fact that it is open source matters. You can read the code, add your own agents, adapt it to your infrastructure.

Cloudflare Durable Objects, AWS Lambda vs. OpenRig

Cloudflare Durable Objects manages a single agent. AWS Lambda is stateless. OpenRig is open source and self-hosted — it runs on your infrastructure.

Long term, managing agents on your own systems is cheaper and more controllable.

Conclusion

OpenRig is the harness that turns AI agents into a “team” in software development. Instead of terminals, you have a defined, auditable, persistent system.

Choosing one of these four open-source harnesses (Hermes, buzz, Cloudflare OS, OpenRig) is the first step to keeping agents organized. Each harness focuses on a different domain — Hermes is general-purpose, OpenRig focuses on software development — but they all rest on one principle: agents are not tools; they are entities that need a harness to manage them.

Beyond harnesses, you need to define agents in your organization chart, write policy files, and keep delegation records. agentic-organization is exactly that: a self-hosted, file-based system where you define agents as long-term organizational entities in your org chart. While OpenRig manages a session’s team of agents, agentic-organization institutionalizes agents as permanent members of your organization.