本文へ移動

Hermes Agent

Verified

Nous Research's terminal agent (Linux/macOS/WSL2). Add a kotoba provider and select it with model.provider. Measured on agent-coding sessions, 2026-09-17 — every line of the block below is a measured floor.

context_length is 98,304 (the 131,072 slot minus the 32,768 default output): hermes sends no max_tokens (its config cannot impose one), so declare the window minus the output. Timeouts are 900 s: the answer arrives whole and the edge waits up to 840 s. Compaction summaries go to the blue route (qwen/qwen3.8-flash) so they never queue behind your own session. Never point the summary at the red model: on 2026-09-18 the red route hung edge-side for an hour (ADR 2609181900) and an install that did lost every compaction (120 s with no output) while blue answered in 3.6 s throughout. auxiliary.compression.fallback_chain (off-edge :free SKUs, key_env required) is the escape for when this edge itself is silent — a summary is plain text, so another provider cannot poison the transcript. The MAIN fallback stays on this edge: another provider's reasoning_details get replayed here and 400. Auxiliary title generation spends one free request per turn (`auxiliary.title_generation.enabled: false` stops it).

Setup

Shell
# ~/.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