LLM に株について賢いことを言わせること自体は、誰でもできる。それは仕事じゃない。
本当の仕事は、ハーネス、つまりモデルを包むレイヤーだ。それが、あなたのアナリストを信頼できるデスクにするか、文法だけはまともな乱数生成器にするかを決める。モデルは、全体の中で最も交換が容易な部品に過ぎない。

3 つのパート:
- 適切な実行方法
- 金融マシンに教育する方法(本当の差がつくところ)
- 拡張するためのリポジトリとサービス
真ん中のパートは 2 回読むこと。
これは投資助言ではありません。必ずご自身で調査してください。私自身のプロジェクト - @coldvisionXYZ
パート 1: 実行し、何を実行しているのかを理解する
一行で。Python、node、git、すべてを ~/.hermes/ にプロビジョニングします:
1curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Linux、macOS、WSL2、Termux 経由の Android(自動検出)、ネイティブ Windows(WSL 不要の初期ベータ版)。Python 3.11+。その後、hermes setup でウィザードを起動するか、hermes model / hermes tools / hermes gateway setup で個別に設定します。hermes(従来の CLI)または hermes --tui(推奨)で実行します。
プロバイダーの抽象化こそが、静かなるスーパーパワー
同じランタイムが、chat-completions API、Anthropic Messages、Codex Responses、外部プロセスの Codex アプリサーバーパス、そして Bedrock を駆動します。
ツールコールの形式とプロバイダーの癖は、トランスポートアダプターによって正規化されるため、ループレベルでは、背後に何があろうとモデルの表面は同一に見えます。
つまり、プロバイダーのフェイルオーバーは現実のものとなり、モデルの交換は本当にコード変更ゼロで可能です。
あなたの財布にとっての実用的な結果: あなたは 1 つのモデルだけを実行するわけではないのです。
config.yaml の auxiliary の下で、すべてのサイドタスク(キュレーターの実行、ビジョン、埋め込み、タイトル生成、セッション検索、圧縮サマライザー)は、それぞれ独自のプロバイダー、モデル、base_url、reasoning_effort を固定できます。
つまり、高価な推論モデルが、古いチャットの要約やセッションの命名にトークンを浪費することは決してありません。
また、smart_model_routing を使用すると、難しいターンは強力なモデルに、それ以外はすべて安価なモデルにルーティングできます。
最も安価で健全なセットアップ: プライマリとして Nous Portal(1 つのサブスクリプションで 300 以上のモデル + Web/ブラウザ/画像/TTS 用の Tool Gateway)、すべての補助作業に安価なモデルを固定、無料のフォールバックとしてローカルの Ollama/vLLM。ローカルで行く場合、Ollama はデフォルトで 4k コンテキストに設定され、静かに切り詰められます。num_ctx を 64k 以上に設定しないと、エージェントは愚かになり、あなたはモデルのせいにするでしょう。
設定を触る前に理解すべきこと: プロンプトはキャッシュ形状である
これはシステム全体が守るために構築された不変条件であり、これを理解していなければ、静かに請求額を 10 倍にすることになります。
Hermes はシステムプロンプトを 3 つの層 で構成します:
- stable (安定)
- context (コンテキスト)
- volatile (揮発性)

Stable 層は、アイデンティティ(SOUL.md)、有効なツールのみのツールガイダンス、スキルインデックス、環境ヒントを保持します。Context 層は cwd から派生します。Volatile 層はターンごとに変化します。この階層化がコード内で明示されている理由はただ一つ、プロンプトプレフィックスキャッシュの有効性のためです。プロバイダーはプロンプトのプレフィックスをキャッシュし、キャッシュされたトークンは割引料金で請求します。Stable 層が変更されるたびに、そのキャッシュは破棄され、すべてに全額を支払うことになります。
そのため、Hermes はコンテキストの変更をほとんど神聖なものとして扱います。エージェント自身のエンジニアリングルールによれば、コンテキストを意図的に変更する唯一のタイミングは圧縮時です。システムプロンプトの状態を変更するスラッシュコマンド(スキルのインストール、ツールの切り替え)は、デフォルトで遅延無効化されます。変更は次のセッションで有効になり、本当にすぐに反映させる必要がある場合はオプトインの --now フラグがあります。/skills install --now は、「キャッシュ破棄を受け入れます」という標準的なパターンです。
アナリストとしてこれが重要な理由: 有効にしたすべてのスキルとオンにしたすべてのツールは、その stable 層に存在し、すべての呼び出しでプレフィックストークンを消費します。60 個の有効なツールを持つ肥大化したエージェントは、すべてのターンで 60 個すべての説明文の代金を永久に支払い続けることになります。ツールセットをスリムに保ち、スキルをオンデマンドにすることは、整理整頓の問題ではなく、コストモデルなのです。
圧縮は切り捨てではなく、系統(リネージ)である
コンテキストがいっぱいになると、単純なエージェントは古いターンを削除し、記憶喪失になります。
Hermes は 2 つの独立した圧縮層 を実行します:
- エージェントが実行される前に、大まかな推定でコンテキストの約 85% で作動する、ゲートウェイの「セッションハイジーン」セーフティネット
- 本命で、API 報告の正確なトークンカウントを使用して約 50% で作動する、ループ内の ContextCompressor
中間のターンを削除するのではなく、新しいメッセージに要約し、セッションは圧縮分割ごとに親子の系統(リネージ)を追跡します。要約はトランスクリプトの一部になります。オリジナルは系統内に保存されます。

