omp: scout on @smol, cap active subagents at 2, frank-medium remote compaction

- task.agentModelOverrides.scout: "@smol" (frank-small, xhigh thinking)
- task.maxConcurrency: 2 (semaphore on ACTIVE subagents; total
  instantiations uncapped)
- compaction.remoteEndpoint -> frank-medium /v1/chat/completions
  (192.168.0.235:7770), methodOrder remote-first; compactionModel:
  frank-medium on every model so the wire model id is always valid
- models.yml header: single source of truth (pi-era import retired)

Verified: omp config get on all keys; omp -p startup probe passed;
live POST in the remote-compaction wire format answered.
This commit is contained in:
Frank
2026-09-17 19:24:02 -07:00
parent 368caadbe8
commit eebcfbf5ac
2 changed files with 31 additions and 3 deletions
+12 -1
View File
@@ -55,10 +55,15 @@ autolearn:
enabled: true
autoContinue: true
compaction:
# Server-side compaction always runs on frank-medium: the endpoint is
# frank-medium's /v1/chat/completions, and every model in models.yml
# carries compactionModel: llamacpp (dankserver)/frank-medium so the
# POST body's model id stays valid from any session model.
remoteEndpoint: http://192.168.0.235:7770/v1/chat/completions
methodOrder:
- remote
- shake
- soft
- remote
- handoff
- snapcompact
idleThresholdTokens: 100000
@@ -91,6 +96,12 @@ display:
showTokenUsage: true
task:
showResolvedModelBadge: true
# Cap ACTIVE subagents at 2 (a semaphore on concurrency); total
# instantiations over a session are uncapped.
maxConcurrency: 2
agentModelOverrides:
# scout/research runs on frank-small at xhigh thinking (the smol role)
scout: "@smol"
snapcompact:
systemPrompt: none
toolResults: false
+19 -2
View File
@@ -1,4 +1,6 @@
# Imported from ~/.pi/agent/models.json (pi agent settings)
# OMP agent model registry — single source of truth (OMP is the primary
# harness; there is no second copy to keep in sync).
# Conversion notes from the pi-era import:
# - apiKey "EMPTY" -> auth: none (keyless local endpoint)
# - thinkingLevelMap {max: xhigh} -> compat.reasoningEffortMap
providers:
@@ -57,6 +59,11 @@ providers:
models:
- id: frank-large
name: "frank-large (dankclaw-gpu)"
# Server-side compaction always runs on frank-medium (see
# compaction.remoteEndpoint in config.yml); this steers the
# compaction model candidate so the wire model id stays valid
# on the frank-medium endpoint even from a frank-large session.
compactionModel: llamacpp (dankserver)/frank-medium
# halogen-flash-server. The model's native window is 262,144, but this
# deployment caps a conversation at 200,192 — exactly half of its
# 400,384-position KV pool, so two 200k conversations are resident at
@@ -65,7 +72,13 @@ providers:
contextWindow: 200192
# HALOGEN_MAX_TOKENS_CAP: above this a request is a 400 rather than a
# silent truncation, and thinking counts against the budget.
maxTokens: 65536
# maxTokens must also survive the harness compaction gap: OMP compacts at
# 70% of contextWindow = 140,134, so a pre-compaction prompt can legally
# reach that height. 140,134 + 57,344 = 197,478 <= 200,192, which closes
# the dead zone that 400'd a request on 2026-09-17 (prompt 138,898 +
# budget 64,000 = 202,898 > 200,192: above the server's fit check, below
# the compaction trigger). Any budget > 60,058 reopens the zone.
maxTokens: 57344
reasoning: true
# Text only as of 2026-09-16: the vision tower moved to frank-small and
# this server refuses image content parts.
@@ -96,6 +109,10 @@ providers:
models:
- id: frank-small
name: "frank-small (dankclaw-3090)"
# See frank-large: server-side compaction always runs on
# frank-medium, so the wire model id stays valid from a
# frank-small session.
compactionModel: llamacpp (dankserver)/frank-medium
# Dankclaw's RTX 3090: mainline llama.cpp serving
# HauhauCS/Gemma4-12B-QAT-Uncensored-HauhauCS-Balanced at Q4_K_M.
# The MTP head ships as a separate assistant sidecar