スコープノート。 Cryptohopper MCP はステートレス設計です — 各ツール呼び出しは独立しており、サーバーはリクエスト間に何も永続化しません。メモリはクライアントサイドまたはあなたが管理するストレージに存在します。このガイドはそのレイヤーについてです。
前提条件
動作する Cryptohopper MCP 接続を持つ MCP クライアント。 セットアップ概要 を参照してください。
データを保存する場所。ローカルファイル、SQLite データベース、クラウドに保存された JSON ブロブ、または Notion のようなツールが考えられます。開始にあたりインフラストラクチャは不要です。
「メモリ」とは何か
3つのレイヤーがあり、それぞれ異なる理由で役立ちます。
レイヤー | 例 | 一般的な場所 |
セッションメモリ | 1回の会話の中で、モデルが以前にあなたが言ったことを覚えている | モデルのコンテキストウィンドウ(組み込み) |
クロスランメモリ | 今日のエージェント実行が、先週の実行が観測したことを覚えている | ファイル、データベース、Notion など |
ユーザープロファイル | エージェントがあなたのウォッチリスト、好みの取引所、リスク選好度を知っている | クロスランと同じ。セッション開始時にロードされる |
セッションメモリは無料かつ自動です。クロスランメモリとユーザープロファイルメモリは、ストレージの設定が必要です。
セットアップ — ユーザープロファイル
暗号通貨ユーザーとしてのあなた自身を説明する短い Markdown ファイルを作成します。1ページ未満に収めるようにしてください。
ユーザーについて
主に Binance で取引する。
ウォッチリスト: BTC, ETH, SOL, AVAX, ARB, OP, LINK, AAVE, UNI。
現物保有; Cryptohopper を介して SOL と AVAX でグリッドボットを実行する。
アップサイドの機会を逃すより、ドローダウンリスクを重視する。
パーペチュアル取引はしない。
デフォルト
取引所: Binance
基軸通貨: USDT
テクニカル分析 timeframe: 4h (200 bars)
リスク許容度: moderate
プロンプトの好み
形容詞よりも具体的な数値を好む。
投機は投機としてフラグを立てる。
ティッカーが曖昧な場合は、推測するのではなく質問する。各エージェント会話の開始時にロードします。2つのアプローチがあります。
手動ペースト: 各セッションで最初にファイルの内容を貼り付けます。
クライアント統合: クライアントの永続メモリ機能(Claude デスクトップの Projects、Cursor のルール、Zed のコンテキスト)を使用して自動挿入します。
ファイルを小さく保ちます。約 300 行を超えるものは、モデルがスキップしてしまうノイズになります。重要なのは制約であり、自伝ではありません。
バージョン管理します。ウォッチリストや好みが変わったら、変更を Git(または Notion の履歴)にコミットします。エージェントの動作はプロファイルによって変化するため、その理由を確認したくなります。
セットアップ — クロスランメモリ(シンプル)
最もシンプルなクロスランメモリは、エージェントが開始時に読み込み、終了時に追記する単一の Markdown ファイルです。
memory.md をスケルトンで作成します。
エージェントメモリ 最近の観測(各実行後にここにエントリを追記します。) 注意すべき未解決の項目(将来の注意のためにエージェントがフラグを立てたもの。) 過去の決定(注目すべき決定とその理由。)
各エージェント実行の開始時に、ファイルの内容を挿入します。
[AGENT MEMORY] {memory.md の内容} [TASK] 今日のタスク: 日次ダイジェストを実行する。各実行の終了時に、新しい観測を追記します。それらを明示的に生成するようにエージェントに依頼します。
タスク完了後、次回のために覚えておく価値のある注目すべき点を要約した 2~4 行を記述してください。この形式を使用します: [YYYY-MM-DD] {観測} 例: [2026-05-27] SOL の出来高が 3 日連続で増加; roughly 83-87 の範囲で推移。 [2026-05-27] ウォッチリスト: LINK は静かだが 7 日後にチェックする価値があるとフラグを立てた。 これらの内容は手動で memory.md に追記します。定期的にレビューして、間引きします。週に一度程度、`memory.md` をトリミングします — 古いエントリを削除し、パターンを統合します。管理されていないメモリファイルは無制限に成長し、ノイズになります。
セットアップ — クロスランメモリ(構造化)
クエリ可能な履歴から恩恵を受けるエージェントの場合、小さな SQLite データベースがうまく機能します。スキーマの提案:
sql
CREATE TABLE observations (
id INTEGER PRIMARY KEY,
run_at TEXT NOT NULL, -- ISO-8601
agent_name TEXT NOT NULL, -- 例: "daily-digest"
category TEXT, -- 例: "volume-spike", "trend-change"
token TEXT, -- 例: "SOL"
content TEXT NOT NULL, -- 観測テキスト
metadata JSON -- 構造化されたフィールドがあれば
);
CREATE INDEX idx_run_at ON observations(run_at);
CREATE INDEX idx_agent_token ON observations(agent_name, token);
これにより、「過去14日間で SOL についてどのような観測を行いましたか?」といったクエリを実行し、その回答を今日の実行のコンテキストとしてエージェントにフィードすることができます。
エージェントは、小さな Python ヘルパーを介してこのテーブルに書き込みます。
python
def log_observation(agent_name: str, category: str,
token: str, content: str) -> None:
conn.execute(
"INSERT INTO observations (run_at, agent_name, category, token, content) "
"VALUES (?, ?, ?, ?, ?)",
(datetime.utcnow().isoformat(), agent_name, category, token, content),
)
conn.commit()
これは控えめに使用してください。構造化されたメモリは、実際にクエリする場合にのみ設定する価値があります。シンプルなダイジェストの場合は、Markdown ファイルで十分なことが多いです。
記憶すべきこと、記憶すべきでないこと
記憶に適した候補:
「SOL は 5 日間、83~87 のバンドで横ばいのトレンドを続けている」— 日足だけでは明日の実行時に表示されない範囲のコンテキスト。
「昨日 LINK で出来高の異常をフラグ付けしました。今日フォローアップしてください。」
「ユーザーが 2026-05-20 に AVAX のグリッドボットについて質問しました。パラメータは X, Y, Z でした。」
記憶に適さない候補:
生の市場データ。これは変更されるため、古いキャッシュを信頼するよりも MCP から再プルしてください。
会話の全トランスクリプト。信号対ノイズ比が低すぎます。
すべての実行の自動要約。キュレーションなしでは、これらはほとんど役に立たなくなります。
良いテスト:*「このメモリ エントリを削除した場合、来週のエージェントの動作は悪化しますか?」* いいえなら、削除してください。
トラブルシューティング
エージェントが現在のデータと矛盾するメモリを引用する。
これはキャッシュされたコンテキストの根本的なリスクです。エージェントは SOL が上昇トレンドにあったことを「覚えている」が、その後反転した。修正:エージェントに、メモリの主張を事実として使用する前に、常に現在の MCP データに対して検証するように指示します。*「メモリ エントリに頼る前に、現在のデータをチェックし、メモリが古い場合はフラグを立ててください。」*
メモリ ファイルが管理不能なほど大きくなる。
間引きせずに追記しています。ハードルールを設定します。週に一度、前週のエントリを確認し、削除/マージします。または、メモリ ファイルを月ごとにローテーションします(memory-2026-04.md、memory-2026-05.md)。
エージェントがメモリ ブロックを無視する。
プロンプトがエージェントにそれを使用するように要求していません。明示的に指示します。*「回答する前に上記のメモリ ブロックを確認してください。関連する場合は特定の項目を参照してください。エントリが新しいデータと矛盾する場合は、それを明確にフラグ立ててください。」*
メモリが自信に満ちているが間違った回答をもたらす。
エージェントがメモリを公式情報として扱っています。メモリを真実ではなくヒントとして framing します。*「メモリには過去の観測が含まれています。事実ではなくコンテキストとして扱ってください。常に現在のデータに対して検証してください。」*
エージェントに介入なしでメモリを更新させたい。
可能ですがリスクがあります — 監視されていない追記専用メモリは、良いエントリと同じ速さで悪いエントリを蓄積します。自動化する場合は、必ず週次レビュー手順とペアにします。メモリが1か月間読み取られずに成長するのを絶対に許さないでください。
マルチエージェントのメモリが混乱する。
複数のエージェントが単一のメモリ ファイルを共有する場合、`agent_name` フィールドを使用してエントリを名前空間分離します。各エージェントは自身の項目のみを読み取るか、ファイル全体を読み取りますが、どのエージェントがどの行を書き込んだかを知っています。
ユーザー プロファイル ファイルが古くなる。 好みは変わります。エージェントがもはや使用していないタイムフレームや取引所にデフォルト設定されていることに気付いた場合は、プロンプトごとのオーバーライドで回避するのではなく、プロファイルを更新してください。
