Use environment variables or private
--config files for secrets. Run agentcompass config show to inspect the effective merged config and agentcompass config docs <kind> <id> to inspect component fields.Config Command
agentcompass config show prints YAML by default. Without component selectors it prints the global runtime and execution sections. Add --benchmark, --harness, and --env for the component defaults you want included in an editable run template:
~/.config/agentcompass/config.yaml; project-level defaults are loaded from <repo-root>/config.yaml; run-specific files can be passed with repeatable --config flags. Use agentcompass config docs <kind> <component-id> to inspect one component’s fields:
Override Order
- Built-in runtime, execution, and component defaults.
~/.config/agentcompass/config.yaml.<repo-root>/config.yaml.- Explicit
--config/config_pathfiles, in order. - CLI flags, Python keyword arguments,
--benchmark-params,--harness-params, and--env-params. - Recipe rewrites from task metadata before environment startup.
Runtime
| Path | Default | Description |
|---|---|---|
runtime.results_dir | results | Root directory for evaluation outputs. |
runtime.data_dir | data | Dataset download, cache, and preparation directory. |
runtime.timeout_seconds | 360000 | Overall run timeout in seconds. |
runtime.progress | auto | Terminal progress mode. Values: auto, plain, none. |
runtime.reuse | false | Reuse existing details from the latest matching run unless overridden by CLI. |
runtime.log_level | INFO | Log level. Values: DEBUG, INFO, WARNING, ERROR, CRITICAL. |
runtime.file_log_level | DEBUG | Run log file level. It does not follow runtime.log_level unless explicitly set to do so. |
runtime.recipe_dirs | [] | Trusted external recipe package directories, resolved from the launch working directory. |
runtime.provider_limits.host_process | 128 | Process-wide concurrent host_process sessions. |
runtime.provider_limits.docker | 128 | Process-wide concurrent Docker sessions. |
runtime.provider_limits.brainpp | 128 | Process-wide concurrent Brain++ sessions. |
runtime.provider_limits.pcluster | 128 | Process-wide concurrent PCluster sessions. |
runtime.provider_limits.hbox | 128 | Process-wide concurrent HBox sessions. |
runtime.provider_limits.daytona | 128 | Process-wide concurrent Daytona sessions. |
runtime.provider_limits.modal | 128 | Process-wide concurrent Modal sessions. |
Execution And Analysis
| Path | Default | Description |
|---|---|---|
execution.task_concurrency | 32 | Number of benchmark tasks executed concurrently in one run. |
execution.max_retries | 0 | Immediate retries after a failed attempt. 0 disables retries. |
execution.enabled_recipes | [] | Allowed recipe ids. Empty means automatic compatible recipe matching. |
execution.enable_analysis | true | Run post-analysis after evaluation. |
execution.analysis_params.task_concurrency | 1 | Concurrency used by agentcompass analysis. |
execution.analysis_params.analyzers | null | Analyzer whitelist. Unset means run all compatible analyzers. |
execution.analysis_params.exclude_analyzers | QualitativeAnalyzer, MultiQualitativeAnalyzer, HackDetectionAnalyzer | Analyzer blacklist. |
execution.analysis_params.<AnalyzerId> | analyzer-specific | Parameters passed to an analyzer by id. |
execution.analysis_params.HackDetectionAnalyzer.model | gpt-4o | Judge model for hack detection. |
execution.analysis_params.HackDetectionAnalyzer.api_key | ${OPENAI_API_KEY} | Judge API key. |
execution.analysis_params.HackDetectionAnalyzer.base_url | ${OPENAI_BASE_URL} | Judge endpoint. |
execution.analysis_params.HackDetectionAnalyzer.api_protocol | openai-chat | Judge model protocol. |
execution.analysis_params.QualitativeAnalyzer.model | gpt-4o | Judge model for qualitative analysis. |
execution.analysis_params.QualitativeAnalyzer.api_key | ${OPENAI_API_KEY} | Judge API key. |
execution.analysis_params.QualitativeAnalyzer.base_url | ${OPENAI_BASE_URL} | Judge endpoint. |
execution.analysis_params.QualitativeAnalyzer.api_protocol | openai-chat | Judge model protocol. |
execution.analysis_params.QualitativeAnalyzer.chunk_size | 15 | Step annotation chunk size. |
execution.analysis_params.QualitativeAnalyzer.render_mode | file | Visualization mode: none, file, or inline. |
execution.analysis_params.QualitativeAnalyzer.render_out_dir | "" | Directory for rendered HTML reports. |
execution.analysis_params.MultiQualitativeAnalyzer.reference_dir | "" | Directory mirroring details/ for reference results. |
execution.analysis_params.MultiQualitativeAnalyzer.model | gpt-4o | Judge model for multi-run qualitative comparison. |
execution.analysis_params.MultiQualitativeAnalyzer.api_key | ${OPENAI_API_KEY} | Judge API key. |
execution.analysis_params.MultiQualitativeAnalyzer.base_url | ${OPENAI_BASE_URL} | Judge endpoint. |
execution.analysis_params.MultiQualitativeAnalyzer.api_protocol | openai-chat | Judge model protocol. |
execution.analysis_params.MultiQualitativeAnalyzer.chunk_size | 15 | Step annotation chunk size. |
Environments
Host Process
| Path | Default | Description |
|---|---|---|
environments.host_process.workspace | . | Working directory for host-process execution. |
environments.host_process.default_workspace_root | workspace/ | Root used for per-task workspaces when the benchmark did not specify one. |
Docker
| Path | Default | Description |
|---|---|---|
environments.docker.image | unset | Docker image. Required when using Docker directly unless a recipe supplies one. |
environments.docker.name | unset | Container name. Unset means auto-generated. |
environments.docker.platform | unset | Docker platform such as linux/amd64. Unset means Docker default. |
environments.docker.workspace | /workspace | Container working directory. |
environments.docker.command | tail -f /dev/null | Command used to keep an interactive task container alive. |
environments.docker.default_workspace_root | /workspace/ | Root used for per-task workspaces when the benchmark did not specify one. |
environments.docker.env | {} | Environment variables injected into the container. |
environments.docker.mounts | [] | Provider-specific Docker mount definitions. |
Brain++
| Path | Default | Description |
|---|---|---|
environments.brainpp.image | unset | Brain++ image. Required when using Brain++ directly unless a recipe supplies one. |
environments.brainpp.env_gateway_server | null | Brain++ env-gateway server. Set privately. |
environments.brainpp.partition | null | Brain++ partition. Set privately when required by the cluster. |
environments.brainpp.default_workspace_root | null | Root used for per-task workspaces. Set privately. |
environments.brainpp.wait_for_ready_timeout | 1800 | Wait timeout for the remote environment to become ready, in seconds. |
environments.brainpp.idle_timeout | 3600 | Brain++ idle timeout in seconds. |
environments.brainpp.env_client_timeout | 3600 | Brain++ client timeout in seconds. |
environments.brainpp.env_variables | {} | Environment variables passed when creating the session. |
PCluster
| Path | Default | Description |
|---|---|---|
environments.pcluster.image | unset | PCluster image. Required unless supplied by a recipe. |
environments.pcluster.base_url | "" | PCluster gateway base URL. Set privately. |
environments.pcluster.secret_key | null | PCluster gateway secret key. Set privately. |
environments.pcluster.ttl_seconds | 43200 | PCluster session lifetime in seconds. |
environments.pcluster.env_client_timeout | 43200 | PCluster client timeout in seconds. |
environments.pcluster.default_workspace_root | /workspace/ | Root used for per-task workspaces when the benchmark did not specify one. |
environments.pcluster.env_variables | {} | Environment variables persisted after session creation. |
HBox
| Path | Default | Description |
|---|---|---|
environments.hbox.image | unset | HBox image. Required unless supplied by a recipe. |
environments.hbox.base_url | "" | HBox gateway base URL. Set privately. |
environments.hbox.secret_key | null | HBox gateway secret key. Set privately. |
environments.hbox.ttl_seconds | 43200 | HBox session lifetime in seconds. |
environments.hbox.env_client_timeout | 43200 | HBox client timeout in seconds. |
environments.hbox.default_workspace_root | /workspace/ | Root used for per-task workspaces when the benchmark did not specify one. |
environments.hbox.env_variables | {} | Environment variables persisted after session creation. |
Daytona
| Path | Default | Description |
|---|---|---|
environments.daytona.api_key | ${DAYTONA_API_KEY} | Daytona API key. |
environments.daytona.api_url | ${DAYTONA_API_URL} | Daytona API URL. |
environments.daytona.target | ${DAYTONA_TARGET} | Daytona target. |
environments.daytona.jwt_token | ${DAYTONA_JWT_TOKEN} | Daytona JWT token. |
environments.daytona.organization_id | ${DAYTONA_ORGANIZATION_ID} | Daytona organization id. |
environments.daytona.image | null | Optional Docker image. Recipes may set it per task. |
environments.daytona.snapshot | null | Optional Daytona snapshot. |
environments.daytona.dockerfile | null | Reserved for future build strategies; currently fails fast if set. |
environments.daytona.compose_file | null | Reserved for future compose strategies; currently fails fast if set. |
environments.daytona.sandbox | unset | Optional provider-neutral sandbox contract for mode, image, snapshot, workdir, and features. |
environments.daytona.language | python | Daytona sandbox language. |
environments.daytona.default_workspace_root | workspace/ | Root exposed to harnesses when the benchmark did not specify one. |
environments.daytona.delete_on_close | true | Delete the sandbox after each task. Set false for debugging. |
environments.daytona.auto_stop_interval | 15 | Daytona auto-stop interval. |
environments.daytona.sandbox_start_timeout | 60 | Sandbox startup timeout in seconds. |
environments.daytona.operation_timeout | 1800 | Provider operation timeout in seconds. |
environments.daytona.env_variables | {} | Environment variables persisted in the sandbox. |
environments.daytona.labels | {} | Labels attached to the sandbox. |
Modal
| Path | Default | Description |
|---|---|---|
environments.modal.token_id | ${MODAL_TOKEN_ID} | Modal token id. |
environments.modal.token_secret | ${MODAL_TOKEN_SECRET} | Modal token secret. |
environments.modal.app_name | agentcompass-sandboxes | Modal App used to group task sandboxes. |
environments.modal.environment_name | null | Optional Modal Environment name. |
environments.modal.name | null | Optional sandbox name. Unset means Modal assigns an id. |
environments.modal.image | null | Optional registry image. Recipes may set it per task. |
environments.modal.named_image | null | Optional published Modal named image. |
environments.modal.add_python | null | Optional Python series to inject when a registry image lacks Python. |
environments.modal.timeout | 43200 | Modal sandbox maximum lifetime in seconds. |
environments.modal.idle_timeout | null | Modal sandbox idle timeout in seconds. |
environments.modal.workdir | null | Optional absolute working directory inside the sandbox. |
environments.modal.default_workspace_root | /workspace/ | Root exposed to harnesses when the benchmark did not specify one. |
environments.modal.cpu | null | Modal CPU resource option. |
environments.modal.memory | null | Modal memory resource option. |
environments.modal.gpu | null | Modal GPU resource option. |
environments.modal.cloud | null | Modal cloud placement option. |
environments.modal.region | null | Modal region placement option. |
environments.modal.resources | {} | Additional Modal resource options. |
environments.modal.block_network | false | Disable outbound network access when supported. |
environments.modal.outbound_cidr_allowlist | [] | Allowed outbound CIDR ranges. |
environments.modal.outbound_domain_allowlist | [] | Allowed outbound domains. |
environments.modal.inbound_cidr_allowlist | [] | Allowed inbound CIDR ranges. |
environments.modal.sandbox_start_timeout | 300 | Modal sandbox startup timeout in seconds. |
environments.modal.operation_timeout | 1800 | Provider operation timeout in seconds. |
environments.modal.env_variables | {} | Environment variables injected into the sandbox. |
environments.modal.tags | {} | Modal tags attached to the sandbox. |
Benchmarks
| Path | Default | Description |
|---|---|---|
benchmarks.screenspot.category | all | ScreenSpot split filter. Values include all, mobile, desktop, web, or a list. |
benchmarks.browsecomp.category | all | BrowseComp category filter. |
benchmarks.browsecomp.judge_model | unset | LLM-as-judge model spec. Required for judge-scored runs. |
benchmarks.browsecomp_zh.category | all | BrowseComp-ZH category filter. |
benchmarks.browsecomp_zh.judge_model | unset | LLM-as-judge model spec. Required for judge-scored runs. |
benchmarks.deepsearchqa.category | all | DeepSearchQA category filter. |
benchmarks.deepsearchqa.answer_type | all | Answer type filter. Values include all, Single Answer, Set Answer. |
benchmarks.deepsearchqa.judge_model | unset | LLM-as-judge model spec. Required for judge-scored runs. |
benchmarks.frontierscience.category | all | FrontierScience split filter. Values include all, research, olympiad, or a list. |
benchmarks.frontierscience.subject | all | Subject filter. Values include all, physics, chemistry, biology. |
benchmarks.frontierscience.research_pass_threshold | 7.0 | Passing threshold on the 0-10 research judge rubric. |
benchmarks.frontierscience.judge_model | unset | LLM-as-judge model spec. Required for judge-scored runs. |
benchmarks.gdpval_ac.workspace_root | /workspace | Container workspace root. Each task derives a task-specific subdirectory. |
benchmarks.gdpval_ac.upload_reference_files | true | Upload reference files with env.upload; set false if they are already mounted. |
benchmarks.gdpval_ac.sectors | [] | Optional sector filter. Empty means no filter. |
benchmarks.gdpval_ac.occupations | [] | Optional occupation filter. Empty means no filter. |
benchmarks.gdpval_ac.judge_harness | openclaw | Harness used for pairwise judging against the fixed baseline. |
benchmarks.gdpval_ac.judge_model | unset | Judge model spec for pairwise baseline comparison. |
benchmarks.gdpval_ac.judge_max_turns | 100 | Maximum turns for the judge agent. |
benchmarks.gdpval_ac.judge_concurrency | 8 | Concurrent rubric windows inside one task. |
benchmarks.gdpval_ac.judge_rubric_window | 16 | Rubric items per judge window. 0 means one full combined window. |
benchmarks.gdpval_ac.judge_max_retries | 1 | Retry rounds for failed rubric windows. |
benchmarks.gaia.category | all | GAIA difficulty filter: all, 1, 2, 3, or a list. |
benchmarks.gaia.modality | llm | GAIA modality. Values: llm, vlm. |
benchmarks.gaia.judge_model | unset | LLM-as-judge model spec. Required for judge-scored runs. |
benchmarks.hle.category | all | HLE category filter. |
benchmarks.hle.modality | llm | HLE modality. Values: llm, vlm. |
benchmarks.hle.judge_model | unset | LLM-as-judge model spec. Required for judge-scored runs. |
benchmarks.hle_verified.category | all | HLE-Verified category filter. |
benchmarks.hle_verified.subset | all | HLE-Verified subset filter. Values include all, gold, revision, uncertain, or a list. |
benchmarks.hle_verified.modality | llm | HLE-Verified modality. llm runs text-only samples; vlm passes images. |
benchmarks.hle_verified.judge_model | unset | LLM-as-judge model spec. Required for judge-scored runs. |
benchmarks.scicode.dataset_zip_url | OpenCompass SciCode zip URL | Dataset archive URL containing SciCode data. |
benchmarks.scicode.split | all | Data split. Values: all, validation, test. |
benchmarks.scicode.category | all | SciCode category filter. |
benchmarks.scicode.with_background | true | Include step background in prompts. |
benchmarks.scicode.h5py_file | "" | Official test-data HDF5 path, resolved relative to runtime.data_dir when relative. |
benchmarks.scicode.workspace_root | scicode | Workspace root for generated temporary code, relative to runtime.data_dir when relative. |
benchmarks.scicode.timeout | 1800 | Timeout for a single step test script in seconds. |
benchmarks.sgi_deep_research.category | all | SGI Deep Research subject filter. |
benchmarks.sgi_deep_research.judge_model | unset | LLM-as-judge model spec. Required for judge-scored runs. |
benchmarks.researchclawbench.category | all | ResearchClawBench subject filter. |
benchmarks.researchclawbench.tasks_dir | "" | Local tasks directory or ResearchClawBench repository root. Empty means auto-download base tasks. |
benchmarks.researchclawbench.workspace_root | researchclawbench | Workspace root for task material. |
benchmarks.researchclawbench.pass_threshold | 50.0 | Checklist score threshold for correctness. |
benchmarks.researchclawbench.limit | 0 | Maximum loaded tasks after filtering. 0 means unlimited. |
benchmarks.researchclawbench.max_generated_images | 5 | Maximum generated images submitted to the judge per image checklist item. |
benchmarks.swebench_verified.prepare_mode | git_clone | Repository preparation mode. Values: git_clone, prebaked. |
benchmarks.swebench_verified.workspace_root | swebench_verified | Workspace root for repos, patches, and evaluation material. |
benchmarks.swebench_verified.eval_timeout | 1800 | Evaluation command timeout in seconds. |
benchmarks.swebench_pro.prepare_mode | git_clone | Repository preparation mode. Values: git_clone, prebaked. |
benchmarks.swebench_pro.workspace_root | swebench_pro | Workspace root for SWE-bench Pro material. |
benchmarks.swebench_pro.scripts_dir | "" | Local run_script.sh and parser.py root. Empty means resolve from dataset directory. |
benchmarks.swebench_pro.eval_timeout | 3600 | Evaluation command timeout in seconds. |
benchmarks.swebench_multilingual.prepare_mode | git_clone | Repository preparation mode. Values: git_clone, prebaked. |
benchmarks.swebench_multilingual.workspace_root | swebench_multilingual | Workspace root for repos, patches, and evaluation material. |
benchmarks.swebench_multilingual.eval_timeout | 1800 | Evaluation command timeout in seconds. |
benchmarks.terminal_bench_2.workspace_root | /root | Fixed workspace inside the Terminal-Bench image. |
benchmarks.terminal_bench_2.verifier_timeout_multiplier | 8.0 | Multiplier for verifier timeout. |
benchmarks.terminal_bench_2.execute_timeout_multiplier | 16.0 | Multiplier for agent command execution timeout. |
benchmarks.terminal_bench_2_verified.workspace_root | /root | Fixed workspace inside the TerminalBench-Verified image. |
benchmarks.terminal_bench_2_verified.verifier_timeout_multiplier | 8.0 | Multiplier for verifier timeout. |
benchmarks.terminal_bench_2_verified.execute_timeout_multiplier | 16.0 | Multiplier for agent command execution timeout. |
benchmarks.terminal_bench_2_1.workspace_root | /root | Fixed workspace inside the Terminal-Bench 2.1 image. |
benchmarks.terminal_bench_2_1.verifier_timeout_multiplier | 8.0 | Multiplier for verifier timeout. |
benchmarks.terminal_bench_2_1.execute_timeout_multiplier | 16.0 | Multiplier for agent command execution timeout. |
benchmarks.pinchbench.skill_repo_url | https://github.com/pinchbench/skill.git | Official PinchBench skill repository URL cloned into data. |
benchmarks.pinchbench.skill_repo_tag | v1.1.0 | Git tag used when cloning the skill repository. |
benchmarks.pinchbench.skill_package_url | "" | Optional external skill package URL. The git repository takes priority. |
benchmarks.pinchbench.skill_package_sha256 | "" | Optional SHA-256 checksum for the skill package. |
benchmarks.pinchbench.suite | all | Task selection: all, automated-only, comma-separated task ids, or a list. |
benchmarks.pinchbench.limit | 0 | Maximum loaded tasks after filtering. 0 means unlimited. |
benchmarks.pinchbench.timeout_multiplier | 1.0 | Multiplier for task frontmatter timeout_seconds. |
benchmarks.skillsbench.workspace_root | /root | Workspace inside the SkillsBench image. |
benchmarks.skillsbench.dataset_source_dir | "" | Local task source path for development; symlinked into data/skillsbench/tasks. |
benchmarks.skillsbench.dataset_zip_url | "" | Remote zip package URL. Empty means use dataset_source_dir. |
benchmarks.skillsbench.timeout_multiplier | 4.0 | Multiplier for task.toml timeout_sec, applied to agent inference and verifier stages. |
Harnesses
Coding Harnesses
| Path | Default | Description |
|---|---|---|
harnesses.claude_code.binary | claude | Claude Code executable name or path. |
harnesses.claude_code.install_strategy | install_if_missing | Preparation strategy: preinstalled, install_if_missing, upload. |
harnesses.claude_code.install_command | npm install -g @anthropic-ai/claude-code | Install command when needed. |
harnesses.claude_code.upload_src | "" | Local file path used by the upload strategy. |
harnesses.claude_code.upload_dst | /usr/bin/claude | Destination path for the uploaded executable. |
harnesses.claude_code.max_turns | 500 | Maximum Claude Code turns per task. |
harnesses.claude_code.max_output_tokens | 80000 | Claude Code max output tokens. null uses Claude Code default. |
harnesses.claude_code.append_system_prompt | "" | Extra system prompt appended for Claude Code. |
harnesses.claude_code.dangerously_skip_permissions | true | Pass --dangerously-skip-permissions to Claude Code. |
harnesses.codex.binary | codex | Codex executable name or path. |
harnesses.codex.install_strategy | install_if_missing | Preparation strategy: preinstalled, install_if_missing, upload. |
harnesses.codex.install_command | npm install -g @openai/codex | Install command when needed. |
harnesses.codex.upload_src | "" | Local file path used by the upload strategy. |
harnesses.codex.upload_dst | /usr/bin/codex | Destination path for the uploaded executable. |
harnesses.codex.sandbox | workspace-write | Codex sandbox policy. Values: read-only, workspace-write, danger-full-access. |
harnesses.codex.wire_api | responses | Custom model provider wire protocol. Values: responses, chat. |
harnesses.codex.reasoning_effort | "" | Optional model reasoning effort. Empty means unset. |
harnesses.codex.dangerously_bypass_approvals_and_sandbox | true | Pass Codex bypass flag for approvals and sandboxing. |
harnesses.mini_swe_agent.binary | mini | mini-SWE-agent executable name or path. |
harnesses.mini_swe_agent.launch_mode | local | Launch mode: local or remote. |
harnesses.mini_swe_agent.install_strategy | install_if_missing | Preparation strategy: preinstalled, install_if_missing. |
harnesses.mini_swe_agent.install_command | pip install mini-swe-agent | Install command when needed. |
harnesses.mini_swe_agent.step_limit | 250 | Maximum agent steps. |
harnesses.mini_swe_agent.cost_limit | 3.0 | mini-SWE-agent cost limit. |
harnesses.mini_swe_agent.cost_tracking | ignore_errors | Cost tracking strategy. |
harnesses.mini_swe_agent.env | {} | Environment variables injected into mini-SWE-agent. |
harnesses.mini_swe_agent.timeout | 10000 | Harness execution timeout per task in seconds. |
harnesses.mini_swe_agent.command_timeout | 2400 | Timeout for one command in seconds. |
harnesses.openhands.openhands_version | 1.23.0 | OpenHands SDK/tools version. |
harnesses.openhands.tool_preset | default | OpenHands tool preset: default, gemini, gpt5, planning. |
harnesses.openhands.max_iterations | 250 | Maximum conversation iterations. |
harnesses.openhands.conversation_timeout | 1800 | Default timeout for one LLM request in seconds. |
harnesses.openhands.command_timeout | 1800 | Terminal command timeout in seconds. |
harnesses.openhands.terminal_no_change_timeout_seconds | 600 | Soft timeout when terminal output stops changing. |
harnesses.openhands.terminal_max_output_size | 200000 | Maximum terminal output returned to the agent. |
harnesses.openhands.enable_condenser | true | Enable OpenHands LLM summarizing condenser. |
harnesses.openhands.condenser_max_size | 240 | Maximum context events retained by condenser. |
harnesses.openhands.condenser_keep_first | 2 | Number of first events retained by condenser. |
harnesses.openhands.env | {} | Environment variables passed to runtime install and terminal tools. |
harnesses.openhands.timeout | 10800 | Whole-case wall-clock timeout in seconds. |
Research And Tool Harnesses
| Path | Default | Description |
|---|---|---|
harnesses.researchharness.python_binary | python3 | Python executable for ResearchHarness injection. |
harnesses.researchharness.install_strategy | install_if_missing | Preparation strategy: preinstalled, install_if_missing, install_always. |
harnesses.researchharness.install_command | python3 -m pip install researchharness | Install command when needed. |
harnesses.researchharness.install_timeout | 900 | Install command timeout in seconds. |
harnesses.researchharness.max_llm_calls | null | Maximum LLM calls. null uses ResearchHarness default. |
harnesses.researchharness.max_rounds | null | Maximum agent rounds. null uses ResearchHarness default. |
harnesses.researchharness.max_runtime_seconds | null | Maximum runtime in seconds. null uses ResearchHarness default. |
harnesses.researchharness.serper_api_key | ${SERPER_API_KEY} | Serper API key for WebSearch and ScholarSearch. |
harnesses.researchharness.jina_api_key | ${JINA_API_KEY} | Jina API key for WebFetch. |
harnesses.researchharness.mineru_token | ${MINERU_TOKEN} | MinerU token for ReadPDF. |
harnesses.researchharness.env | {} | Extra environment variables; dedicated tool keys take priority. |
harnesses.researchharness.extra_tools | [] | Optional extra tools such as str_replace_editor. |
harnesses.researchharness.timeout | null | Harness execution timeout per task. null uses environment default. |
harnesses.naive_search_agent.install_root | /opt/agentcompass/naive_search_agent | Engine install root inside non-host sandboxes. |
harnesses.naive_search_agent.tools | search, visit | Enabled tools. Values include search, browse, visit. |
harnesses.naive_search_agent.max_iterations | 50 | Maximum agent iterations per task. |
harnesses.naive_search_agent.max_retry | 10 | Application-level retry limit for LLM/tool calls. |
harnesses.naive_search_agent.retry_interval | 5 | Seconds between retries. |
harnesses.naive_search_agent.max_tool_calls_per_turn | 20 | Maximum tool calls in one assistant message. |
harnesses.naive_search_agent.max_tool_response_length | 8192 | Tool response truncation length. |
harnesses.naive_search_agent.request_timeout | 3500 | Read timeout for one LLM HTTP request in seconds. |
harnesses.naive_search_agent.tool_model_name | "" | Optional model for the visit tool. Empty means reuse main model. |
harnesses.naive_search_agent.serper_api_key | ${SERPER_API_KEY} | Serper search API key. |
harnesses.naive_search_agent.jina_api_key | ${JINA_API_KEY} | Jina Reader API key. |
harnesses.naive_search_agent.env | {} | Extra environment variables injected into the engine process. |
harnesses.naive_search_agent.timeout | 9000 | Whole-task wall-clock limit in seconds. |
harnesses.openclaw.binary | openclaw | OpenClaw executable name or path. |
harnesses.openclaw.install_strategy | auto | Preparation strategy: auto, preinstalled, install_if_missing, install_always, upload. |
harnesses.openclaw.openclaw_version | 2026.3.22 | OpenClaw npm package version. |
harnesses.openclaw.install_command | "" | Optional install command. Empty means derive from openclaw_version. |
harnesses.openclaw.upload_src | "" | Local file path used by the upload strategy. |
harnesses.openclaw.upload_dst | /usr/local/bin/openclaw | Destination path for uploaded binary. |
harnesses.openclaw.provider_id | vllm | OpenClaw custom provider id. |
harnesses.openclaw.gateway_port | 18789 | OpenClaw gateway port. |
harnesses.openclaw.gateway_bind | loopback | OpenClaw gateway bind policy. |
harnesses.openclaw.agent_prefix | agentcompass | OpenClaw agent id prefix. |
harnesses.openclaw.openclaw_local | true | Use OpenClaw local mode. |
harnesses.openclaw.max_message_chars | 131072 | Maximum characters per single CLI message before chunking. |
harnesses.openclaw.context_window | 250000 | OpenClaw context window. 0 means do not write it. |
harnesses.openclaw.max_tokens | 80000 | OpenClaw max output tokens. 0 means do not write it. |
harnesses.openclaw.timeout | 7200 | OpenClaw wall-clock timeout per task in seconds. |
harnesses.openclaw.provider_timeout_seconds | 3600 | Timeout injected into OpenClaw provider config. |
Terminal, GUI, And Code-Interpreter Harnesses
| Path | Default | Description |
|---|---|---|
harnesses.terminus2.endpoint | unset | Optional service endpoint. Also accepts service_url or url aliases. |
harnesses.terminus2.headers | {} | HTTP headers for optional service requests. |
harnesses.terminus2.request_timeout | 3600 | Service request timeout in seconds. |
harnesses.terminus2.service_protocol | wait | Service completion protocol: wait or poll. |
harnesses.terminus2.modality | llm | Agent modality: llm or vlm. |
harnesses.terminus2.service_env_params | {} | Extra environment params passed to the service layer. |
harnesses.terminus2.timeout | 21600 | Harness-level agent execution timeout in seconds. |
harnesses.terminus2.agent_setup_timeout_sec | 360 | Terminus2 agent setup timeout in seconds. |
harnesses.terminus2.parser_name | json | Response parser: json, xml, or tool_call. |
harnesses.terminus2.max_turns | null | Maximum agent turns. null uses harness default behavior. |
harnesses.terminus2.session_id | null | Explicit session id. null auto-generates per run. |
harnesses.terminus2.record_terminal_session | false | Record terminal sessions with asciinema when supported. |
harnesses.terminus2.enable_summarize | true | Enable active and context-length summarization. |
harnesses.terminus2.fallback_context_limit | 256000 | Fallback token limit when context-window lookup fails. |
harnesses.terminus2.tmux_pane_width | 160 | Terminal pane width. |
harnesses.terminus2.tmux_pane_height | 40 | Terminal pane height. |
harnesses.terminus2.trajectory_config | {} | Trajectory options such as raw content or linear history. |
harnesses.terminus2.store_all_messages | false | Store full model messages in result metadata. |
harnesses.terminus2.interleaved_thinking | false | Enable interleaved thinking for compatible models. |
harnesses.terminus2.skills_dir | false | Skills directory path. false disables skill discovery. |
harnesses.terminus2.mcp_servers | [] | MCP server configs exposed to Terminus2. |
harnesses.terminus2_skills.parser_name | json | Response parser: json or xml. |
harnesses.terminus2_skills.skill_format | json | Skill tool-call format: json or xml. |
harnesses.terminus2_skills.max_turns | 300 | Maximum agent turns. |
harnesses.terminus2_skills.agent_setup_timeout_sec | 600 | Terminus2 agent setup timeout in seconds. |
harnesses.terminus2_skills.verifier_timeout_multiplier | 8.0 | Benchmark verifier timeout multiplier. |
harnesses.terminus2_skills.execute_timeout_multiplier | 8.0 | Agent command execution timeout multiplier. |
harnesses.terminus2_skills.enable_summarize | false | Enable active and context-length summarization. |
harnesses.terminus2_skills.proactive_summarization_threshold | 80000 | Token threshold for proactive summarization. |
harnesses.terminus2_skills.tmux_pane_width | 160 | Terminal pane width. |
harnesses.terminus2_skills.tmux_pane_height | 40 | Terminal pane height. |
harnesses.terminus2_skills.record_terminal_session | false | Record terminal sessions when supported. |
harnesses.terminus2_skills.interleaved_thinking | true | Enable interleaved thinking. |
harnesses.terminus2_skills.skill_dirs | /root/.claude/skills, /root/.terminus/skills | Skill directories inside the container. |
harnesses.terminus2_skills.max_skill_index_chars | 32000 | Maximum skill index characters. |
harnesses.terminus2_skills.max_skill_content_chars | 16000 | Maximum characters from one skill file. |
harnesses.qwen3vl_gui | {} | No configurable defaults currently. |
harnesses.scicode_tool_use.mode | tool_use | Generation mode. tool_use calls the code interpreter; naive does one-shot generation. |
harnesses.scicode_tool_use.tool_names | code_interpreter | Enabled tools. Currently only code_interpreter. |
harnesses.scicode_tool_use.tool_use_max_loops | 30 | Maximum tool-use loops per step. |
harnesses.scicode_tool_use.with_background | true | Include step background in prompts. |
harnesses.scicode_tool_use.code_timeout_seconds | 180 | Code interpreter execution timeout in seconds. |
harnesses.scicode_tool_use.code_workdir | .agentcompass/scicode_tool_use | Local work directory for code execution. |
harnesses.scicode_tool_use.execution_preamble | "" | Extra preamble code, usually injected from SciCode metadata. |
harnesses.scicode_tool_use.python_binary | "" | Python executable. Empty means current AgentCompass Python. |
harnesses.scicode_tool_use.sandbox_url | "" | Optional sandbox service URL. Empty means read SCICODE_SANDBOX_URL. |
harnesses.scicode_tool_use.sandbox_no_proxy | "" | Optional sandbox no-proxy value. Empty means read SCICODE_NO_PROXY. |
harnesses.scicode_tool_use.sandbox_memory_limit_mb | 1024 | Sandbox code execution memory limit in MB. |
harnesses.scicode_tool_use.sandbox_max_retries | 3 | Sandbox API retry count. |
harnesses.scicode_tool_use.sandbox_retry_delay_seconds | 2.0 | Delay between sandbox API retries in seconds. |
harnesses.scicode_tool_use.sandbox_api_timeout_seconds | 30 | Sandbox API request timeout in seconds. |
harnesses.scicode_tool_use.temperature | unset | Optional sampling temperature. Falls back to model.params.temperature, then 0.0. |
Secrets
Prefer environment variables for secrets. Model endpoints can useMODEL_BASE_URL and MODEL_API_KEY; Modal can use MODAL_TOKEN_ID and MODAL_TOKEN_SECRET; Daytona can use DAYTONA_API_KEY.