Files
hypothesis-machine/.hypothesis-machine.example.yaml
T
Emil 5ea92990eb feat: keep the main chat responsive while subagents run
The main session and subagents share the same model backend; when that
backend serializes requests (cloud rate limits or a local server), subagent
streams queue the main chat. Adds two config knobs:

- agent_concurrency (default 3): a semaphore in AgentTree.start caps how many
  subagent sessions stream simultaneously (slot is released on completion,
  timeout, or setup error so failures cannot deadlock the queue).
- subagent_model (optional): routes spawned agents to a different model or
  backend, e.g. ollama/gemma4:e4b, so subagents never contend with the main
  session at all. Wired through the spawn tool, the main-session tools, and
  the per-agent runtime tools.

Documents both in .hypothesis-machine.example.yaml and adds a concurrency-cap
test (43 tests passing, tsc clean).
2026-07-31 23:25:52 +03:00

26 lines
870 B
YAML

max_depth: 6
max_children_per_agent: 8
max_active_agents: 32
max_total_agents_per_run: 200
max_iterations_without_progress: 3
max_research_iterations: 12
agent_timeout_seconds: 1800
# Maximum number of subagent sessions streaming at the same time. Lower it if
# the main chat stalls while subagents run on the same model backend.
agent_concurrency: 3
# Route subagents to a different model/backend so they never contend with the
# main session, e.g. "ollama/gemma4:e4b" or "deepseek/deepseek-v4-flash".
# "inherit" (unset) uses the caller's model.
# subagent_model: "ollama/gemma4:e4b"
allow_recursive_spawning: true
searxng_url: http://127.0.0.1:8888
firecrawl_url: http://127.0.0.1:3002
# browser_use_url: http://127.0.0.1:3010
web_timeout_ms: 45000
max_download_bytes: 10485760
experiment:
image: python:3.12-slim
cpus: 1
memory_mb: 1024
timeout_seconds: 300