Configure Hermes access to small LLM

This commit is contained in:
Frank
2026-08-25 17:55:52 -07:00
parent 96f5ae6fe1
commit e1f05bd3c2
4 changed files with 70 additions and 3 deletions
+55
View File
@@ -0,0 +1,55 @@
# Hermes configuration backup / non-secret baseline.
#
# Source on Dankclaw: /home/dank/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: custom
base_url: http://192.168.0.143:52625/v1
api_key: not-needed
default: frank-default-large
providers:
custom:
stale_timeout_seconds: 1800
request_timeout_seconds: 1800
dankserver-small:
api: http://192.168.0.235:7770/v1
discover_models: false
models:
frank-default-small:
context_length: 163840
# Auxiliary routing from the live configuration. These use the existing
# custom endpoint shape and are retained here as a settings backup.
auxiliary:
vision: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
web_extract: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
compression: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
skills_hub: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
approval: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
mcp: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
title_generation: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
memory_query_rewrite: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
tts_audio_tags: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
triage_specifier: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
kanban_decomposer: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
profile_describer: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
curator: {provider: custom, model: frank-default-small, base_url: http://192.168.0.235:7770/v1}
dashboard:
# basic_auth intentionally omitted; its password_hash remains live-only.
font: atkinson-hyperlegible
skills:
disabled: []
onboarding:
seen:
busy_input_prompt: true
_config_version: 34
platforms:
signal:
enabled: true
# extra.http_url and account intentionally omitted from the backup.
+1 -1
View File
@@ -22,7 +22,7 @@ The gateway container runs `hermes gateway run` (the Signal platform). That entr
The dashboard refuses to bind to a non-loopback address without an auth provider. There is no unauthenticated public bind. This repo uses basic auth: The dashboard refuses to bind to a non-loopback address without an auth provider. There is no unauthenticated public bind. This repo uses basic auth:
- `dashboard.basic_auth.username` and `dashboard.basic_auth.password_hash` live in the git-ignored `/home/dank/hermes-data/config.yaml`. - `dashboard.basic_auth.username` and `dashboard.basic_auth.password_hash` live in the live `/home/dank/hermes-data/config.yaml`; the tracked backup at `dankclaw/hermes/config.yaml.example` intentionally omits the password hash.
- The stored value is a one-way scrypt hash. The plaintext password is never written to a file or the repo. - The stored value is a one-way scrypt hash. The plaintext password is never written to a file or the repo.
- The hash is generated with `plugins.dashboard_auth.basic.hash_password`. - The hash is generated with `plugins.dashboard_auth.basic.hash_password`.
+11 -2
View File
@@ -4,6 +4,10 @@ Hermes is the self-improving AI agent from Nous Research. It runs in a terminal,
**Host:** Dankclaw — **Hostname:** `hermes.dankclaw.local` — **Docs:** https://hermes-agent.nousresearch.com/docs **Host:** Dankclaw — **Hostname:** `hermes.dankclaw.local` — **Docs:** https://hermes-agent.nousresearch.com/docs
**Persistent state:** `/home/dank/hermes-data` on Dankclaw, mounted as `/data` in
both containers. The tracked, sanitized configuration baseline is
[`dankclaw/hermes/config.yaml.example`](../../dankclaw/hermes/config.yaml.example).
## Facts (from research, primary source) ## Facts (from research, primary source)
| Item | Value | | Item | Value |
@@ -17,15 +21,20 @@ Hermes is the self-improving AI agent from Nous Research. It runs in a terminal,
## Configuration ## Configuration
- Point Hermes at the local model endpoint (`http://localhost:7770/v1`) or an external provider through its provider config. - Point Hermes at the local model endpoint or an external provider through its provider config.
- The gateway process exposes one port for chat integration; the exact port is set in the Hermes config (`8090` convention in this repo). - The gateway process exposes one port for chat integration; the exact port is set in the Hermes config (`8090` convention in this repo).
- The data volume persists skills, memory, and session history. - The data volume persists skills, memory, and session history.
- The configured `dankserver-small` provider reaches `http://192.168.0.235:7770/v1`
and exposes the `frank-default-small` alias. It is a named provider, so it can
coexist with the existing `custom` provider for the large model.
- The live `config.yaml` contains secrets and user state and is not committed;
the tracked example is the sanitized backup of its non-secret settings.
## Volumes ## Volumes
| Container path | Host path (convention) | | Container path | Host path (convention) |
|----------------|------------------------| |----------------|------------------------|
| `/data` | `/opt/hermes/data` | | `/data` | `/home/dank/hermes-data` |
## Gotchas ## Gotchas
+3
View File
@@ -128,6 +128,9 @@ for path in "${CHANGED[@]}"; do
docs/*) docs/*)
add_test tests/docs_completeness.bats add_test tests/docs_completeness.bats
;; ;;
dankclaw/hermes/*)
add_test tests/docs_completeness.bats
;;
*) *)
die "no focused-test mapping for '$path'; add one before committing" die "no focused-test mapping for '$path'; add one before committing"
;; ;;