非可逆(Lossy)で問題ありません。可逆(Lossless)にするとメモリが不足します。
セッションは単なるトランスクリプトではなく、インフラストラクチャです。
セッションはソースタグとルーティングメタデータを保持し、モデルからアクセス可能な session_search ツールと、過去のすべてのターンに対する FTS5 SQLite インデックスがあります。あなたのエージェントは、推論の途中で「3 週間前に COIN についてどんな結論を出したか」を思い出すことができます。それはあなたがそれをコンテキストに詰め込んだからではなく、エージェントがオンデマンドで自身の履歴をクエリできるからです。
実行場所
6 つのターミナルバックエンド:
- local
- Docker
- SSH
- Singularity
- Modal
- Daytona
Modal と Daytona はサーバーレスで、環境はアイドル時に休止し、オンデマンドで起動するため、実行間のコストはほとんどかかりません。
5 ドルの VPS または休止状態のサーバーレスボックスが、本当の「5 ドル」です。ゲートウェイを配線すれば、同じエージェントが統合セッションルーティングで 20 以上のプラットフォーム(Telegram、Discord、Slack、Signal など)で実行されるため、クラウドボックスで作業しているエージェントにスマートフォンから話しかけることができます。
セッションは、マルチプロセス書き込み競合に対するカスタムリトライ層を備えた WAL モードの SQLite を介して再起動後も存続するため、cron ジョブとゲートウェイの処理が互いに破損することはありません。
パート 2: 金融マシンに教育する
プレーンなエージェントは、ドメインの訓練も判断の規律もない優秀なインターンです。あなたは文字通り、アイデンティティ、プレイブック、メモリ、標準という 4 つのチャネルを通じてエージェントを教育します。その後、エージェントは自己教育を始め、あなたの本当の仕事はキュレーションになります。
2a. アイデンティティ - SOUL.md はスロット #1
SOUL.md は文字通りシステムプロンプトの最初の要素であり、ツールやスキルなど、すべての前に置かれます。これはペルソナと価値観の層です。
金融アナリストにとって、ここで設定するのは性格の飾りではなく、認識論的な気質です。
例えば: 「あなたは懐疑的なバイサイドアナリストです。きりの良い数字やナラティブを信用しません。このセッションでツールから取得しなかった数値を決して述べてはいけません。推測するよりも「データ不足」と言う方を選びます。自分自身の以前の結論は、更新されるべき事前確率として扱います。」
これはキャッシュ安定層に配置され、すべてのターンに無料で色を付けます。ほとんどの人は SOUL.md をデフォルトのままにします。アナリストにとって、これは最もレバレッジの効いた 1,500 文字です。
2b. プレイブック - スキル、そして説明文こそが本当のエンジニアリングである理由
スキルとは、~/.hermes/skills/ に保存された、名前 + 説明 + 手順からなる SKILL.md です。
常にロードされるスキルインデックスに存在するのは、短い説明文だけです。
完全な手順は、タスクが一致したときにオンデマンドでロードされます。つまり、スキルライブラリは大きくても、プレフィックスを肥大化させることはありません。
つまり、スキルの成否は説明文にかかっています。
説明文はルーターです。説明文が曖昧だと、エージェントは必要なときにスキルをロードしなかったり、不必要なときにロードしたりします。説明文は要約ではなく、トリガー条件のように書きましょう。
「ユーザーが米国上場株式を指定し、ファンダメンタル分析を求めた場合に使用する」は、「株式を分析する」よりも優れています。
実際のアナリストスキル。2d の標準が手順に直接組み込まれていることに注目:
1---2name: equity-snapshot3description: ユーザーが米国上場ティッカーを指定し、ファンダメンタル + 株価分析とリスクフラグを求めた場合に使用する。4---56# Equity Snapshot781. SEC の company_tickers マップを使用して、ティッカーを CIK に解決する。ティッカーを決して推測しない。92. EDGAR から最新の 10-K/10-Q(収益、負債、FCF)を取得する。アクセッション番号を記録する。103. 自分で比率を計算してはならない。P/E、マージン、前年比については calc ツールを呼び出す。114. 2 つのソース間で収益をクロスチェックする。矛盾がある場合は、その差異を報告し、どちらかを選択してはならない。125. 出力: テーゼ(2 行)、3 つの触媒、3 つのリスク、バリュエーション評価、信頼度 0-1、および「この判断を覆すであろう 1 つのデータポイント」。データが不十分な場合は、「pass」を返す。
スキルは、プラットフォームごとの有効/無効、ツールの可用性に基づく条件付きアクティベーション、および前提条件の検証をサポートしているため、スキルは「EDGAR ツールが存在する場合のみ利用可能」と宣言できます。
フォーマットはオープンな agentskills.io 標準であるため、作成したものは他の互換性のあるエージェントに移植可能です。
2c. 自己改善ループとメンテナンス
エージェントは自身のスキルを書きます。
試行錯誤(通常は複数のツール呼び出しを伴うタスク)で何かを解決した後、機能したアプローチを agent_created/ 内の SKILL.md として保存します。
スキル管理ツールには 6 つのアクションがあり、知っておくべきは patch: です。これは対象を絞った修正であり、トークン効率が良いため、完全な編集書き換えよりも優先されます。
エージェントは文字通り、使用中に自身のプレイブックをその場で洗練させていきます。
メンテナンスを怠ると、自動スキルは転移(メタスタシス)します。
何十もの狭く重複したプレイブックができあがり、プレフィックストークンを消費し、ルーターを汚染することになります。

