OpenCode、Cursor、その他のコーディングエージェントのためのHindsight Memory

セッションをまたいで残存するプロジェクトメモリ。

目次

コーディングエージェントの各セッションは、毎回ゼロから始まります。先週の名前付けルールやバグの修正手順はチャット履歴の中にありましたが、そのチャットはもう消えてしまっています。次のセッションは白紙の状態から始まるため、再度説明をしなければなりません。

以下のコマンドは、2026年10月30日に公開された @vectorize-io/hindsight-coding-agents バージョン 0.8.4 に対応しています。このパッケージは @vectorize-io/hindsight-all ^0.10.2 に依存しています。パッケージの動作、Cloud 版の料金、およびこのページの Memory Defense については、2026年11月3日に確認を行いました。セッション間で事実を保持する他の方法については、AI システムのメモリ のページ群をご覧ください。

デスク、ラップトップ、サーバーラック、仏式ドアのある家庭用セルフホスト環境

コーディングエージェントは、リポジトリの読み取り、テストの実行、コードの変更を行うことができます。しかし、開いているファイルには記録されていない決定事項を見ることはできません。例えば、去年調査されたエクスポートバグを想像してみてください。通常の CSV 引用は試されましたが、受信側の ERP が先頭のゼロを除去するためロールバックされました。機能するのは、Excel のテキスト数式形式だけです。

Hindsight の coding-agents ドキュメント は、コミットメッセージや過去のチャットの中にのみ存在するそのような決定事項をターゲットとしています。このプラグインは、最近のコミットメッセージをメモリバンクにコピーし、作業を進めるにつれてセッションの内容を書き戻し、次のセッションがそれらを起点に開始できるよう5つのページを維持します。OpenCode、Cursor CLI、Claude Code、およびパッケージにリストされているその他のツールは、1つのリポジトリに対してそのバンクを共有します。

coding-agents プラグインとは

古いインストール環境でも、すでに選択していたサーバーと通信を続けることができます。hindsight-claude-code、hindsight-cursor-cli、および hindsight-codex は、このパッケージが置き換える対象のパッケージです。ディスク上に ~/.hindsight/claude-code.json または ~/.hindsight/codex.json がまだ存在する場合、install コマンドはそのファイルの API URL とトークンをコピーします。空の URL はローカルデーモンを意味します。インストールされるツールが最初に読み取られるため、古い Claude のファイルが隣にある場合でも、Codex のインストールは Codex のサーバーを維持します。Cursor CLI、Copilot CLI、OpenCode、Cline はエンドポイントファイルを書き出しなかったため、これらのインストールにはコピーするサーバーがありません。

古い recall と retain 設定、bankMission、retainMission、および dynamicBankGranularity は非推奨となります。coding-agents ドキュメント によれば、これらはこのパッケージが置き換えたパイプラインを説明しており、再解釈は推測に過ぎないとのことです。代わりに得られるのは、リポジトリごとに1つのバンク、すなわち coding-agent::{gitProject} です。このバンクは、そのチェックアウトを開くすべてのツールで共有されます。各ツールに独自のバンクを割り当てるには、ドキュメントで旧名に対応すると説明されているテンプレートを設定してください:

{ "bankIdTemplate": "{harness}::{gitProject}" }

ツール名を指定せずに npx @vectorize-io/hindsight-coding-agents install を実行すると、リストが表示され、何も書き込まれません。すべての検出されたツールを接続するコマンドは install all です。update は ~/.hindsight/coding-agents 以下のコピーを置き換え、各ツールの設定ファイルには変更を加えません。autoUpdate は1日1回、バックグラウンドでこの置換を行います。新しいフックを追加したリリースでは、バックグラウンドの更新が設定ファイルを編集しないため、依然として install が必要です。Hindsight が複数のバックエンドオプションの一つである場合、エージェントメモリプロバイダーの比較 によって、Honcho、Mem0、Mnemosyne との比較が行えます。

