frank-large moves from the kingjones30/ROCmFPX llama.cpp build to peonist-ai/halogen-flash-server 0.5.8 serving Qwen3.8-Flash-Next (w4b .hgn 115.55 GiB + quality overlay). Upstream measures this engine at roughly 4x the prefill throughput of the llama.cpp family on the same gfx1151 silicon, and prefill dominates any prompt with real context. Shape: a rootless Quadlet container (dankclaw/frank-large/quadlet/), engine on container loopback :8730 (never published), OpenAI front-end :8731 published as host 7770, HALOGEN_MODEL_ID=frank-large so no client renamed anything. Context 262144, KV pool 262144 positions (~7.2 GiB, conservative for a shared 121 GiB host), 4 slots, host reserve 24, vision tower on, weights pinned, all other flags at vendor defaults. Weights are fetched by HALOGEN_DOWNLOAD on first start into a writable /home/dank/models/halogen. The llama.cpp era (unit, env, serve script) is staged in .AGENTTRASH/ rather than deleted; the STRIX payload and the ROCmFPX build stay on disk as the rollback target. deploy_llm_large becomes a user-quadlet handler: it retires the old ROOT unit (moving its checkout symlink into the home trash, never rm) and gates the first start on the download rather than reporting a failure for a fetch that is working exactly as designed. frank-npu is retired in the same change. The kernel cmdline moves from iommu=pt to amd_iommu=off for the 13-16% of prefill upstream measured, and that takes the XDNA2 NPU with it: without PASID/SVA the driver cannot open /dev/accel/accel0 (err=-19). Its five dependent routes are repointed (Hermes vision -> frank-large, Hermes title generation -> frank-small, harness vision -> frank-large, tiny -> frank-small, task -> frank-large:medium) and its provider blocks are removed from both the harness config and Hermes's live config. Audio input leaves the fleet with no replacement; image input survives on halogen's vision tower. Docs: new halogen-flash-server runbook, new IOMMU decision record, and frank-npu rewritten as a retirement record. AGENTS.md topology, runtime sections, benchmarking policy (frank-large is a user unit now) and the harness model-config section are corrected.
89 lines
2.9 KiB
Plaintext
89 lines
2.9 KiB
Plaintext
# Hermes configuration backup / non-secret baseline.
|
|
#
|
|
# Source on Dankclaw: /home/dank/Containers/hermes/data/config.yaml
|
|
# This file is a sanitized Git backup, not a complete replacement for the
|
|
# live Hermes state. Do not add dashboard password hashes, phone numbers,
|
|
# OAuth credentials, API keys, sessions, memories, or generated state here.
|
|
# The live directory is bind-mounted into the containers as /data.
|
|
|
|
model:
|
|
provider: dankclaw-large
|
|
base_url: http://192.168.0.143:7770/v1
|
|
api_key: not-needed
|
|
default: frank-large
|
|
|
|
providers:
|
|
dankclaw-large:
|
|
api: http://192.168.0.143:7770/v1
|
|
discover_models: false
|
|
models:
|
|
frank-large:
|
|
context_length: 262144
|
|
dankserver-small:
|
|
api: http://192.168.0.235:7770/v1
|
|
discover_models: false
|
|
models:
|
|
frank-small:
|
|
context_length: 163840
|
|
|
|
# Auxiliary routing from the live configuration. Named providers route via
|
|
# their `api:` URL; `custom` entries route by their explicit `base_url`.
|
|
auxiliary:
|
|
vision: {provider: dankclaw-large, model: frank-large}
|
|
web_extract: {provider: dankserver-small, model: frank-small}
|
|
compression: {provider: dankserver-small, model: frank-small}
|
|
skills_hub: {provider: dankserver-small, model: frank-small}
|
|
approval: {provider: dankserver-small, model: frank-small}
|
|
mcp: {provider: dankserver-small, model: frank-small}
|
|
title_generation: {provider: dankserver-small, model: frank-small}
|
|
memory_query_rewrite: {provider: custom, model: frank-small, base_url: http://192.168.0.235:7770/v1}
|
|
tts_audio_tags: {provider: custom, model: frank-small, base_url: http://192.168.0.235:7770/v1}
|
|
triage_specifier: {provider: dankclaw-large, model: frank-large}
|
|
kanban_decomposer: {provider: dankclaw-large, model: frank-large}
|
|
profile_describer: {provider: dankserver-small, model: frank-small}
|
|
curator: {provider: dankserver-small, model: frank-small}
|
|
|
|
dashboard:
|
|
# basic_auth intentionally omitted; its password_hash remains live-only.
|
|
font: atkinson-hyperlegible
|
|
moa:
|
|
presets:
|
|
default:
|
|
reference_models:
|
|
- provider: openrouter
|
|
model: deepseek/deepseek-v4-pro
|
|
enabled: false
|
|
degraded_reference_policy: loud
|
|
fanout: user_turn
|
|
reference_models:
|
|
- provider: openrouter
|
|
model: deepseek/deepseek-v4-pro
|
|
enabled: false
|
|
aggregator:
|
|
provider: openrouter
|
|
model: anthropic/claude-opus-4.8
|
|
degraded_reference_policy: loud
|
|
max_tokens: 4096
|
|
fanout: user_turn
|
|
enabled: true
|
|
skills:
|
|
disabled: []
|
|
onboarding:
|
|
seen:
|
|
busy_input_prompt: true
|
|
_config_version: 34
|
|
platforms:
|
|
signal:
|
|
# Live config has the Signal adapter disabled; http_url points at the
|
|
# host signal-cli daemon. The account phone number stays live-only.
|
|
enabled: false
|
|
extra:
|
|
http_url: http://192.168.0.143:8080
|
|
mcp_servers:
|
|
chrome-devtools:
|
|
command: /usr/local/bin/npx
|
|
args:
|
|
- -y
|
|
- chrome-devtools-mcp@latest
|
|
- --browserUrl=http://127.0.0.1:9222
|