snapshot: preserve central wiki state 2026-08-15 (7 modified + 1 new file)
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
---
|
||||
title: Camoufox vs Chrome
|
||||
type: comparison
|
||||
status: active
|
||||
created: 2026-07-22
|
||||
updated: 2026-07-22
|
||||
verified_on: 2026-07-22
|
||||
confidence: medium
|
||||
tags: [comparison, browser]
|
||||
sources: [raw/configs/hermes-config-sanitized.txt]
|
||||
---
|
||||
|
||||
# Camoufox vs Chrome
|
||||
|
||||
## Purpose
|
||||
Compare the two browser-automation options for Hermes's browser tool.
|
||||
|
||||
## At a glance
|
||||
| | Camoufox | Chrome |
|
||||
|---|---|---|
|
||||
| In use on this install | **Yes** — configured `cloud_provider` | No evidence found |
|
||||
| Config | `browser.camofox.managed_persistence: true` (note: key is spelled `camofox` in config, not `camoufox`) | n/a |
|
||||
| Driver | `cua-driver` v0.9.0 at `/home/hermes/.cua-driver/packages/releases/0.9.0-x86_64-unknown-linux-gnu/cua-driver` | n/a |
|
||||
| Display | Headed, via Xvfb `:99` + fluxbox — see [[systems/headless-server]] | n/a |
|
||||
| `use_gateway` | `false` | n/a |
|
||||
|
||||
## Detail
|
||||
|
||||
### Camoufox (in use)
|
||||
- **Verified:** `browser.cloud_provider: camofox`, `inactivity_timeout: 120s`, `allow_private_urls: true`.
|
||||
- Runs headed under Xvfb rather than a true headless mode, per [[systems/headless-server]] — fluxbox provides the window manager, x11vnc/noVNC expose it for human viewing.
|
||||
- `cua-driver` bridges Hermes's computer-use tool calls to the browser.
|
||||
|
||||
### Chrome (not found in use)
|
||||
- No `google-chrome`, `chromium`, or CDP-only launch flags found in the sanitized config or running process list during this audit.
|
||||
- Included in the comparison because the page existed as a placeholder — if Chrome/CDP was evaluated and rejected, that reasoning isn't captured anywhere; worth a [[decisions/index]] entry if anyone remembers why Camoufox was chosen over stock Chrome.
|
||||
|
||||
## Verdict
|
||||
This install uses **Camoufox exclusively**. There's no evidence Chrome/Chromium was ever wired in as an alternative on this host — the comparison exists more as a placeholder for a decision that may have been made outside this wiki than as an active either/or choice today.
|
||||
|
||||
## Related
|
||||
- [[systems/browser-backend]]
|
||||
- [[concepts/browser-automation]]
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: Hermes vs Nanobot
|
||||
type: comparison
|
||||
status: active
|
||||
created: 2026-07-22
|
||||
updated: 2026-07-22
|
||||
verified_on: 2026-07-22
|
||||
confidence: high
|
||||
tags: [comparison, hermes, nanobot]
|
||||
sources: [raw/configs/hermes-config-sanitized.txt]
|
||||
---
|
||||
|
||||
# Hermes vs Nanobot
|
||||
|
||||
## Purpose
|
||||
Compare Hermes (this agent) with Nanobot, another agent process in the homelab, and correct a stale claim in [[systems/nanobot]].
|
||||
|
||||
## Correction to existing wiki content
|
||||
`systems/nanobot.md` (written earlier the same day) states "No nanobot process running on this host" and "Unknown: whether nanobot should be redeployed on this host." **Both are superseded by direct verification during this pass:**
|
||||
- Nanobot **is running**, just not on this host (ct460). It's on **LXC 333 ("clawtest")**, Tailscale IP `100.122.189.81`, process `nanobot` listening on port `8766`.
|
||||
- ct333 also runs a `whatsapp-bridge.service` ("WhatsApp Bridge for Nanobot") — a systemd service, active.
|
||||
- It's publicly reachable via the same Cloudflare Tunnel that fronts Hermes: `nanobot.martinwa.org` → `100.122.189.81:8766`, and `nano-ssh.martinwa.org` → SSH on the same host.
|
||||
- The earlier note "Nanobox on the PVE host at `192.168.178.39`" conflated Nanobot with `pve`'s own LAN IP (that address is Proxmox's web UI, per the tunnel's `pve.martinwa.org` entry) — an error, not a second Nanobot instance.
|
||||
|
||||
## At a glance
|
||||
| | Hermes (ct460) | Nanobot (ct333 "clawtest") |
|
||||
|---|---|---|
|
||||
| Status | Active, primary agent | Active, running (was previously assumed dormant) |
|
||||
| Host | Dedicated LXC, `agent;ai;automation` tags | LXC tagged/named "clawtest" |
|
||||
| Public exposure | `hermes.martinwa.org`, `hermes-desktop.martinwa.org` | `nanobot.martinwa.org`, `nano-ssh.martinwa.org` |
|
||||
| Extra services | Stratos command centre, browser/VNC stack | WhatsApp bridge |
|
||||
| Role today | Primary personal agent (this wiki's subject) | **Unclear** — running, but purpose/overlap with Hermes not documented anywhere found |
|
||||
|
||||
## Verdict
|
||||
Both agents are live simultaneously, which the wiki didn't previously reflect. Worth a real decision: is Nanobot still needed alongside Hermes, or is it a leftover that should be retired (freeing ct333) or given an explicit distinct role? This comparison surfaces the question rather than answering it — no evidence either way was found on either host.
|
||||
|
||||
## Related
|
||||
- [[systems/nanobot]] — needs its "Current state" section updated to reflect this finding
|
||||
- [[systems/hermes-agent]]
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: Memory Backends
|
||||
type: comparison
|
||||
status: active
|
||||
created: 2026-07-22
|
||||
updated: 2026-08-12
|
||||
verified_on: 2026-08-12
|
||||
confidence: high
|
||||
tags: [comparison, memory]
|
||||
sources: [raw/configs/hermes-config-sanitized.txt]
|
||||
---
|
||||
|
||||
# Memory Backends
|
||||
|
||||
## Purpose
|
||||
Document Hermes's memory backend on this box, and record why the taxonomy this page assumed (Hindsight, Mnemosyne, file-backed) doesn't actually apply here.
|
||||
|
||||
## Correction (2026-07-22, per Anthony)
|
||||
This wiki previously stated Hindsight was this box's predecessor memory backend, based on archived `hindsight-*` script names found under `~/.hermes/scripts/` and a "Hindsight clean memory bank" mention in `current-state.md`. **That was wrong — Hindsight has nothing to do with this Hermes box.** It was confused with a different Hermes instance (most likely ct450 "hermesagent", the older/original Hermes install still running in this homelab — see [[infrastructure/domains-and-tunnels]]). All Hindsight-specific pages (`systems/hindsight.md`, `decisions/use-hindsight-for-memory.md`, `runbooks/check-hindsight.md`) have been deleted rather than left as deprecated stubs, since they describe something that was never true of this box.
|
||||
|
||||
The three archived scripts (`hindsight-watchdog.py.archived`, `hindsight_migration_watchdog.py.archived`, `honcho_to_hindsight_import.py.archived`) that had been sitting under `~/.hermes/scripts/` were removed on 2026-07-22 at Anthony's request, closing out the mix-up entirely.
|
||||
|
||||
## What's actually true here
|
||||
- **Only backend ever verified on this box: Mnemosyne** — local native plugin (`~/.hermes/plugins/mnemosyne`), not a docker service. See [[systems/mnemosyne]] and [[systems/memory-backend]] for full config.
|
||||
- No evidence of a file-backed-only memory mode being used either — it's Mnemosyne or nothing on this install.
|
||||
|
||||
## OpenViking evaluation (2026-08-12) — NOT adopted
|
||||
- Anthony explored **OpenViking** (Volcengine/ByteDance context database, filesystem-style knowledge hierarchy, tiered retrieval, 6-category auto extraction) as a potential memory provider.
|
||||
- **Not adopted:** `memory.provider` is single-slot — setting `hermes config set memory.provider openviking` would fully **replace** Mnemosyne, with no parallel/dual-active mode.
|
||||
- Risk assessment flagged: schema mismatch, embedding drift, scope leakage, provenance loss, and one-way/no-rollback migration with no dry-run snapshot.
|
||||
- **Verdict:** stay on Mnemosyne. Config verified `memory.provider: mnemosyne` (2026-08-12). No migration was performed.
|
||||
|
||||
## Related
|
||||
- [[systems/mnemosyne]]
|
||||
- [[systems/memory-backend]]
|
||||
- [[concepts/agent-memory]]
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
title: Model Routers
|
||||
type: comparison
|
||||
status: active
|
||||
created: 2026-07-22
|
||||
updated: 2026-08-12
|
||||
verified_on: 2026-08-12
|
||||
confidence: high
|
||||
tags: [comparison, routing]
|
||||
sources: [raw/configs/hermes-config-sanitized.txt]
|
||||
---
|
||||
|
||||
# Model Routers
|
||||
|
||||
## Purpose
|
||||
Compare LiteLLM, OmniRoute, and OpenRouter as model-routing layers for Hermes.
|
||||
|
||||
## At a glance
|
||||
| | LiteLLM | OmniRoute | OpenRouter |
|
||||
|---|---|---|---|
|
||||
| Role in Hermes | **Default/primary** provider | **Fallback/auxiliary** provider | Not configured as a standalone provider |
|
||||
| Endpoint | `http://litellm:4000/v1` | `http://omniroute:20128/v1` (public: `omniroute.martinwa.org`) | n/a |
|
||||
| Advertised model count | ~1512 | ~3430 | n/a |
|
||||
| Routing style | Straight proxy | Combo strategy, LKGP scoring, session affinity | n/a |
|
||||
| Aux roles used for | — | `skills_hub`, `approval`, `mcp` | — |
|
||||
| Config presence | `custom_providers` in `~/.hermes/config.yaml` | same | absent from `custom_providers`; only referenced via a kept [[decisions/keep-openrouter-as-fallback]] decision |
|
||||
|
||||
## Detail
|
||||
|
||||
### LiteLLM — primary
|
||||
Default provider for main chat traffic (`freellmapi-auto` default model resolves through it). See [[systems/model-providers]].
|
||||
|
||||
### FreeLLMAPI — the router behind `freellmapi-auto`
|
||||
Unified LLM router at `100.82.40.23:3001` (also `freellmapi.martinwa.org`). Verified 2026-08-12:
|
||||
- **3-axis weighted scoring:** Reliability + Speed + Intelligence, with user-configurable weights.
|
||||
- **Dynamic guardrail multiplier:** `Final score = weighted avg × (free-quota headroom × live rate-limit penalty)`. Below 1.0 means the model is held back.
|
||||
- **Penalty Inspector ("Router Pressure"):** granular penalty factors (e.g. `score × 0.5`) from recent 4xx/5xx, cooldowns, RPM/RPD limits, monthly token caps.
|
||||
- **Capability-aware routing:** filters candidates on whether the request has images (vision) or tool calls.
|
||||
- Exposes `/api/fallback/routing`, `/api/fallback/penalty-inspector`, `/api/fallback/token-usage`.
|
||||
This is the router that resolves Hermes's **default model** `freellmapi-auto` — distinct from OmniRoute's LKGP (below).
|
||||
|
||||
### OmniRoute — fallback / auxiliary
|
||||
Not used for Hermes's main chat path but handles specific auxiliary roles (`skills_hub`, `approval`, `mcp`) and serves as the fallback provider. Has a much larger advertised catalog (~3430 vs ~1512) but that catalog can diverge from what's actually resolvable — combo discovery vs. resolution can differ (documented known issue). See [[systems/omniroute]].
|
||||
|
||||
### OpenRouter — kept only as a fallback decision, not wired in
|
||||
**Verified:** absent from `custom_providers` in the live config. A decision page ([[decisions/keep-openrouter-as-fallback]]) records intent to retain it as a fallback option, but there's no live routing through it today — see [[systems/openrouter]] for the "previously used, largely replaced" history.
|
||||
|
||||
## Verdict
|
||||
Two routers are actually live (LiteLLM primary, OmniRoute fallback/auxiliary); OpenRouter is a retained *intent*, not a working path, as of 2026-07-22. If [[decisions/keep-openrouter-as-fallback]] is still desired, it needs an actual `custom_providers` entry — currently it's fallback-in-name-only.
|
||||
|
||||
## Related
|
||||
- [[systems/model-providers]]
|
||||
- [[concepts/model-routing]]
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
title: Steel Browser vs Camoufox
|
||||
type: comparison
|
||||
status: active
|
||||
created: 2026-07-29
|
||||
updated: 2026-08-02
|
||||
verified_on: 2026-08-02
|
||||
confidence: high
|
||||
tags: [comparison, browser, steel, camofox, decision]
|
||||
sources: [live-probe, session-history]
|
||||
---
|
||||
|
||||
# Steel Browser vs Camoufox
|
||||
|
||||
## Purpose
|
||||
Compare the two browser-automation backends available to Hermes, including the Jul 29–30 experiment and the decision to revert.
|
||||
|
||||
## At a glance
|
||||
| | Steel Browser (CT201) | Camoufox (CT450) |
|
||||
|---|---|---|
|
||||
| **In use** | Disabled since 2026-07-30 | **Yes** — primary backend |
|
||||
| **Engine** | Chromium 140 (Playwright) | Camoufox (Firefox-based) |
|
||||
| **Connection** | CDP (`ws://` via port 9223) | REST API (localhost:9093) |
|
||||
| **API** | REST at `:3000` — create/destroy/query sessions | Camoufox REST + CDP WebSocket |
|
||||
| **Headless** | Native headless | Xvfb + VNC (headed, anti-fingerprint) |
|
||||
| **Container** | Docker on CT201 | Systemd service on CT450 |
|
||||
| **Stealth** | Standard Chromium | Anti-detection fingerprinting |
|
||||
| **Session viewer** | Built-in UI at `/steel` | VNC at `/vnc-camofox` |
|
||||
| **Plugin** | `browser-steel` plugin (disabled) | Native Hermes `browser.cloud_provider: camofox` |
|
||||
|
||||
## The Steel Experiment (Jul 29–30)
|
||||
|
||||
### Why it was tried
|
||||
- Steel promised full CDP access for richer browser control
|
||||
- Built-in session viewer and management UI
|
||||
- Docker-based, clean separation from Hermes host
|
||||
|
||||
### Timeline
|
||||
1. **Jul 29:** Steel deployed on CT201 via Docker Compose, Chromium 140. Hermes configured with `browser.cloud_provider: steel`, `browser-steel` plugin enabled.
|
||||
2. **Jul 29 (later):** CDP connectivity issues surfaced — Hermes was reaching `0.0.0.0` from the plugin's internal CDP URL. Required `_normalize_cdp_url()` patch in the Steel plugin to remap to `100.96.244.39`.
|
||||
3. **Jul 30:** DeepSeek V4 Flash 0731 went live and rejected tool names that didn't match `^[a-zA-Z0-9_-]+$`. The Steel plugin's tools (`steel_scrape`, `steel_session_options`) were fine, but the route through OmniRoute → Steel → CDP was unreliable with empty-stream errors.
|
||||
4. **Jul 30 (evening):** Decision to revert — Camoufox re-enabled, browser-steel plugin disabled, `CAMOFOX_URL` and `CAMOFOX_API_KEY` uncommented in `.env`. Steel left running on CT201 but Hermes no longer routes through it.
|
||||
|
||||
### What broke
|
||||
- CDP URL normalization required a plugin patch to handle Docker's internal networking
|
||||
- Empty-stream errors from `opencode-go/deepseek-v4-flash` provider path — the combo strategy does NOT iterate on empty responses, they pass to Hermes's own fallback chain (the #1 cause of "combo works but Hermes falls back")
|
||||
- Tool name validation on DeepSeek 0731 was stricter — this affected all providers, not just Steel
|
||||
|
||||
### Lesson learned
|
||||
Steel is a capable backend but adds a network hop and another plugin layer. Camoufox runs locally on CT450 with fewer failure modes. The `browser-steel` plugin still exists (disabled) if needed in future.
|
||||
|
||||
## Detail
|
||||
|
||||
### Camoufox (current primary)
|
||||
- **Deployed:** Persistent systemd service on CT450
|
||||
- **Connection:** REST API at `localhost:9093`, profile `anthony`, sessionKey `anthony`
|
||||
- **Key advantage:** Runs on the same host as Hermes — no network hop, no container networking to debug
|
||||
- **Auth:** Already authenticated into services (Uber Eats, LinkedIn, etc.) — no cookie files needed
|
||||
- **Limitation:** Headed via Xvfb, consumes display resources
|
||||
|
||||
### Steel Browser (disabled but available)
|
||||
- **Deployed:** 2026-07-29 on CT201, Docker, custom `steel-browser-api:fixed` image
|
||||
- **Status:** Still running on CT201, Hermes not connected
|
||||
- **CDP endpoint:** `http://100.96.244.39:9223`
|
||||
- **REST API:** `http://100.96.244.39:3000`
|
||||
- **UI:** `https://runtipi.kangaroo-eel.ts.net/steel`
|
||||
- **Plugin:** `browser-steel` at `/home/hermes/.hermes/plugins/browser-steel/` — disabled, `plugin_steel` toolset flagged `requires_health=steel`
|
||||
|
||||
## Related
|
||||
- [[systems/browser-backend]]
|
||||
- [[concepts/browser-automation]]
|
||||
- [[decisions/rollback-steel-to-camofox]]
|
||||
Reference in New Issue
Block a user