Hermes Agent Wiki 非公式・日本語wiki
この skill をそのまま使う: GitHub で原文を見る

英語原文・frontmatter 込みで、Hermes が読み込む実体そのままです(このページの本文は日本語版)。

Actual Setup

目次

Actual Computer(actual.inc)の推論を Hermes に設定します。

skill の情報

提供元 追加インストール — hermes skills install official/devops/actual-setup で導入します
パス optional-skills/devops/actual-setup
バージョン 2.0.0
作者 shl0ms + Hermes Agent
ライセンス MIT
対応プラットフォーム linux, macos, windows
タグ actual, actual-inc, provider, local-inference, relay, gguf, setup

参考: SKILL.md 全文

Actual Computer Setup Skill

actual.inc(Actual Computer)を Hermes の推論の提供元として設定します。 Actual はユーザー自身のハードウェアを自分だけの推論クラスタに変え、OpenAI 互換の API を 2 通りで 公開します。1 つは https://api.actual.inc にある、両端で暗号化されたホスト型の中継 (ac_ で始まるキーで認証します)。もう 1 つは http://127.0.0.1:8080 で動く、端末上の デーモンです(ループバックでは認証不要)。この skill は Actual のデーモンをユーザーの代わりに インストールしません。端末の認可には、人がブラウザで操作する必要があるからです。

使いどころ

  • ユーザーが actual.inc を推論の提供元として追加したいとき(クラウドの中継でも、端末上でも)。
  • ユーザーが ac_ のキーを持っていて、Hermes を自分の Actual クラスタ経由にしたいとき。
  • ユーザーが Actual のデーモンで、完全に端末内だけの推論をしたいとき。
  • 困ったとき: Actual へのリクエストが、分かりにくい 400 や空のストリームで失敗する。

前提条件

  • Hermes は actual を提供元として正式に扱えます(提供元 id は actual、別名は

actual-computeractualcomputeraci)。今の Hermes では、Actual を custom_providersproviders.actual.* の項目として設定しないでください。組み込みの 提供元がこの名前を持っていて、base-url の正規化、Responses の通信、ローカルでの認証なしを 自動で扱います。

  • 中継を使う場合: Actual のアカウントと、https://actual.inc/user/keys で取れる ac_

推論キーが要ります。

  • 端末上で使う場合: ユーザーがデーモンをインストールし

curl -fsSL "https://actual.inc/install" | bash)、actual を一度実行して表示された https://actual.inc/device?code=... の URL をブラウザで開き、端末の認可を済ませていること。 その URL はユーザーに伝えて待ってください。メールアドレスをでっち上げたり、代わりに 認可したりは決してしないでください。コードは 5 分で切れるので、新しいものが要るなら actual を実行し直してもらいます。

実行方法

中継 / API を使う

  1. キーは .env に置きます(秘密の値だけです。config.yaml には決して書きません)。

~/.hermes/.envACTUAL_API_KEY=ac_... を追記します。

  1. terminal でキーを確かめ、使えるモデルを調べます:
curl -s https://api.actual.inc/v1/models -H "Authorization: Bearer $ACTUAL_API_KEY"
  1. 提供元とモデルを選びます:
hermes config set model.provider actual
hermes config set model.default "MODEL_ID_FROM_DISCOVERY"
  1. 端から端まで通ることを確かめます:
hermes chat -Q -q "Reply with exactly: ACTUAL_OK" --provider actual -m MODEL_ID

端末上で使う

  1. 人がデーモンをインストールし、認可を済ませておきます(「前提条件」を参照)。
  2. モデルをダウンロードして読み込みます(認可さえ済めばスクリプトから実行できます):
actual models search "qwen2.5 0.5b instruct gguf" --limit 8 --no-prompt
# Downloads REQUIRE an explicit quantization (409 ambiguous_model_download otherwise):
actual models download "Qwen/Qwen2.5-0.5B-Instruct-GGUF/Q4_K_M"
actual models list        # note the INSTALLED name (differs from download id)
actual models load "qwen2.5-0.5b-instruct-q4_k_m"   # load by installed name
  1. Hermes をデーモンに向けます。ACTUAL_BASE_URL にループバックのホストを指定すると、