メモリを保存する場所の選択

セッションが決定事項を保存できるためには、まずバンクが存在しなければなりません。ターミナル上で install を実行すると、一度だけ質問されます:Hindsight Cloud、すでに実行しているサーバー、コーディングエージェントと同じコンピュータ上のデーモンのいずれかです。スクリプトからは --server を渡します。後続の install では再度質問されず、すでに指定済みのサーバーは変更しない限り(--server を渡す場合)、そのままでいます。

モード 実行されるもの 提供するもの マシンから送信されるもの
cloud Hindsight Cloud。デフォルトの API ベースは https://api.hindsight.vectorize.io API トークン その API へのプロンプト、プラグインが保持する git テキスト、抽出されたメモリ
self-hosted 自分で実行している Hindsight サーバー その URL(慣例上 http://localhost:8888) その URL への送信。localhost URL の場合はマシン内に留まる
daemon 127.0.0.1:9077 でプラグインが開始するローカル hindsight-embed PATH 上の uv と、事実抽出用の LLM バンクデータはマシン内に留まる。抽出には、デーモンに与えられた LLM への呼び出しが発生する
npx @vectorize-io/hindsight-coding-agents install opencode --server daemon
npx @vectorize-io/hindsight-coding-agents install opencode --server self-hosted --api-url http://localhost:8888
npx @vectorize-io/hindsight-coding-agents install opencode --server cloud --api-token YOUR_TOKEN
flowchart LR A[コーディングエージェント] --> P[coding-agents プラグイン] P --> B["バンク coding-agent::{gitProject}"] P --> M{serverMode} M --> C[Hindsight Cloud] M --> S[セルフホスト API :8888] M --> D["hindsight-embed 127.0.0.1:9077"]

デーモンは 127.0.0.1:9077 にバインドされ、ポート 8888 は自分で実行する Hindsight サーバーのために空けておきます。9077 で既に何かリッスンしている場合、プラグインはすべてのコーディングツールとリポジトリに対してそのプロセスを使用し、セッションを閉じても実行を続けます。初回起動時には hindsight-embed がダウンロードされ、モデルがバックグラウンドで読み込まれます。これは、フックがそれほど長時間待機できないためです。ポートが応答するまで、そのセッションはターンや二ターン程度メモリを持たず、Cloud やセルフホストサーバーに到達できない場合にメモリが欠落するのと同じです。

Linux と Windows では、API が引き込む litellm をホイールからインストールします。macOS では、macOS 用のホイールが存在しないため、コンパイルが必要です。これには rustup から現在の Rust ツールチェーンが必要です。トランスクリプトをメモリに変換するには、チャットモデルが必要です:設定している HINDSIGHT_API_LLM_PROVIDER、または OPENAI_API_KEY、ANTHROPIC_API_KEY、GEMINI_API_KEY、GROQ_API_KEY のうち最初のキー、それらがない場合は Claude Code CLI が使用されます。HINDSIGHT_API_* の変数はすべてデーモンにパススルーされます。埋め込みモデル、リランカー、ローカルの OpenAI 互換サーバー、およびバンクのバックアップについては、Hermes Agent 向け Hindsight を参照してください。serverMode が self-hosted に設定されている場合、--api-url はそのサーバーのベース URL になります。

Vectorize の料金ページでは、セルフホスト版は MIT ライセンスであり、シート料金もトークン料金もないと説明されています。Cloud 版では各操作が課金されます。料率は最後のセクションにあります。

OpenCode の接続

プラグインが接続できるためには、先に OpenCode がインストールされている必要があります。OpenCode クイックスタート でそのインストールについて説明しています。次に、プラグインをデーモンに向けましょう:

npx @vectorize-io/hindsight-coding-agents install opencode --server daemon

インストーラーは、ユーザーファイル ~/.config/opencode/opencode.json にプラグインパスを1つ書き込みます。これはプロジェクトの opencode.jsonc とは独立しています。OpenCode はそのパスから hindsight_* ツールを読み込み、MCP サーバーは不要です。OpenCode 2 (npm @opencode/cli、インストールターゲット opencode2) は同じファイルを読み込みます。どちらかの CLI をインストールすると両方が接続され、どちらかのアンインストールではエントリが削除されます。OpenCode v1 は、v2 の plugins キーを含むファイルを拒否するため、インストーラーは単一のパスを書き込み、各 CLI はパッケージから自分のエントリーポイントを読み込むようにします。

OpenCode 2 では、リポジトリの読み取り専用調査は別のインストール済みのツールによって実行されます。これは、v2 のプラグインは調査に必要な読み取り専用エージェントを定義できないためです。また、「seeded」の通知は、v2 のプラグインはトーストを発生できないため、プラグインログに出力されます。Recall、hindsight_* ツール、およびセッションの書き戻しは、v1 と同じように動作します。

OpenCode はワークスペース読み込み時に ~/.hindsight/coding-agent.json を読むため、そのファイルの変更は OpenCode を再起動した後に反映されます。すべてのツールにおける例外は新しい apiToken です:クライアントはサーバーがリクエストを拒否した際にそれを再読み取りするため、キーのローテーションには再起動が不要です。

バンクが実際に決定事項を保持したかどうかを確認するには、保存を許可できるリポジトリで2つのセッションを使用します:

  1. そこに OpenCode を開始し、変更したくない公開エラーコードのような、使い捨ての決定事項を1つ宣言します。
  2. セッションを終了します。OpenCode はセッション中にトランスクリプトを書き出し、アイドルになった際に最後の応答をフラッシュします。
  3. 同じディレクトリで新しいセッションを開始し、そのコードと、それが決定された場所を尋ねます。
  4. エージェントに hindsight_sync_status の呼び出しを依頼します。"synced": true は、シードされたメモリがクエリ可能であることを意味します。同じ結果は、git コピーの鮮度と、到着した調査ドキュメントの数(surveyDocs、0〜4)を報告します。

2番目のセッションにそのコードの記憶がない場合、~/.hindsight/coding-agents-logs/ を確認してください。plugin.log は読みやすいトレースであり、diag.jsonl は各 reflect とページ取得を記録し、usage.jsonl はターンで呼ばれた hindsight_* ツールを記録します。npx @vectorize-io/hindsight-coding-agents stats は、エージェントごとにその使用量ファイルを要約します。reflect がタイムアウトするか 5xx を返した場合、diag.jsonl はナレッジページの検索と、ページにマッチがない場合の観察のプレーン recall を記録します。エージェントは依然として応答します。これらのフォールバックも失敗した場合、そのターンではバンクからの情報が前にありません。

Cursor とその他のエージェントの接続

Cursor は CLI を通じて同じバンクに参加します。インストーラーはフックと MCP を ~/.cursor に書き込みます:

npx @vectorize-io/hindsight-coding-agents install cursor-cli --server daemon

これにより、フックが ~/.cursor/hooks.json に、MCP サーバーが ~/.cursor/mcp.json に、コンパニオンスキルが書き込まれます。各フックは短寿命のプロセスであるため、coding-agent.json への変更は次のプロンプトで反映されます。MCP プロセスは起動時にファイルを読むため、hindsight_* ツールは次のセッションで変更を確認します。

Claude Code は、Claude のファイルで同じフックと MCP の配線を受け取ります。install claude-code は3つのフックを ~/.claude/settings.json に追加し、claude mcp add 経由でユーザーのスコープに MCP を登録し、~/.claude/skills/hindsight-coding-agent をインストールします。このスキルは、Hindsight に何か保存すると指示した際に Claude が読むものです。Codex CLI (install codex) は3つのフックを ~/.codex/hooks.json に、[mcp_servers] ブロックを config.toml に書き込み、これらのフックは codex_hooks が true の場合のみ実行されます。

ツール インストールターゲット 配線 エージェントがメモリに到達する方法
OpenCode opencode ~/.config/opencode/opencode.json ネイティブツール、MCP なし
OpenCode 2 opencode2 OpenCode と同じファイル ネイティブツール、MCP なし
Cursor CLI cursor-cli ~/.cursor/hooks.json、~/.cursor/mcp.json、コンパニオンスキル フックと MCP
Claude Code claude-code ~/.claude/settings.json の3つのフック、ユーザースコープの MCP、~/.claude/skills/ 配下のスキル フックと MCP
Codex CLI codex ~/.codex/hooks.json、config.toml 内の [mcp_servers] フックと MCP
pi pi ~/.pi/agent/settings.json の拡張機能、~/.pi/agent/skills 配下のスキル ネイティブツール、MCP なし

Kilo、Copilot CLI、Cline、Devin CLI、および coding-agents ページ に記載されている他の名称は、同じ install <name> コマンドを使用し、開いたリポジトリのバンクを共有します。Devin CLI は、そのフックが node:sqlite を通じてセッションデータベースを読むため、Node 22.5 未満ではインストールできません。pi と Prime Agent も install コマンドを使用する必要があります。pi install npm:@vectorize-io/hindsight-coding-agents は配線されません。両方のツールは package.json の1つの pi キーを読み取り、そのキーは1つのエントリのみを指すことができるためです。

OpenCode がまだバンクに書き込む間、Claude Code にはバンクへの書き込みをしないようにするには、そのツールに対して disabled を設定します:

{
  "serverMode": "daemon",
  "harnesses": {
    "claude-code": { "disabled": true }
  }
}

すると、Claude Code は何も保存せず、何も recall せず、Hindsight ツールを受け取りません。retainSessions を false に設定すると(すべてのツールに対して、または1つのツールに対して)、トランスクリプトの保存と古いもののインポートが停止します。Recall、git 履歴、メモリツールは引き続き動作するため、すでに保存されているものについて質問できます。

リポジトリごとのバンクとナレッジページ

同じチェックアウトでの OpenCode と Cursor CLI は、同じプロジェクトを覚えておくべきです。それを実現するバンク名は coding-agent::{gitProject} です。{gitProject} は主要な git チェックアウトのディレクトリ名であり、git rev-parse --git-common-dir から取得されるため、リンクされたワークツリーはそのチェックアウトと同じバンクを使用します。git リポジトリでないフォルダーは、セッションが開始されたディレクトリの名前にします。

別のバンクを使用すべきフォルダーは mapPathToBank に記述します。絶対パスを与え、最も長いマッチングパスが優先されます。リポジトリのルートを書き込むと、その配下のすべてのサブディレクトリがカバーされます。このマップは、固定の bankId を含む他のすべてを上書きします。開くすべてのディレクトリが指定した1つのバンクに書き込むべき場合は bankId を設定します。dynamicBankId を false に設定すると、bankIdTemplate ではなくその静的バンクでの解決が維持されます。

エージェントが cd によって別のバンクに属するディレクトリに入った場合、それ以降のターンは新しいバンクに保存されます。すでに保存されたターンは、書き込まれた場所に留まります。各移動は plugin.log に警告として記録されます。

リポジトリを開く最初の一瞬、そのバンクにはプロジェクトの過去の決定事項が一つもありません。セッションは最近のコミットメッセージをコピーし、git にのみ存在する選択事項を、次のセッションが recall できるものにします。このコピーはデフォルトでオンです(autoSeed)。そのドキュメントの全面書き込みでは、最新のコミットが保持され、seedLimit の半分と seedLimit(300)の間に収まるようにします。ウィンドウは半分のステップで移動し、ログには古いコミットが何件捨てられたかが記録されます。

gitIngest は、最初のコピーと後に行うコミットの両方について、git 履歴のどの程度が保存されるかを決定します。"message" はコミットメッセージを保存し、HEAD にドキュメントが欠いているコミットが含まれる場合、ドキュメントを更新します。"full" は各コミットの diff も保存し、新しいものから順にします。"none" は git を除外します。後続のコミットはそのメッセージを追加します。保存されたコミットが HEAD の祖先でなくなったり、seedLimit 以上のコミットが新規になったり、サーバーが安全に追記できない場合、ドキュメント全体が seedLimit ウィンドウ内で再度書き込まれます。

コミットメッセージは、現在のコードがどのように構成されているかは示さないため、同じ最初のセッションはツリーを巡回することもできます。その巡回は codebaseSurvey で、デフォルトでオンです。使用しているコーディングツールは、その CLI が読み取り専用エージェントをホストできる場合に実行し、それ以外は別のインストール済みツールが実行します。

Claude Code での巡回は claude -p であり、surveyBudgetUsd(デフォルト 2)が支出を停止します。他のツールは、自分自身の読み取り専用サンドボックス内で、すでに指し示しているモデルを使用します。20個の新しいコミット(surveyRefreshCommits)があると、巡回が再度実行されます。それを 0 に設定すると、まだ調査されたことがないバンクでのみ実行されます。

注: 巡回は、ヘッドレス OpenCode などの別のコーディングエージェントを開始します。これらの呼び出しはそのエージェントのモデルに向かうため、"1" に設定した HINDSIGHT_API_LLM_MAX_CONCURRENT はそれらを遅くしません。モデルがセッションにすでに応答しているセルフホストサーバーである場合、巡回は同じサーバーに対する2回目の全面的なパスになります。サーバーが処理できない場合は、codebaseSurvey を false に設定してください。

次のセッションは、保存されたすべての事実を読み返すのではなく、5つのページから始まります。各ページは1つのナレッジ階層から合成されるため、抽出者がその階層にルーティングした事実のみを読み取ります。

ページ 回答する内容 タグ
コンポーネントマップ 主要なコンポーネント、その責任、および相互依存関係 knowledge:component
コアコンセプト ドメインの抽象化と、開発者が知るべき語彙 knowledge:concept
慣習とパターン プロジェクトのテスト方法、エラー処理、名前付け、コード構造、変更方法 knowledge:convention
重要な決定とその根拠 重要な技術的決定と、プロジェクトがそうする理由 knowledge:decision
イニシアチブと強化 時間とともに進んだ主要なイニシアチブと、キャプチャされたイニシアチブページへのリンク knowledge:feature-work

共有された1分間で5つのページが同時に発火すると、新しいメモリを保存する同じワーカープールで、取り込み中のセッションはその山に並ばなければなりません。デフォルトのスケジュールはそれを分散させます。pageTriggerCron は H * * * * です:各ページは、バンク ID とページ名からハッシュされた独自の分を得て、新しいものがないティックはスキップされます。pageTriggerType を auto-refresh に設定すると、新しい素材が生じた統合後にページを書き換えます。ドキュメントでは、これが最も現在のスケジュールであり最も高価なもので、統合ごとにページごとのモデル合成が行われると述べています。manual は、ページをリフレッシュするまでそのままでいます。

更新したくない組み込みページは、pages 配下で false にします。すでに保存されたコピーは、コントロールプレーンで削除するまで残り続けます。source_query は、そのページが問う質問を置き換え、プラグインは依然として、依存関係の決定をページから外す句を追加します。独自のページは customPages 配下に置き、独自の source_query が必要です。pages 配下の不明な名称は無視され、plugin.log に警告が出力されるため、タイプミスによって第2の空ページは作成されません。エージェントにイニシアチブのキャプチャを依頼すると、イニシアチブごとに1つの個別ページが hindsight_capture_initiative を通じて書き込まれます。

サーバー上のバンクを削除すると、そのリポジトリのメモリがクリアされます。次のセッションは git 履歴をコピーし、ツリーを再び巡回します。プラグインのアンインストールでは、バンクはその場所に留まります。

スコープとプライバシーの制御

リポジトリを開くと、それ用のバンクが作成され、クライアントツリーが要求なしに保存されることがあります。optInOnly はメモリを指定したディレクトリに限定します。それ以外の場所では、プラグインはバンクを作成せず、何も保存せず、git 履歴をコピーせず、コーディングツールはプラグインがインストールされていないかのように動作します。

{
  "optInOnly": true,
  "optInPaths": ["~/prj", "~/oss"]
}

各エントリはディレクトリプレフィックスであり、~ は展開され、その配下の各リポジトリは依然として coding-agent::{gitProject} バンクを各自得ます。mapPathToBank のパスも許可されます。すでにそのフォルダーを命名したためです。単独の bankId は何も許可しません:それはバンクの名前であり、フォルダーの名前ではないため、optInOnly がオンの場合、命名されていないディレクトリは除外されます。プラグインはリポジトリから設定を読み取りません。ドキュメントの理由は、クローンされたリポジトリがメモリをオンにできないようにすべきだからです。どのフォルダーがどのバンクを使用するかは mapPathToBank に残ります。どのツールがオンかオフかは harnesses に残ります。バンク ID が判明したら、その1つのリポジトリに関するさらなるルールは banks に記述します:

{
  "banks": {
    "coding-agent::secret-client": { "disabled": true }
  }
}

npx @vectorize-io/hindsight-coding-agents uninstall cursor-cli は、インストーラーが追加した Cursor のフック、MCP エントリ、スキルを削除します。uninstall all は、配線したすべてのツールに対してそれを行います。インストーラーが編集する前に、すでに存在するファイルは .hindsight-backup として隣にコピーされます。バンク、デーモンのデータベース、~/.hindsight/coding-agent.json は残ります。

チャットに貼り付けられたトークンは、メモリになるべきではありません。Memory Defense は、保存前にテキストを45パターンスキャンするもので、そのバンクにポリシーが設定されるまでオフのままです。redact はマッチ箇所を [REDACTED:github_token] のようなマーカーで置き換え、残りを保存します。block はマッチしたアイテムを削除し、リクエスト内のすべてのアイテムがマッチした場合 422 を返します。ポリシーはそのバンクでの後続の保存に適用されます。すでに保存されたメモリはそのままになります。この2つのアクションは、オープンソースの sensitive_data ルールです。

スキャンをオンにできるのは誰かについては、2つの場所で異なる方法で記述されています。2026年9月3日のエンタープライズ記事 では、基本的なスキャナーはすべてのプランで有効であると述べ、追加の検出器 — 220以上のパターンのカタログ、base64 再スキャン、プロンプトインジェクションチェック、LLM スクリーン — はエンタープライズ向けとされています。料金比較 では、Memory Defense はエンタープライズ限定とマークされ、セルフホストと Cloud のセルは空になっています。Cloud バンクがシークレットを除去できると頼りにする前に、現在の料金ページでその行を確認してください。

manageBankConfig はデフォルトで true であり、プラグインが取り込みに必要なバンク設定や defaultBankConfig に記述したフィールドを書き込むことを許可します。バンクにまだ定義されていない場所でのみフィールドを書き込むため、コントロールプレーンで設定した値は維持されます。プラグイン自身の戦略の抽出モードは例外です:それはすべてのセッションで retainExtractionMode に従います。すべてのセッションの書き戻しと共に送信される retainContext は、抽出に対して誰がその文を言ったかを伝えます。デフォルトでは両方のスピーカーを命名し、エージェント自身の “fixed” や “passes” を事実ではなくエージェントの主張として保存するように求めます。結論が誰かが観察したかのように保存された場合、次のセッションを支える方法については、[自己強化的なメモリループ](https://www.glukhov.org/ja/ai-systems/memory/self-reinforcing-memory-loops/ “保存されたモデルの推論が将来の証拠になり、そのループを制限するライトパス制御について。” }) を参照してください。

日常開発向け設定

すべてのコーディングツールは同じファイル ~/.hindsight/coding-agent.json を読むため、一度設定した制限は OpenCode でも Cursor でも適用されます。HINDSIGHT_CONFIG はそのファイルを移動します。2つ目は作成しません。各設定について、組み込みのデフォルトは環境変数(単一の値については HINDSIGHT_API_URL、HINDSIGHT_API_TOKEN、または HINDSIGHT_<FIELD>)に負け、環境変数はファイルのトップに負け、次は harnesses.<name>、次は paths.<prefix>、次は banks.<id> に負けます。ファイルに書き込まれた値は、後で同じ環境変数を設定しても残ります。retainTags と optInPaths はカンマ区切り変数にできます。mapPathToBank、harnesses、paths、banks、retainMetadata、recallOptions はファイルからのみ読み取ります。

セッションが遅い、高価、または間違ったリポジトリを記憶している場合、変更するのはこれらのフィールドの一つです。デフォルトは coding-agents 参照から取られています。

フィールド デフォルト 変更のタイミング
serverMode cloud ローカルバンクには daemon、自分で実行するサーバーには self-hosted
autoInject "reflect" "pages" または "recall" はセッション開始時の合成をスキップ。"none" は何も注入しない。エージェントはページを絞り込みすぎていた場合に検索と reflect する
reflectTimeoutMs 20000 自動セッション reflect。フックを使用するツールでは、インストーラーが30秒のプロンプトフックタイムアウトを設定するため、20秒を超える値は、そのフックの timeout の引き上げも必要
reflectBudget "high" エージェントが呼ぶ hindsight_reflect ツールの予算。自動セッション reflect は常に "low" を使用し、これを無視する
recallOptions observations、低予算、max_tokens 2000 キーごとにマージされる。統合が無効なバンクは observations を増やさないため、デフォルトの recall は空で戻る — そこで "types": ["world", "experience"] を設定する
retainExtractionMode "concise" "verbose" は詳細を多く取り込む。参照では、Stop ごとにセッションを書き戻すため、トークンが数倍のコストになると説明。"chunks" は抽出なしでテキストを保存
retainTags / retainMetadata 未設定 共有バンクでは、recall のフィルタリングのために project:{gitProject} を刻印。リポジトリごとに独自のバンクがある場合、バンク ID はすでに「どのリポジトリか」に答えている
bankIdTemplate coding-agent::{gitProject} {harness}::{gitProject} はエージェントを分離。mapPathToBank はディレクトリツリーを1つの命名バンクに向ける
codebaseSurvey true 巡回とセッションが同じセルフホストモデルを共有する場合 false。surveyBudgetUsd(デフォルト 2)は Claude レシピのみを制限
pageTriggerType "cron" "auto-refresh" はすべての統合に従う。"manual" はページをその場所に置く
maxParallelRetains 10 API が 429 を返す場合、下げる。参照では API がバーストラットリミットを行うと説明

~/prj 配下のリポジトリのみを記憶し、コミットメッセージを保存し、リポジトリ巡回をオフにし、新しいバンクにはシークレットの redact を求めるローカルデーモンは、次のようになります:

{
  "serverMode": "daemon",
  "optInOnly": true,
  "optInPaths": ["~/prj"],
  "gitIngest": "message",
  // codebaseSurvey は別のコーディングエージェントを開始します。HINDSIGHT_API_LLM_MAX_CONCURRENT はそれを制限しません。
  "codebaseSurvey": false,
  "retainExtractionMode": "concise",
  "autoInject": "reflect",
  "defaultBankConfig": {
    "memory_defense": {
      "enabled": true,
      "rules": [{ "on": "sensitive_data", "action": "redact" }]
    }
  }
}

defaultBankConfig は、memory_defense をまだ持たないバンクでのみ埋め、manageBankConfig が false の場合は何も行いません。hindsight_diagnose は、ファイルの現在の状態と、実行中のクライアントが実際に読み込んだ値を表示します。

コストと、ファイルで十分な場合

セッションは開始時に3つのコストを発生させます:最初のプロンプトの低予算 reflect、seedLimit で上限が設定された最近のコミットメッセージのコピー、ツリー巡回です。retainSessions をオンにしたままにすると、セッションが進行するにつれてトランスクリプトが保存されます。5つのページは、何かが変わった場合、毎時の独自の分で更新されます。gitIngest を "full" に設定すると、メッセージに加えて diff が保存されます。

Vectorize の料金 FAQ は、固定月間料金なし、シート料金なしの Cloud 料金をリストしています。FAQ では、新しいアカウントが無償クレジットを受け取ると述べ、クレジット額は公開されていません。

操作 料金
Retain 100万トークンあたり $10.00
Recall 100万トークンあたり $0.75
Reflect 呼び出し1回あたり $0.05
Iris Extract 100万トークンあたり $7.50
Mental Model Retrieve 100万トークンあたり $0.25
Mental Model Refresh 呼び出し1回あたり $0.05
30日経過後のストレージ 100万トークンあたり月額 $0.25

メモリは最初の30日間保存が無料です。Cloud の概要では、ナレッジページの作成または更新は呼び出しごとに課金されると述べ、FAQ にはナレッジページ個別の行は公開されていません。デーモンまたはセルフホストサーバーでは、これらの Cloud 料金は発生しません。抽出は、デーモンの LLM のコスト(install が見つけたキーがクラウド API キーである場合を含む)を依然として消費します。

同じドキュメントページは、AMB sdebench の実行結果を報告しています:61のリポジトリタスク、各3回の実行、メモリありとなし。どちらの方法でも、すべての実行が61中60〜61件を解決しました。動いたのは、タスクあたりの修正数とタスクあたりのコストです。ページでは、修正数図は AMB が独自にチャートに表示するラベルを再現し、コストは同じ実行別テーブルから導出されると述べています。

エージェント タスクあたりの修正数 タスクあたりのコスト
Claude Code 0.85 → 0.36 $0.445 → $0.338
Codex CLI 1.34 → 0.47 $0.577 → $0.276
opencode 1.20 → 0.80 $0.634 → $0.553

左側の数値はメモリなしです。この3つのエージェントが、ページが表示するテーブルの全体です。

コードの隣でレビューされたいルールは、AGENTS.md または CLAUDE.md に属します。そのファイルはデーモンがダウンしていてもリポジトリ内にあり、保存してもチャットは保存されません。バンクが担うのは、そこに書き込まれたことのなく、次のセッションが引き続き誤っている決定事項です。Hermes では、独自の保持スイッチを持つローカル SQLite ストアは Mnemosyne です。

ソース

  • Coding Agents — インストールターゲット、coding-agent.json フィールド、バンク命名、ナレッジページ、デーモンモード、sdebench テーブル。npm パッケージ @vectorize-io/hindsight-coding-agents 0.8.4、公開日 2026年10月30日。
  • 料金 — Cloud 操作料率、セルフホスト無料の主張、Memory Defense のプランマトリクス行。
  • Memory Defense — バンクごとの sensitive_data ポリシー、redact と block、45パターン、バンクポリシーが設定されるまでオフ。既存のメモリはスキャンされないまま残る。
  • エンタープライズ機能、2026年9月3日 — 基本的なスキャナーはすべてのプランと説明、追加の検出器はエンタープライズと説明。

購読する

システム、インフラ、AIエンジニアリングの新記事をお届けします。