Skip to main content
Firehorse is a library for running agent harnesses against any OpenReward environment. It works by composing the appropriate harness toolset with the environment, connecting the harness agent, and orchestrating the agent loop.

Prerequisites

  • An OpenReward account and API key
  • An API key for your model provider (Anthropic, OpenAI, Google, or OpenRouter)
  • Python 3.10+

Installation

For specific agent types, you may also need the corresponding CLI tool installed:

Your First Evaluation

Set your API keys:
Run an evaluation:
This launches Claude Code as a subprocess against the terminal-bench-2-verified environment, running 5 tasks from the test split. Results are written to ./results.

Available Agents

Firehorse ships five agent harnesses, each with a different architecture: Subprocess + MCP agents (claude-code, codex, gemini) launch the respective CLI as a child process and proxy environment tools via MCP. The agent’s built-in filesystem tools are disabled and replaced with sandbox-backed equivalents. API-direct agents (resum, react) call LLM APIs directly and execute tool calls via the OpenReward session. No local CLI is required.

Key Options

Model Identifiers

Models are specified with a provider prefix:

Effort Levels

The --effort flag controls reasoning depth and maps to each provider’s native mechanism:

Understanding the Output

Firehorse produces three types of output per trial:
  • Result JSON — final metrics: total reward, tool call count, token usage, API cost, duration
  • Trajectory JSONL — full event log capturing reasoning steps, tool calls, and tool results
  • Aggregate summary — statistics across all trials
Example output structure:

Examples

Evaluate with OpenRouter

High-effort Claude Code evaluation

Codex on a custom environment

Next Steps

Harness Toolsets

Configure agent-native tool surfaces for your environments

Your First Evaluation

Build a custom evaluation environment

Building Agentic Environments

Create sandbox-based environments for agent tasks

Using Toolsets

Compose reusable tool collections into environments