Skip to main content

Memoryとは?

Memoryを使うと、Devinはあなたとの作業で学んだこと (あなたの好み、あなたが加えた修正、プロジェクトや環境に関する知見) を今後のセッションに活かせるようになります。Devinは作業中にこれらを自動で保存するため、手を止めて書き留める必要はありません。 Memoryは各組織内であなた個人に紐づくものであり、チームメイトや組織全体と共有されることはありません。

仕組み

Memories は memory drive (Markdown ノートを保存する永続的な Git リポジトリ) に保存されます。
  1. 読み込み。 各セッションはドライブの専用チェックアウトを取得し、MEMORY.md を前提情報として受け取ります。Devin は、タスクで必要になった場合にのみ他のノートを検索して読み込みます。
  2. 学習。 ユーザーが Devin の誤りを訂正したり、好みを伝えたり、Devin 自身が再利用できる知見を見つけたりすると、Devin は該当するノートを編集します。各項目は 1 行の箇条書きで、その知見を学習したセッションへのリンクが付きます。
  3. 保存。 Devin は編集をコミットし、他のセッションでの変更をマージしたうえで、その結果をドライブに保存します。変更内容は、セッション内の Updated memory カードで確認できます。並列セッションから同じドライブに書き込むことも可能です。古くなった書き込みは拒否されて再試行され、競合する編集は上書きされずに解決されます。
新しい Memories は、それを書き込んだセッション自体ではなく、以降のセッションに適用されます。

Devin が記憶する内容

自動化によって開始されたセッションでは、Memories の読み取りも書き込みも行われません。

Dreaming

Dreaming は、Devin を利用している間、1 日 1 回程度実行されるバックグラウンドのセッションです。最近のセッションを既存の Memories と照らし合わせて確認し、次の処理を行います。
  • 重複するノートを統合する
  • 一時的な詳細や、どのセッションでも使われていない滞留したノートを削除する
  • 元の作業中に記録されなかった有用な教訓を追加する
  • 適切な前提情報を見つけやすくなるよう、ノートと MEMORY.md インデックスを整理し直す
ソースへのリンクや明示的に指定された設定は保持されます。初回の Dreaming では、最近のセッションをもとに Memories の初期データが作成されます。

Memoriesの閲覧と管理

Customize → Memories を開くと、Memoriesファイルを閲覧できるほか、最近のDreamingセッションと、各セッションでの変更内容を確認できます。
  • Memoriesの変更・削除: Memoriesファイルはアプリ上では読み取り専用です。変更や削除はセッション内でDevinに依頼してください。たとえば「npmが好みだということは忘れて」「ステージング環境へのデプロイには承認が必要だと覚えておいて」のように伝えます。
  • Memoriesをオフにする: Memoriesタブで ⋯ メニューを開き、Turn off personal Memories を選択します。DevinはMemoriesの読み書きを停止します。既存のメモは保持されるため、再度オンにすれば引き続き利用できます。

管理者向け設定

Memory はデフォルトで有効です。管理者は次の 2 つのレベルでこの設定を変更できます。 Always on または Always off を選択した場合、組織のスイッチはロックされます。Memory が有効な場合でも、各メンバーは自分の Memories をオフにすることができます。 組織で Memory が無効になっている場合、Devin はその組織のセッションで Memories の読み書きを行いません。また、Dreamingは実行されず、Memory タブも非表示になります。既存のノートは削除されません。

Memories とスキルの違い

両者は組み合わせて使います。スキルが手順を与え、Memories がその手順をあなたの作業に適用するための前提情報を補います。

オープンスタンダード

Devin のMemoriesは Agent Memory Repo を基盤としています。Agent Memory Repo は、エージェントのMemoriesを Git リポジトリとして扱うオープンな仕様です。MEMORY.md をエントリポイントとし、[source: …; added: …] メタデータ付きの1行単位の項目と、ファイル間をつなぐ [[path]] リンクで構成されます。独自のエージェントでも同じ形式を利用できます。

動画による解説

Devin に好みを教え、Customize → Memory でそれを確認し、新しいセッションで適用される様子をご覧ください