Skip to main content
The researchharness harness runs ResearchHarness as a research agent inside a prepared environment. It runs ResearchClawBench and other long-form research benchmarks such as SGI Deep Research.

How it works

  • Prepare ResearchHarness. According to install_strategy, the harness uses an existing package or runs install_command. The installed package must be ResearchHarness 0.0.49 or later.
  • Run the research loop. AgentCompass injects a runner into the task environment, passes the prepared prompt and workspace, and launches the ResearchHarness agent. max_rounds limits agent rounds, while timeout limits the maximum runtime of one task.
  • Configure retrieval services. Serper powers web and scholar search, Jina fetches web content, and MinerU parses PDF documents. Their credentials are supplied by dedicated harness parameters or same-named environment variables.
  • Collect results. The harness converts ResearchHarness events into the standard trajectory, final answer, execution status, and requested output files in RunResult.

Parameters

Pass harness configuration with --harness-params '{...}', or place it under harness.params in the YAML supplied to --config; command-line values take precedence.

Parameter reference

ParameterTypeDefaultChoices / valuesDescription
install_strategystringinstall_if_missingpreinstalled / install_if_missing / install_alwaysHow to prepare the ResearchHarness package.
install_commandstringpython3 -m pip install researchharnessshell commandCommand used when the selected strategy installs the package.
install_timeoutint / null900integer ≥ 1 / nullInstall-command timeout in seconds.
timeoutint10800integer ≥ 1Maximum runtime of one task in seconds.
max_roundsint500integer ≥ 1Maximum agent rounds for one task.
llm_request_timeout_secondsint1200integer ≥ 1Timeout for one model request in seconds.
webfetch_tool_timeout_secondsint300integer ≥ 1Timeout for one WebFetch call in seconds.
readpdf_tool_timeout_secondsint300integer ≥ 1Timeout for one ReadPDF call in seconds.
max_output_tokensint16384integer ≥ 1Maximum output tokens for one model request.
max_input_tokensint131072integer ≥ 1Maximum input tokens for one model request.
compact_trigger_tokensstring96kpositive integer or k suffixToken threshold that triggers context compaction.
serper_api_keystringAPI key or environment referenceCredential used by web and scholar search.
jina_api_keystringAPI key or environment referenceCredential used to fetch web content.
mineru_tokenstringtoken or environment referenceCredential used to parse PDF documents.
extra_toolslist[]tool-name listAdditional ResearchHarness tools, for example str_replace_editor.

Retrieval and parsing API keys

serper_api_key, jina_api_key, and mineru_token default to ${SERPER_API_KEY}, ${JINA_API_KEY}, and ${MINERU_TOKEN}. Set those variables in the process that starts AgentCompass, or pass explicit values through --harness-params. Dedicated parameters take precedence over generic environment overrides.

Run examples

Set SERPER_API_KEY, JINA_API_KEY, and MINERU_TOKEN in the shell, then run ResearchClawBench with the ResearchHarness defaults.

Output

For each task, ResearchHarness returns a RunResult containing the execution status, final answer, normalized trajectory, requested output files, and raw ResearchHarness events and logs. The selected benchmark writes aggregate metrics and per-task details under results/<benchmark>/<model>/<run>/; see Results.