Skip to main content
Benchmark PraisonAI on Terminal-Bench 2.1, the Laude Institute standard for evaluating AI coding agents in realistic terminal environments — the headline path drives the praisonai code assistant with one command.

Quick Start

1

Install Dependencies

Install Harbor and PraisonAI into one environment. Regular users install from PyPI; benchmarkers of a working tree use editable installs.
Set your API key:
2

Run the Code Adapter

Benchmark the praisonai code assistant on Terminal-Bench 2.1. Run from the repo root with PYTHONPATH=. so the adapter import path resolves.

How It Works

Harbor spins up one Docker container per task, installs the agent, drives it against the instruction, then grades the container with a verifier script. A concrete end-to-end flow:
  1. Write job_code_smoke.yaml (or reuse the one in the repo).
  2. Run PYTHONPATH=. harbor run -c examples/terminal_bench/job_code_smoke.yaml from the repo root.
  3. Harbor spins up one container per pinned task in parallel (n_concurrent_trials: 2).
  4. In each container, PraisonAICodeAgent.install() runs pip install praisonai praisonaiagents.
  5. PraisonAICodeAgent.run() invokes praisonai code "<instruction>" --dangerously-skip-approval --model openai/gpt-4o-mini, tee’d to /tmp/praisonai_code.log.
  6. Harbor’s verifier scores the container after the agent exits.
  7. Pass/fail per task and mean score print to the terminal and write to runs/; the CI workflow uploads that folder as an artifact.
  8. You paste the pass rate as a new row in RESULTS.md.

Integration Approaches

Three adapters cover different levels of the stack — start with the code adapter.
Multi-agent variant. A planner/executor/verifier team lives at examples/terminal_bench/multi_agent_example.py (class MultiAgentPraisonAI) for tasks that benefit from decomposition. Run it with:
Both --agent "module:Class" (short form, featured above) and --agent-import-path module:Class (long form) work.

YAML Configuration

Harbor 2.1 uses arrays for datasets and agents, plus n_concurrent_trials and n_attempts — unknown keys are silently ignored, so the old dataset:/agent:/n_concurrent: form runs the default oracle agent on zero tasks.
Pin a small verified subset with task_names: for a cheap smoke run.
Verify subset task names against the registry with harbor datasets list before editing task_names:. Run with configuration:

Task Filtering & Selection

Pin tasks in YAML with task_names: (preferred) or filter on the command line with -i.
Run specific tasks for targeted testing or debugging.
Run a subset for quick testing with the -l flag.
Scale to higher concurrency using cloud providers.

Recording Pass Rates

Pass rates are tracked in examples/terminal_bench/RESULTS.md in the SDK repo, one row per run. Add a row after each run recording the date, agent, model, task set, pass rate, and the uploaded Harbor artifact. See RESULTS.md for the current table.

CI Smoke Workflow

A scheduled workflow at .github/workflows/terminal-bench-smoke.yml runs the code adapter on the verified smoke subset and uploads results — copy it to set up your own weekly tracking.

Interpreting Results

Terminal-Bench uses binary scoring where each task either passes (1.0) or fails (0.0).
Model Performance: the smoke config uses gpt-4o-mini for cost; for meaningful pass rates use openai/gpt-4o or anthropic/claude-3-7-sonnet-20250219. gpt-4o-mini typically scores near 0.0 on hard tasks.

Best Practices

Verify the benchmark works by testing with the oracle agent first.
This should achieve a perfect score (1.0) and confirm your setup is correct.
Choose models based on your goals:
  • Testing integration: openai/gpt-4o-mini (fast, cheap, low scores)
  • Real benchmarking: openai/gpt-4o or anthropic/claude-3-7-sonnet-20250219
  • Cost optimization: Start with 3-5 tasks before running the full benchmark
Terminal-Bench tasks can be resource intensive:
  • Start with -n 2 concurrency for testing
  • Scale to -n 8 for serious benchmarking
  • Use cloud providers (Daytona, E2B, Modal, Novita) for -n 32+ concurrency
Record every run in examples/terminal_bench/RESULTS.md so pass-rate trends are visible over time. The CI smoke workflow uploads the Harbor results directory as an artifact for each run.

Troubleshooting


Tool Approval

Approval flags for the praisonai code assistant

Sandbox Execution

Safe code execution in isolated environments