プライバシーとデータセキュリティ:センシティブな情報を保護する方法
この章で学べること
- データがどこに行くのかを理解:どのデータがクラウドにアップロードされ、どのデータがローカルに残るのかを明確に把握します。
- 検閲テクニックを習得:
<private>タグを使用して、パスワードやキーなどのセンシティブな情報がアップロードされないようにする方法を学びます。 - キーを安全に管理:
SUPERMEMORY_API_KEYを最も安全な方法で設定します。
基本的な考え方
opencode-supermemory を使用する場合、データフローを理解することが非常に重要です:
- クラウド保存:あなたの記憶(Memories)は Supermemory のクラウドデータベースに保存され、ローカルファイルではありません。つまり、記憶にアクセスするにはネットワーク接続が必要です。
- ローカル検閲:プライバシーを保護するため、プラグインはデータをクラウドに送信する前に、ローカルで検閲処理を行います。
- 明示的な制御:プラグインはすべてのファイルを自動的にスキャンしてアップロードするのではなく、Agent が
addツールを明示的に呼び出すか、圧縮がトリガーされた場合にのみ、関連するコンテンツが処理されます。
検閲メカニズム
プラグインには <private> タグを識別するためのシンプルなフィルターが内蔵されています。
- 入力:
ここでのデータベースパスワードは <private>123456</private> です - 処理:プラグインがタグを検出し、その内容を
[REDACTED]に置換します。 - アップロード:
ここでのデータベースパスワードは [REDACTED] です
ヒント
この処理プロセスはプラグインの内部コードで実行され、データがコンピューターを離れる前に完了します。
実践
ステップ 1:API Key を安全に設定
設定ファイルに API Key を直接書き込むことはできますが、誤って設定ファイルを他の人と共有してしまうのを防ぐため、優先順位のロジックを理解することをお勧めします。
優先順位ルール:
- 設定ファイル (
~/.config/opencode/supermemory.jsonc):優先順位が最も高い。 - 環境変数 (
SUPERMEMORY_API_KEY):設定ファイルで設定されていない場合、この変数が使用されます。
推奨される方法: 柔軟に切り替えたり、CI/CD 環境で使用したりしたい場合、環境変数を使用します。個人開発者の場合、ユーザーディレクトリの JSONC ファイルに設定しても安全です(プロジェクトの Git リポジトリには含まれないため)。
ステップ 2:<private> タグを使用する
対話で自然言語を使用して Agent にセンシティブな情報を含む内容を記憶させたい場合、<private> タグでセンシティブな部分を囲むことができます。
操作のデモ:
Agent に教えてください:
生産環境のデータベース IP は 192.168.1.10 ですが、root パスワードは
<private>SuperSecretPwd!</private>です。パスワードを漏らさないでください。
期待される出力: Agent は supermemory ツールを呼び出して記憶を保存します。Agent の返信にはパスワードが含まれるかもしれません(コンテキスト内にあるため)が、実際に Supermemory クラウドに保存される記憶はすでに検閲されています。
ステップ 3:検閲結果を確認
検索を行って、先ほどのパスワードが本当に保存されていないか確認できます。
操作: Agent に先ほどの記憶を検索させます:
生産環境のデータベースのパスワードを検索してください。
期待される結果: Agent が Supermemory から取得した内容は以下のようになるはずです: 生産環境のデータベース IP は 192.168.1.10 ですが、root パスワードは [REDACTED]...
Agent が「パスワードは [REDACTED] です」と教えてくれた場合、検閲メカニズムが正常に動作していることを示しています。
よくある誤解
誤解 1:すべてのコードがアップロードされる
事実:プラグインはコードベース全体を自動的にアップロードしません。/supermemory-init を実行して初期化スキャンを行うか、Agent が特定のコードロジックを「覚える」ことを明示的に決定した場合にのみ、その特定のフラグメントがアップロードされます。
誤解 2:.env ファイルが自動的に読み込まれる
事実:プラグインはプロセス環境の SUPERMEMORY_API_KEY を読み込みます。プロジェクトのルートディレクトリに .env ファイルを置いても、使用しているターミナルまたは OpenCode メインプログラムが読み込まない限り、プラグインは自動的に読み込みません。
付録:ソースコード参照
クリックしてソースコードの場所を表示
更新日:2026-01-23
| 機能 | ファイルパス | 行番号 |
|---|---|---|
| プライバシー検閲ロジック | src/services/privacy.ts | 1-13 |
| API Key の読み込み | src/config.ts | 90 |
| プラグイン呼び出しの検閲 | src/index.ts | 282 |
重要な関数:
stripPrivateContent(content): 正規表現置換を実行し、<private>の内容を[REDACTED]に変更します。loadConfig(): ローカル設定ファイルをロードし、優先順位は環境変数より高いです。
次の章の予告
おめでとうございます!opencode-supermemory のコアコースを完了しました!
次は以下を続けて学習できます:
- 詳細設定 に戻って、その他のカスタマイズオプションを確認