組み込みの提供元が自動でローカルの認証なしモードに切り替わり、キーは要りません。 ~/.hermes/.envACTUAL_BASE_URL=http://127.0.0.1:8080 を追記してから: ``bash hermes config set model.provider actual hermes config set model.default "INSTALLED_MODEL_NAME" ``

  1. 確かめます(ツールを絞った状態で。下のコンテキスト長のつまずきどころを参照):
hermes chat -Q -q "Reply with exactly: LOCAL_OK" --provider actual -m INSTALLED_NAME -t file,web

早見表

項目
ホスト型の中継 https://api.actual.inc/v1(ホスト名だけ書いても自動で正規化されます)
端末上のデーモン http://127.0.0.1:8080/v1(ループバックでは認証なし)
キーの環境変数 ACTUAL_API_KEYac_...
Base URL の環境変数 ACTUAL_BASE_URL(ループバックのホスト ⇒ ローカルの認証なしモード)
提供元 id / 別名 actual / actual-computer, actualcomputer, aci
通信方式 Responses API(codex_responses)— 組み込みです。上書きしないでください
クラスタの固定 config.yaml の providers.actual.extra_headersX-Cluster-ID ヘッダーを付けます
モデルの大きさの目安 0.5B Q4_K_M で約 470MB(お試し)、7-8B Q4_K_M で約 4.5GB(普段使い)、32B で約 20GB

つまずきどころ

  1. reasoning_effort の罠(正式な提供元になってからは Hermes が面倒を見ます)。

Actual の SGLang / vLLM のバックエンドは none/low/medium/high/max しか受け付けません。 以前は xhighultra を渡すと、分かりにくい Expecting value: line 1 column 1 (char 0)(中身は HTTP 400)で失敗していました。 組み込みの提供元は、送信時に xhigh→highultra→max と丸めます。古い Hermes で まだこの形の 400 が出るなら、モデルごとに上限を設定してください。config.yaml の agent.reasoning_overrides.<model>: high です。

  1. 小さなローカルモデルでのコンテキスト長あふれ。 Hermes の既定のツール一式はスキーマだけで

約 26k トークン、加えてシステムプロンプトが約 9k トークンあります。32k のコンテキストで 読み込んだモデルは最初のやり取りの前にあふれ、llama.cpp 系のサーバーは data: [DONE] だけを返すので、Hermes は Provider returned an empty stream with no finish_reason と報告します。これは SSE の 不具合ではありません。対処は、ツールを絞る(-t file,web)、n_ctx を大きくしてモデルを 読み込む、またはツール一式をそのまま使うなら 64k 以上のコンテキストを持つモデルを選ぶ、 のいずれかです。上流での追跡先は #51448 です(新しい issue は立てず、そこに証拠を 足してください)。似ていますが別のものとして、#65631(HTTP 200 の SSE が 400 を運ぶ)と #56516(reasoning だけのストリーム)があります。

  1. ダウンロードの id とインストール後の名前は別物です。 actual models download

repo/QUANT を取り、量子化を明示しないと 409 になります。actual models loadactual models list に出るインストール後の名前を取ります。

  1. reasoning 系のモデルが本文を返さない。 GLM や Qwen の reasoning 版は、思考を別の

reasoning フィールドに出すため、max_tokens が小さいとそれだけで使い切ることがあります。 失敗と決めつける前に、max_tokens をたっぷり取ってください。

  1. actual という名前の独自プロバイダを作らないでください。 正式対応の前に書かれた古い

手引きは providers.actual.* の設定ブロックを書かせていました。今の Hermes では組み込みの 提供元がこの名前を取るので、古い独自ブロックは無視されるか、ぶつかります。消したうえで、 上に書いた環境変数と model.provider の流れを使ってください。

検証

# Relay:
hermes chat -Q -q "Reply with exactly: ACTUAL_OK" --provider actual -m MODEL
# Local (small model — reduced toolset):
hermes chat -Q -q "Reply with exactly: LOCAL_OK" --provider actual -m MODEL -t file,web
# Provider status (local no-auth shows key_source=local-offline):
hermes status

OpenCode など、他の OpenAI 互換のクライアントについては references/opencode.md を 参照してください。