10月5日、Devin.aiが「Memory and dreaming: how Devin learns from working with you」と題した記事を公開した。AIコーディングエージェント「Devin」が、人間が眠っている間に記憶を整理・定着させるように、毎日バックグラウンドで作業ログを咀嚼し直す「Dreaming(夢)」という仕組みを導入した。これにより、セッションをまたいでユーザーの好みや設定を永続的に保持できるようになった。
「作業中に得た知識」をどう持続させるか
AIコーディングエージェントが抱える根本的な課題のひとつが、セッションをまたいだ記憶の欠如だ。ユーザーが「このプロジェクトではnpmじゃなくbunを使う」と一度説明しても、次のセッションでは白紙に戻る。その都度コンテキストを与え直す手間は、実際の開発フローでは無視できない摩擦になる。
この問題はDevinに限らず、GitHub CopilotやCursorといった主要AIコーディングツール全般が直面してきた構造的な制約でもある。各セッションが独立したコンテキストで動作する設計は、ステートレスなAPIとの相性が良い反面、「育てる」体験とは相性が悪い。
Devinが今回導入したMemoryとDreamingは、この問題に正面から取り組む仕組みだ。Devinはもともと自律的なタスク実行を売りとするAIソフトウェアエンジニアとして登場したが、長期記憶の欠如は「任せっきり」にする上での障壁だった。
Memoryの実装:Gitリポジトリとして管理されるノート群
Memoryの実体は、個人ごとに割り当てられた永続的なGitリポジトリ(Memory Drive)である。中身はマークダウンファイルの集合で、リポジトリ・プロジェクト・トピックごとに整理される。ルートにはMEMORY.mdが置かれ、ここに一般的な設定と他ファイルへのインデックスが記述される。
セッション開始時、DevinはMEMORY.mdだけをコンテキストとして受け取る。追加情報が必要な場合は、コードを読むときと同じツールを使って関連ノートを検索・参照する。プロンプトにメモリ全体を突っ込まない設計は、コンテキスト長の節約と精度の両立を狙ったものだ。
並列セッションへの対応も考慮されている。各セッションはMemory DriveをGitチェックアウトした独自コピーで動作し、ノート編集後にコミット・マージを行う。別セッションが先に書き込んでいた場合はリビジョンチェックで弾かれ、最新版に対してリトライする。競合する編集はサイレントに上書きされず、解決のために表面化される。
メモリは組織共有の指示(Skills)ではなく、ユーザー個人に紐付く。あるユーザーが教えた設定が他メンバーに波及することはない。
Dreaming:毎日の非同期バックグラウンド処理
「夢を見る」という比喩は、人間の睡眠中に海馬が短期記憶を整理・長期記憶へ転送するプロセスにならったものだ。セッション中に書き溜められたノートは、時間が経つと重複したり古くなったりする。Dreamingはこれを整理する日次バックグラウンドセッションで、ユーザーが作業していない時間帯に自律的に実行される。
記事内のデモシナリオでは、1週間分のノートとして「bunを使う(npmではない)」「スキーマ変更は独立したPRで先に出す」「APIの変更はUIより先にリリースする」といった項目が蓄積した状態が示されている。Dreamingはこれらを処理し、次のセッションで関連コンテキストをすばやく参照できる状態に再構築する。具体的には以下の処理が行われる:
- 重複するノートの統合(同じ設定が複数のセッションで記録された場合にまとめる)
- 揮発性情報の削除(「今日の午後、devサーバーはポート3001だった」のような一時的な記録)
- 元の作業中に捉えられなかった教訓の発見(ログを再解釈し、暗黙の知識を明示化する)
- 未参照ノートの削除(どのセッションからも使われなかった情報を刈り込む)
単なるログの保存にとどまらず、情報の「質」を能動的に高める処理として位置づけられている点が特徴だ。短期記憶から長期記憶への転送という人間の睡眠モデルを、エージェントの設計に応用した試みといえる。
SkillsとMemoryの違い
DevinにはすでにSkillsという、再利用可能なワークフローを記述する仕組みがある。リリース手順や特定の操作ステップを記述するのがSkillsの役割だ。
MemoryはSkillsとは異なる軸で機能する。
| Skills | Memory | |
|---|---|---|
| 内容 | 手順・ワークフロー | 作業を通じて得た知識・設定 |
| ライフサイクル | 意図的にパッケージ化・再利用 | セッション経由で蓄積、Dreamingで更新 |
| スコープ | 組織共有 | ユーザー個人 |
両者は補完関係にある。Skillsが「どうやるか」を定義し、Memoryが「このプロジェクトでどう適用するか」の文脈を供給する。
オープンソース化されたメモリ規格
Devin.aiは今回、Devinのメモリシステム構築に使ったスタンダードをオープンソースとして公開した。自前のエージェントに組み込んだり、コントリビューションが可能だ。
元記事ではリポジトリURLが案内されているが、執筆時点で当該URLの正確な表記を確認できなかったため、詳細は元記事を参照されたい。自分のエージェントに長期記憶を持たせたい開発者にとっては、実装の参考になる。
メモリの確認と管理はdevin.aiのCustomize → Memoryから行える。
詳細はMemory and dreaming: how Devin learns from working with youを参照していただきたい。