Simplify Athena stack and recovery

This commit is contained in:
Mikei386
2026-08-25 22:27:26 +02:00
parent c4851305d1
commit 069da8b4f0
70 changed files with 887 additions and 5806 deletions
+9 -58
View File
@@ -77,20 +77,16 @@ agent:
max_web_searches: 8
max_subagents: 8
# Compact before a tool-heavy session can grow beyond the selected model's
# usable window. Large old tool results are pruned without an LLM call first;
# lean tail retention avoids several expensive back-to-back summary passes.
# Keep ample room for long agent work. Compression starts at 82% of whichever
# router profile is selected and retains a useful 35% instead of collapsing a
# large conversation to a tiny summary.
compression:
enabled: true
progress_notices: true
threshold: 0.65
# A common absolute ceiling keeps all router profiles responsive. It also
# prevents a long Medium/Large/Ultra chat from becoming impossible to move
# back to Fast later.
threshold_tokens: 60000
target_ratio: 0.15
threshold: 0.82
target_ratio: 0.35
tail_mode: "lean"
protect_last_n: 8
protect_last_n: 12
protect_first_n: 0
proactive_prune_tokens: 50000
proactive_prune_min_result_chars: 4000
@@ -158,51 +154,6 @@ timeouts:
concurrent_batch: 900
sequential_call: 900
mcp_servers:
athena-platform:
url: "http://mcp-platform-context:8000/mcp"
timeout: 180
connect_timeout: 30
supports_parallel_tool_calls: false
athena-operator:
url: "http://mcp-athena-operator:8000/mcp"
timeout: 900
connect_timeout: 30
supports_parallel_tool_calls: false
web-general:
url: "http://tinysearch:8000/mcp"
timeout: 180
connect_timeout: 30
supports_parallel_tool_calls: false
github:
url: "http://mcp-github:8000/mcp"
timeout: 300
connect_timeout: 30
supports_parallel_tool_calls: false
homeassistant-admin:
url: "http://mcp-homeassistant:8000/mcp"
timeout: 300
connect_timeout: 30
supports_parallel_tool_calls: false
arr:
url: "http://mcp-arr:8000/mcp"
timeout: 600
connect_timeout: 30
supports_parallel_tool_calls: false
navidrome:
url: "http://mike-ai-mcp-navidrome:3000/mcp"
timeout: 300
connect_timeout: 30
supports_parallel_tool_calls: false
deemix:
url: "http://mcp-deemix:8000/mcp"
timeout: 300
connect_timeout: 30
supports_parallel_tool_calls: false
unraid:
url: "${MUA_MCP_URL}"
headers:
Authorization: "Bearer ${MUA_MCP_BEARER_TOKEN}"
timeout: 900
connect_timeout: 30
supports_parallel_tool_calls: false
# BEGIN MANAGED MCP SERVERS
mcp_servers: {}
# END MANAGED MCP SERVERS
+3
View File
@@ -78,6 +78,9 @@ if placeholder not in text:
raise SystemExit("ROUTER_API_KEY placeholder missing from managed Hermes config")
path.write_text(text.replace(placeholder, os.environ["ROUTER_API_KEY"], 1))
PY
python3 "$STACK_DIR/platform/mcp/sync-clients.py" \
--registry "$STACK_DIR/config/mcp-registry.json" \
--hermes "$HERMES_DATA_DIR/config.yaml"
install -m 0600 "$STACK_DIR/platform/hermes/SOUL.md" "$HERMES_DATA_DIR/SOUL.md"
chown -R 10000:10000 "$HERMES_DATA_DIR"
"$STACK_DIR/platform/hermes/install-skills.sh"
+10 -2
View File
@@ -30,8 +30,10 @@ create_profile() {
docker exec "$HERMES_CONTAINER" hermes -p "$name" config set agent.max_turns 64
docker exec "$HERMES_CONTAINER" hermes -p "$name" config set agent.reasoning_effort minimal
docker exec "$HERMES_CONTAINER" hermes -p "$name" config set auxiliary.title_generation.enabled false
docker exec "$HERMES_CONTAINER" hermes -p "$name" config set compression.threshold_tokens 60000
docker exec "$HERMES_CONTAINER" hermes -p "$name" config set compression.protect_last_n 8
docker exec "$HERMES_CONTAINER" hermes -p "$name" config unset compression.threshold_tokens || true
docker exec "$HERMES_CONTAINER" hermes -p "$name" config set compression.threshold 0.82
docker exec "$HERMES_CONTAINER" hermes -p "$name" config set compression.target_ratio 0.35
docker exec "$HERMES_CONTAINER" hermes -p "$name" config set compression.protect_last_n 12
docker exec "$HERMES_CONTAINER" hermes -p "$name" config set compression.protect_first_n 0
docker exec "$HERMES_CONTAINER" hermes -p "$name" config set platform_toolsets.cli \
'["web","terminal","file","skills","todo","memory","vision","tts"]'
@@ -80,6 +82,12 @@ for path in paths:
path.write_text(text)
PY
sync_args=(--registry "${STACK_DIR:-/opt/mike-ai/stack}/config/mcp-registry.json")
while IFS= read -r config; do
sync_args+=(--hermes "$config")
done < <(find "$HERMES_DATA_DIR" -name config.yaml -type f -print)
python3 "${STACK_DIR:-/opt/mike-ai/stack}/platform/mcp/sync-clients.py" "${sync_args[@]}"
"${STACK_DIR:-/opt/mike-ai/stack}/platform/hermes/install-skills.sh"
docker exec "$HERMES_CONTAINER" hermes profile list
printf 'HERMES_PROFILES_OK\n'
@@ -4,22 +4,22 @@ description: Understand, operate and extend the Athena AI host.
license: MIT
metadata:
hermes:
version: 1.0.0
version: 2.0.0
author: Michael Roll
platforms: [linux]
tags: [athena, docker, mcp, models, recovery]
tags: [athena, docker, mcp, models, backup]
---
# Athena Operator
Use this skill for work on Athena itself: Docker, MCPs, models, profiles,
Hermes, OpenWebUI, TTS, STT, image generation, Git and recovery.
Hermes, OpenWebUI, TTS, STT, image generation, Git and backups.
## Start
1. Read `ATHENA.md` through Athena Platform Context. It is the normal source
of architectural truth.
2. Call `athena_operator_inspect` once for the affected area.
1. Call `athena_operator_inspect` with `subject=guide`; it returns the current
`ATHENA.md` as the architectural truth.
2. Inspect the affected live area only if needed.
3. Search for the concrete source file, then read only the required lines.
Do not rediscover the complete platform for every task. Do not read entire
@@ -32,8 +32,9 @@ apply the smallest durable change. The operator owns the Git worktree and
deployment access; do not clone another repository or request another SSH key.
Afterwards run focused checks, verify the affected service, commit and push.
Create a recovery kit after the complete change works, not after every
intermediate edit.
The scheduled Docker-data backup is automatic. After storage-affecting work,
run one manual backup and verify its archive instead of building a special
recovery kit.
For a new MCP, normally change only its server code, Dockerfile, MCP Compose
service, env example, client registration and a focused test. Reuse an existing
@@ -47,7 +48,7 @@ backend instead of installing a duplicate service.
- Prefer specialist MCPs for Home Assistant, Unraid, ARR, Navidrome and other
external systems.
- A healthy container is not proof; perform one bounded functional check.
- Never claim a write, deploy, commit, push or recovery succeeded without its
- Never claim a write, deploy, commit, push or backup succeeded without its
actual result.
## Remote-host boundary