---
title: "エージェントメモリ"
description: "ユーザーとプロジェクトに関する永続的なエージェントメモリ。remember は読めるノートを書き、recall は予算を守り、search は重複を排除する。"
---

# エージェントメモリ

Notarium のエージェントメモリは、隠された魔法でも別個のデータベースでもありません。エージェントが観測から書き込む `agent-memory` クラスのごく普通のノートであり、あなたが読み、修正し、削除できるものです。エージェントは `remember_about_user` と `remember_about_project` を通じて事実を記録し、`recall` を通じてコンテキストを引き出します。肝心なのは、重複を生まないために **書き込む前に検索する** という規律です。

## 2つの軸: ユーザーについてとプロジェクトについて

メモリは2つの直交する軸の上に存在します。

- **ユーザーについて** — `remember_about_user` は、あなたに関する長期的な事実(好み、コンテキスト、現在の作業)を、あなたの個人ドメインのプライベートメモリに書き込みます。どのスペースで作業していても同じメモリであり、スペースごとに混ぜ込まれることはありません。
- **プロジェクトについて** — `remember_about_project` は、特定のプロジェクトに関するメモリをそのサブディレクトリに書き込みます。ユーザーについての書き込みと対称的ですが、プロジェクトに紐づいています。

どちらの軸も `agent-memory` クラスを使います。エージェントはクラスもフォルダもスペースも **選びません**。それらはすべてツール自身が強制します。`user-doc` としてプロジェクトツリーに置かれるべき共有知識は、「remember」ではなく別のツール [`create_note`](/docs/agents/intent-tools/) が書き込みます。

## 観測ごとではなくカテゴリごとに1ファイル

`remember_about_user(observation, category)` は、事実ごとにマイクロファイルを生むのではなく、観測をカテゴリのファイルに **追記** します。`category` はパスではなくラベル(「preferences」)です。新しいカテゴリは新しいファイルを意味します。オプションの `summary` は、派生プロフィールインデックスに供給されるカテゴリの1行ダイジェストです。

記録された単一の事実を修正または削除することは、ごく普通のノートを編集することにすぎません。メモリノートの id(`remember_*` が返す)を使い、`findReplace` モード(空の `content` はスニペットを削除します)、またはカテゴリ全体に対する `replace` モードで `edit_note` を呼びます。「観測による個別のアドレッシング」は存在しません。メモリは、どのノートとも同じ語ベースのモードで編集されます。

## recall ≠ search

どちらのツールも読み取りますが、解決する問題は異なります。

| | `search` | `recall` |
|---|---|---|
| 返すもの | `score` と `path` を持つランク付きスニペット | トークン予算内にまとまった一貫したコンテキストバンドル |
| 範囲 | 関連するノート | 関連するノート **に加えて** そのグラフ上の隣接ノート(グラフを `depth` ホップ) |
| メモリ | メモリを見る(重複排除のため) | 知識と個人メモリから引き出す |
| 呼ぶタイミング | 具体的なものを見つける、書き込む前に確認する | 作業対象のトピック周りのコンテキストを組み立てる |

`recall` はより豊かです。見つけたものの周囲のグラフを辿り、結果を `budgetTokens` 内に詰め込みます。一方 `maxPerSource` は、1つの大きなノートがバンドル全体を食い尽くすのを防ぎます。`search` は的確です。それこそが「書き込む前に検索する」を支える仕組みそのものです。

## 書き込む前に検索する

メモリはタイトルに基づく重複保護を持たない唯一のクラスです。そのため `search` は意図的に **エージェントのメモリもカバーします**。書き込む前に必ず検索してください。これにより知識とメモリの両方で重複が排除されます。

> [!tip] 重複排除の規律
> `remember_*` の前に、その事実のトピックで `search` を呼びます。カテゴリがすでに存在するなら、同義語を作るのではなく、同じ `remember_*`(追記します)で追記するか、`edit_note` で修正してください。

## オーナーに見えるもの

メモリは **通常のナビゲーションからは隠されています**(ツリー、フィード、通常の検索)が、あなたから隠されているわけではありません。エクスプローラーツリーの専用の **Memory** レンズを通して見えますし(ノートは他と同じように `/m/<id>` で開きます)、カテゴリは **Agents → Context** でミュートできます。[リビジョンログ](/docs/concepts/versioning/)のエントリは、エージェントが正確に何を記録したかを示します。これが、インジェクションが紛れ込ませたかもしれないものを捕まえる手立てです。メモリを再編成することはできません。このセクションはエージェントが所有します(フラットな集合と派生インデックス)が、動かすこと自体は技術的に安全です。同一性はノートの id に紐づいているためです。

## 次に

- [コンテキストセットとピン留め](/docs/agents/context-pins/) — メモリカテゴリをミュートする方法と、起動時に何が読み込まれるか。
- [検索監査](/docs/agents/audit/) — エージェントが `search`/`recall` を通じて何を検索し、見つけられたかどうか。
- [インテントツール](/docs/agents/intent-tools/) — ツールの完全なセット。
