Hermes Agent
VerifiedNous Research のターミナルエージェント (Linux/macOS/WSL2)。providers に kotoba を足し、model.provider で選ぶ。2026-09-17 に agent coding セッションで実測した設定(下のブロックは全行が測定済みの下限)。
context_length は 98,304(131,072 の slot − 既定出力 32,768): hermes は max_tokens を送らない(config では課せない)ので、出力分を窓から引いて宣言する。timeout は 900 秒: 応答は完了後にまとめて届き、edge は最大 840 秒待つ。compaction の要約は blue route(qwen/qwen3.8-flash)へ: 自分のセッションと slot を取り合わない。要約を red model に向けない: red route が edge 側で 1 時間詰まった 2026-09-18(ADR 2609181900)、そうしていた環境は compaction を毎回失い(120 秒無出力)、blue は終始 3.6 秒で答えていた。auxiliary.compression.fallback_chain(off-edge の :free SKU、key_env 必須)は edge 自体が沈黙したときの逃げ道 —— 要約は素の文章なので他 provider でも transcript を汚さない。main の fallback は同じ edge に: 他 provider の reasoning_details がここへ replay されて 400 になる。auxiliary の title 生成は 1 回ごとに無料枠を 1 件使う(`auxiliary.title_generation.enabled: false` で止められる)。
Setup
# ~/.hermes/config.yaml (or a profile's config.yaml)
model:
provider: kotoba
default: qwen3.8-flash-next-whitehacker
# no max_tokens: hermes ignores it; the edge's default output budget is 32,768
providers:
kotoba:
api: https://api.mithril.fund/v1 # literal: a KOTOBA_API_BASE that already ends in /v1 would become /v1/v1 (405)
key_env: KOTOBA_API_TOKEN
transport: chat_completions
discover_models: true
request_timeout_seconds: 900
stale_timeout_seconds: 900
models:
qwen3.8-flash-next-whitehacker:
context_length: 98304 # 131,072 slot - 32,768 output budget
custom:
# a named provider runs under this label at runtime — these are the timeouts that apply
request_timeout_seconds: 900
stale_timeout_seconds: 900
compression:
# the answer arrives whole; a summary can take minutes under load
context_timeout_seconds: 900
context_total_ceiling_seconds: 900
auxiliary:
compression:
provider: kotoba # REQUIRED with a bare base_url: without it (or key_env) hermes resolves the task to "auto" = the main model
key_env: KOTOBA_API_TOKEN
model: qwen/qwen3.8-flash # the blue route: shares no slot with your session
base_url: https://api.mithril.fund/v1
reasoning_effort: none
timeout: 900
# optional, off-edge: where the summary goes when THIS edge is silent (needs an OpenRouter key in .env).
# key_env is required — the stall retry pins the entry as-is and 401s without it. :free SKUs only.
fallback_chain:
- provider: openrouter
model: qwen/qwen3.8-27b:free
key_env: OPENROUTER_API_KEY
timeout: 180
- provider: openrouter
model: nex-agi/nex-n2.5-mini:free
key_env: OPENROUTER_API_KEY
timeout: 120
title_generation:
provider: kotoba
key_env: KOTOBA_API_TOKEN
model: qwen/qwen3.8-flash
base_url: https://api.mithril.fund/v1
reasoning_effort: none
timeout: 120
fallback_providers:
- provider: kotoba
model: qwen/qwen3.8-flash # same edge; another provider's reasoning_details would be replayed here
base_url: https://api.mithril.fund/v1
api_mode: chat_completions
# ~/.hermes/.env — the token is the only thing read from the environment
KOTOBA_API_TOKEN=kc_pat_<your-token> # issue at https://console.mithril.fund/account (shown once)
OPENROUTER_API_KEY=sk-or-<optional> # only for auxiliary.compression.fallback_chain; omit the chain without it
# `personal API token refused: token-unknown` = the token in THIS machine's .env is not in the
# account's registry (issued elsewhere, or before the registry): paste a current one here.
# profiles: start them as `hermes -p <profile>` or with HERMES_HOME=~/.hermes/profiles/<profile>,
# not via the sticky `hermes profile use` (subprocesses then write to the default profile)
hermes chat -Q --oneshot -q "Reply with exactly: OK"
The research gates (verification, scope, free quota) are identical to the cookie session; the token only removes the origin gate.
← All tools