キュレーターがこれを処理します。その仕組みを知っておく価値はあります。これは cron デーモンではありません。非アクティブチェックで実行されます。前回の実行から約 7 日が経過し、エージェントが 2 時間以上アイドル状態になったとき、バックグラウンドフォークが起動します(独自のプロンプトキャッシュを持ち、アクティブな会話には決して触れません)。そして、LLM レビューループを実行し、古いスキルを自動アーカイブします(.archive/ へ。復元可能で、何も失われません)。
設定は config.yaml の curator の下にあります: interval_hours、min_idle_hours、stale_after_days、archive_after_days。
自動スキルはインターンの下書きのように扱いましょう。hermes curator review でそれらを目視確認し、本当に良いものは固定して残し、残りはアーカイブさせます。このループをキュレーションすることこそが教育なのです。
キュレーションされていないエージェントは、時間の経過とともに良くなるどころか、悪化していきます。
2d. 標準 - 規律、どれだけ節約できるかでランク付け
これらは SOUL.md とすべての SKILL.md に組み込むルールです。影響度順。
1. 算術を禁止する。 LLM はトークンを予測します。これは、自信満々の誤った数値の最大の原因です。クリーンな実装は execute_code(2e で後述)を使用し、決定論的なスクリプトが計算を行い、モデルは入力の決定と出力の解釈のみを行います。
モデルが「推定」した DCF はフィクションです。スクリプトが計算し、モデルがストレステストした DCF こそがプロダクトです。
2. すべての数値にソースを添付する。 すべての数値は、ソースと基準日が添付されて返され、裸で返されることはありません。レンダラーはソースのないものはすべて削除します。
その見返りは敵対的です: 2 つのソースが矛盾する場合、その矛盾こそがシグナルとなります。
3. 特定時点のみ。 先見バイアスは、すべてのバックテストと「予測した」スクリーンショットの静かな殺し屋です。API はデフォルトで修正済みの現在のデータを提供します。
事実には基準日をタグ付けし、エージェントが判断日に知り得た情報のみにアクセスできるように制限します。
4. 敵対的に構築する。 1 つのサブエージェントが強気のケースを構築し、2 つ目はそれを打ち負かすよう命じられ、3 つ目が表明された信頼度で調整を行います。その価値は完全に、目的が真に対立していることにあり、エージェントの数にはありません。
ここではニュートラル志向のモデルが重要です。なぜなら、それらは弱気のケースを曖昧にして無難なものにするのではなく、強く主張するからです。
5. 棄権する権利。 すべての呼び出しで「この判断を覆すであろう 1 つのデータポイントは何か」を強制します。
もしそのデータをエージェントが持っていなければ、答えは「ポジション無し」です。
2e. 高度な技: プログラムによるツール呼び出しでパイプラインをゼロコンテキストコストに collapse する
これは、一度理解すると、すべてのアナリストワークフローの構築方法が変わる機能です。
通常、マルチステップパイプラインはステップごとに LLM ターンを消費します。「検索して…読んで…要約して…書いて。」すべての機械的なステップは推論トークンを消費し、中間のジャンクでコンテキストを汚染します。
execute_code がそれを排除する
エージェントは、Unix ドメインソケット RPC を介して Hermes 自身のツールを呼び出す 1 つの Python スクリプトを書きます。スクリプトは子プロセスで実行されます。ツール呼び出しはソケットを介して親プロセスに戻り、通常のツール呼び出しと同じハンドラーを通じてディスパッチされます。
重要なのは: スクリプトの print() 出力のみがモデルに返されます。中間のツール結果はコンテキストウィンドウに入ることはありません。
1# エージェントはこれを一度書く。モデルは判断ポイントでのみ関与する。2from hermes_tools import edgar_fetch, market_price, calc34tickers = ["TSLA", "NVDA", "COIN"]5rows = []6for t in tickers:7 f = edgar_fetch(t, form="10-Q") # RPC 経由のツール呼び出し8 px = market_price(t) # RPC 経由のツール呼び出し9 pe = calc("pe", price=px["last"], eps=f["eps"]) # 決定論的な計算、LLM ではない10 rows.append({"ticker": t, "pe": pe, "src": f["accession"], "as_of": f["period_end"]})1112print(rows) # これだけがコンテキストウィンドウに入る
金融アナリストにとってこれは非常に大きな意味を持ちます。
20 のティッカーをそれぞれ 3 回のツール呼び出しでモーニングスイープする場合、従来の方法では 60 回のツール呼び出しとなり、コンテキストとトークン予算を吹き飛ばします。
スクリプトとして実行すれば、1 ターン、1 つのクリーンな印刷テーブル、計算は決定論的にインラインで行われます。パイプライン全体を単一の推論に折り畳み、モデルは実際に判断が必要なポイントでのみ思考します。定期的なアナリストワークフローは、スキルでラップされた execute_code スクリプトとして構築しましょう。(Unix ドメインソケットが必要なため、Linux/macOS のみ。)
2f. メモリ - 事実とユーザーモデル
Hermes のメモリは 3 つの直交するメカニズムです(「3 層」という枠組みは教育上の単純化であり、コード上ではこれらは独立しています):
- MEMORY.md - 永続的な事実。約 2,200 文字の上限。
- USER.md - あなたのモデル。約 1,375 文字の上限。
- SessionDB - 過去のすべてのターンに対する SQLite、WAL、FTS5。
session_search経由でクエリ可能。
MemoryStore は、セッション開始時に一度だけ MEMORY.md と USER.md を読み取り、それらをシステムプロンプト内の単一の不変ブロックとして埋め込みます。
エージェントはセッション中にこれらのファイルに書き込むことができ、書き込みはディスクにヒットしますが、プロンプト内のコピーは次のセッションまで変更されません。なぜなら、変更するとプレフィックスキャッシュが破棄されるからです(他のすべての場所と同じ不変条件)。
さらに 8 つのオプションの外部プロバイダー(Honcho の dialectic ユーザーモデリング、Mem0、Hindsight、Supermemory など)があり、単一選択で、hermes memory setup で設定します。
文字数制限は機能です。USER.md をダンプ置き場ではなく、高シグナルのインフラとして維持することを強制します。
アナリストにとって、USER.md はあなたの権限委譲です: リスク許容度、期間、実際に行動する指標、出力形式。
MEMORY.md は、エージェントが獲得した永続的な事実(「COIN の収益は FMP よりも 10-K との関連性が高い」)のためのものです。
SessionDB をスコアキーパーとして使い、すべてのコールを保存し、結果に対してスコアリングします。エージェントは事前確率を更新し、あなたはそのキャリブレーション(どこが鋭く、どこが慢性的に強気すぎるか)を学びます。このキャリブレーションマップは、リテールビルドが収集しようとしないアルファです。
2g. プロンプトだけでは不十分な場合: GAPA、そして RL
ファインチューニングに手を出す前に: Hermes には GAPA があり、手動の試行錯誤による調整の代わりに、SOUL.md、スキル指示、システムプロンプトを体系的に最適化します。
パフォーマンスが頭打ちになったら試してみてください。
さらに先へ進むと、Hermes はバッチ軌跡生成を行い、SFT 用の ShareGPT 形式のトレースをエクスポートします。また、RL パス(Atropos)があり、実際にあなたの軌跡でツール呼び出しの振る舞いをファインチューニングできます。これが「教育する」ことの本当の天井であり、最終的にはあなたのアナリストの働き方に基づいてモデルをトレーニングすることになります。
パート 3: 拡張する: リポジトリ、MCP、サービス
MCP: 登録と公開を分離する
CLI または config.yaml を介してサーバーを追加します。エージェントは起動時にそれらのツールをリストアップし、組み込みツールと一緒に登録します。重要な規律(上記のキャッシュロジックを反映): tools.include でホワイトリストを設定し、必要なものだけを公開します。なぜなら、公開されたすべてのツールはプレフィックストークンを消費し、攻撃対象領域を広げるからです。
1hermes mcp add github --command npx --args "-y,@modelcontextprotocol/server-github"2hermes mcp configure github # 個々のツールを切り替える
1mcp_servers:2 filesystem:3 command: npx4 args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/you/research"]5 tools: { include: [read_file, list_directory] } # 読み取り専用、書き込み不可
/reload-mcp で適用します。
Composio MCP はチートコードです。1 つのサーバーで数百の SaaS 接続が可能です。人々は Hermes 上に金融エージェントを構築し、市場データをプルして Google Docs にレポートを書くことを、すべてこれを通じて行っています。そして、hermes mcp serve は Hermes をそれ自体が MCP サーバーとして実行し、セッション履歴を公開するため、Claude Desktop や Cursor があなたのアナリストが見つけたものをクエリできるようになります。エージェントは、他のツールが読み取る知識ベースとなるのです。
データの蛇口(ランク付け: 背骨 vs 飾り)
暗号資産の背骨:
DefiLlama
(無料、キー不要、実質的なレート制限なし、TVL/手数料/利回り/価格、有料ダッシュボードの半分は単なるリデコレーション)
+ Helius
(Solana の王様、拡張トランザクションパースによりバイトスープを読み取り可能なスワップに変換)
飾り:
Birdeye(OHLCV + ウェブソケット)、Jupiter(ルーティング/クォート)、Dune + Flipside(SQL オンチェーン)、Bitquery(GraphQL マルチチェーン)、Nansen/Arkham(ラベル付き、有料)
伝統的金融の背骨:
FRED
(セントルイス連邦準備銀行、最高シグナルの無料マクロデータ、デスクが実際に見ているデータ)
+ edgartools
(MIT、キー不要、アクセッション番号付きの 10-K からの型付き財務データ)
飾り:
Finnhub(最高の無料ティア)、FMP(事前計算済み比率)、Polygon/Tiingo(クリーンな履歴データ)、yfinance(応急処置テープ、静かに壊れる)、GDELT(グローバルニュースイベント)
落とし穴: 無料ティアは厳しいです(Alpha Vantage は 1 日約 2 ダースの呼び出し)。コードが壊れたと思うでしょう。すべてをキャッシュし、credential pools(config.yaml)を使用して複数のキーを自動的にローテーションし、レート制限を乗り切りましょう。
時間をかける価値のあるリポジトリ
- NousResearch/hermes-agent
developer-guide ドキュメントを読むこと: アーキテクチャ、エージェントループ、コンテキスト圧縮とキャッシュ。DeepWiki と mudrii/hermes-agent-docs ミラーは内部構造を理解するのに良い。

- 0xNyk/awesome-hermes-agent
キュレーションされたスキル、ツール、MCP サーバー、統合。ここから始めましょう。スキルハブ: 公式 Hub(680 以上のスキル、18 カテゴリ)、skills.sh、ClawHub。

- OpenBB-finance/OpenBB
MCP サーバーを出荷するオープンソースの Bloomberg。つまり、Hermes に直接プラグインでき、1 つのインターフェースを通じてエージェントに巨大な市場データ + 分析サーフェスを提供します。最もレバレッジの効く単一のアドオン。

- polakowo/vectorbt
Numba 高速バックテスト。数千のバリエーションを数秒で実行。スキルでラップして、エージェントがすべての仮説を信頼する前にテストできるようにします。

- TauricResearch/TradingAgents (+ auronsun/TradingAgents-crypto)
マルチエージェントトレーディングファームシミュレーター。構造を学ぶために読み、その後、あなたが理解できる、よりスリムな強気/弱気サブエージェントバージョンを構築しましょう。実際の体系的な戦略については microsoft/qlib と nautechsystems/nautilus_trader を。ライブラリマップとしては wilsonfreitas/awesome-quant を。






