Pipeline profiles allow you to control the scale and depth of a research run by adjusting a single set of parameters. Profiles are defined in .hyperresearch/config.toml under the [profile.<name>] section.
Built-in Profiles
light: A lightweight research tier (steps [1,2,10,15,16]) designed for speed and lower resource usage.full: The standard high-depth research tier (all 16 steps) that uses the full suite of agents and skills.
Profile Structure
A profile consists of two main parts:
- Parameters: A flat set of values governing research scale (e.g.,
source_min, planned_searches, batch_size, word_targets). - Model Map: A mapping that assigns specific LLM models to different agent roles (e.g.,
fetcher = "sonnet", synthesizer = "opus").
CLI Commands for Profiles
Use the hpr CLI to manage profiles:
hpr profile list: List available profiles.hpr profile show <name> -j: Show the resolved parameters for a specific profile in JSON format.hpr profile validate: Validate your profile configuration against the schema.
[profile.full]
steps = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
source_min = 45
source_target_low = 55
source_target_high = 80
planned_searches = [40, 100]
candidate_urls = [80, 120]
batch_size = [8, 12]
wave1_fetchers = [10, 12]
adversarial_searches_min = 5
utility_scoring = true
source_analyst_cap = 6
source_analyst_word_trigger = 5000
loci_analysts = 2
loci_max = 6
depth_budget_total = 40
depth_budget_brackets = [[30, 15], [20, 10], [10, 5], [0, 3]]
investigator_max = 6
comparisons_tensions = [3, 5]
source_tensions = [3, 7]
tension_full_reads = [8, 12]
corpus_critic_gaps = [3, 8]
claims_cap = [80, 120]
claims_min = 30
draft_count = 3
must_read = { argumentative = [35, 50], structured = [25, 40], short = [20, 30] }
word_targets = { short = [500, 2000], structured = [2000, 5000], argumentative = [5000, 10000] }
citation_density_min = 2.0
critic_finding_caps = { dialectic = 12, depth = 12, width = 10, instruction = 15 }
gap_fetch_cap = 5
readability_rec_cap = 50
vault_check_interval_s = 60
wave_done_ratio = 0.8
[profile.full.models]
fetcher = "sonnet"
source_analyst = "sonnet"
loci_analyst = "sonnet"
depth_investigator = "sonnet"
corpus_critic = "sonnet"
draft_orchestrator = "opus"
synthesizer = "opus"
critics = "opus"
patcher = "opus"
polish_auditor = "opus"
readability_recommender = "opus"