Comparisons6 min read2026-10-12

Build Your Own Agent Stack, or Connect to Complete Agent Harnesses?

Adding an agent to a product no longer has to start with a custom agent backend. Which layer you start at decides what your team builds and operates. Both paths side by side, layer by layer.

ByHarnessRouter Editorial Team
A finished rack of sealed runtime capsules fed by a single cobalt cable, beside a staggered tower of six trays of unassembled parts
Connect to complete agent harnesses, or assemble your own workflow from framework parts.

The short answer

If your product needs an agent, you no longer have to start by building an agent backend. You can build your own agent stack from a framework, or connect your product directly to complete agent harnesses.

The decision that matters is which layer you start at, because it sets which work your team owns and which work arrives already built.

Two starting points, side by side

The first path is to build directly on a framework such as LangGraph: your team defines the agent workflow and configures its capabilities, runtime policies, deployment, and observation.

The second path connects your product to complete agent harnesses through HarnessRouter. HarnessRouter is the world's first unified interface for agent harnesses. Your product connects once through one API and runs complete agent harnesses such as Codex, Claude Code, Hermes, and Pi, under one product-backend contract: harness selection and configuration, task execution, sessions, streaming progress, files, cancellation, error handling, and results. New to agent harnesses? Read our plain-language guide.

The animation below compares the two paths side by side.

Left: your product calls one API, and HarnessRouter Cloud configures, runs, streams, and traces complete agent harnesses. Right: the layers a team builds, configures, and operates when it builds directly with LangGraph.

What you build when you start at the framework

Starting from LangGraph, the right side of the animation is your roadmap. After your product, the diagram groups the work into six layers:

  • Your LangGraph application code.
  • The agent workflow: nodes, edges, routing, loops, a state schema, and tool logic.
  • Agent capabilities: models, tools, MCP servers, business data, memory, and human approval through interrupts.
  • Runtime policies: threads, streaming, durable execution, retries, timeouts, and error handling.
  • Deployment: LangSmith Cloud, a hybrid setup, or self-hosting.
  • Observation and evaluation in LangSmith: tracing, evals, and monitoring.

None of this is wasted work: it gives your team control over every node, edge, state change, and routing decision. LangGraph supplies runtime pieces such as durable execution and retries; your team designs, wires, and tests the workflow, and keeps it current as models and requirements change.

What you configure with HarnessRouter

The left side of the animation is shorter because the harness already exists. A complete agent harness such as Codex or Claude Code arrives with its own execution loop, context management, and tools, built and maintained by the team behind it.

Through the Unified Harness Protocol (UHP), your product calls one API and names the harness and model for each task. You configure the agent itself with instructions, MCP tools, skills, tool restrictions, and budgets. HarnessRouter handles the execution lifecycle around it through one contract:

  • Task execution and sessions.
  • Streaming events.
  • Files and artifacts.
  • Cancellation and structured errors.
  • Execution traces in HarnessRouter Cloud.

HarnessRouter Cloud provisions and operates one isolated sandbox for every task, so the execution environment is not a layer you build.

Because the contract stays the same, you can switch the model or the entire harness without changing your product integration. Harnesses still differ in tools, permissions, and session behavior, so rerun your own evaluations before you switch a production workload.

Layer by layer: who owns what

The same responsibilities, mapped to who does the work on each path. Your product logic stays yours on both.

LayerBuild directly with LangGraphConnect through HarnessRouter
Agent loop and workflowYou define nodes, edges, state, and routingThe harness you choose brings its own loop
Tools and capabilitiesYou wire them into your graphYou configure them on an agent: instructions, MCP tools, and skills
Runtime behaviorYou configure runtime policies in your graphSessions, streaming, cancellation, and errors handled through one contract
Execution environmentYou pick a deployment option and operate it, or use LangSmith CloudOne isolated sandbox per task, provisioned by HarnessRouter Cloud
Trying a different harnessIntegrate the other agent separately, or rebuild the workflow around itName a different harness in the request; your product integration stays the same

When each path fits

Build on a framework when the workflow itself is your product: control flow you must define step by step, approvals at specific points, or state shaped by your domain.

Connect through HarnessRouter when you want an agent that already works and want to keep the harness a choice. You can compare Codex and Claude Code on your own task, then choose the supported harness that meets your quality, latency, and cost requirements.

The paths can coexist in one product, split task by task.

Hosted or self-hosted

The animation shows the managed HarnessRouter Cloud path, which runs the interface for you with managed sandboxes and execution traces. If you prefer to host it yourself, HarnessRouter Community Edition is open source under Apache 2.0, and you can self-host the router with your own provider keys.

Learn about HarnessRouter Community Edition

FAQ

Common questions

What is the difference between an agent framework and an agent harness?

An agent framework is a toolkit: it gives you building blocks, and your team defines how the agent plans, calls tools, and decides what to do next. A complete agent harness is an agent that is already built, such as Codex or Claude Code: its loop, context handling, and tools come with it, and you configure it and give it tasks.

Can I use a framework and complete agent harnesses together?

Yes, and the split follows the task. When both the goal and the steps are well defined, keep your existing workflow: a fixed sequence of steps can use fewer tokens than an agent working the steps out each time. When the goal is clear but the path is uncertain or too complex to encode practically, send the task to a complete harness: it works out the steps itself, which can save the engineering overhead of defining and maintaining every branch of a workflow.

Which harnesses can I connect through HarnessRouter?

Codex, Claude Code, Hermes, Pi, DeepSeek Harness (a version-pinned developer preview), and more, with the list growing. The harnesses page lists every supported harness with its current status.

Connect your product to complete agent harnesses through HarnessRouter

Pick a harness and a model, configure your agent, and run real tasks through HarnessRouter Cloud, with managed sandboxes and execution traces.

Start building