6月19日、MarkTechPostが「Perplexity Launches Brain, a Self-Improving Memory System That Builds a Context Graph of an Agent's Work and Learns Overnight」と題した記事を公開した。AIエージェントは「ユーザーの好みを覚える」ものだという常識を、Perplexityは真正面から覆そうとしている。新機能「Brain」が学習するのはユーザーではなく、エージェント自身がやらかした失敗と、そこから受けた修正だ。
※本記事で言及される「Perplexity Computer」とは、Perplexityが提供するAIエージェント製品のこと。PCやブラウザ上での作業をエージェントが代行する製品カテゴリで、BrainはこのComputerに搭載されるメモリ基盤として発表された。詳細はPerplexity Computer公式ページを参照されたい。
「ユーザーを覚える」から「仕事を覚える」へ
多くのAIメモリシステムは、ユーザーの好みや作業スタイル、連絡先といった「ユーザープロファイル」を蓄積する。Brainはその逆を向いている。エージェントが何をしたか、何が成功し、何が失敗したか、どんな修正を受けたか——これらを記憶することを目的としている。
Perplexityはこれを「メモリの2つの軸」として整理している。
| 軸 | 従来のユーザーメモリ | Brain(作業メモリ) |
|---|---|---|
| 何を覚えるか | ユーザーの好み・スタイル・連絡先 | エージェントの行動・成功・失敗・修正 |
| 何のためか | エンゲージメントの向上 | エージェントのパフォーマンス向上 |
| 何を生み出すか | ユーザープロファイル | 追跡可能なコンテキストグラフ |
この設計思想の転換が、Brainの核心だ。なお、他社でも類似するエージェントメモリへの取り組みは進んでおり、たとえばOpenAIのMemory機能やMem0といったOSSフレームワークが知られている。Brainが差別化を図るのは、ユーザー側ではなくエージェントの行動履歴に特化している点だ。
コンテキストグラフの仕組み
BrainはLLMウィキ(LLM wiki)の形でコンテキスト層を構成する。
※「LLMウィキ」とは、LLM(大規模言語モデル)が直接参照・更新できる構造化されたWiki形式の知識ベースのこと。通常のベクトルDB検索と異なり、ページ単位でコンテキストをまとめて保持するため、エージェントがプロンプトに取り込む際の可読性と精度が高まるとされる。エージェントに「読ませる」ことを前提に設計されているため、自然言語での記述が主体となり、コード補完やタスク推論と親和性が高い。
このウィキはエージェントのサンドボックスに自動でロードされ、ユーザーの世界に登場するアイデア・人物・プロジェクト・その他の要素をページとして保持する。
ウィキは毎晩(overnight)インクリメンタルに更新される。更新時には、ユーザーのセッション履歴、コネクタの結果、ソースドキュメントの変更、ユーザーが行った修正を統合して再合成する。各メモリエントリは元のセッション・ファイル・ソースへのリンクを保持しており、トレーサビリティが確保されている。デバッグや監査にも使える設計だ。
自己改善ループとパフォーマンス数値
Brainの改善ループは単純だ。使えば使うほど精度が上がる。エージェントは良い出力につながったプロジェクトやコネクタを学習し、同時にユーザーに修正を受けた箇所や行き詰まったソースも記憶する。これにより、次回同じタスクを実行する際はターン数とモデル呼び出し数が減る。
PerplexityはBrainの初期テスト結果として以下の数値を公開している(自社測定による初期値であり、独立した外部ベンチマークは現時点で存在しない点に留意されたい)。
| 指標 | 変化 | 条件 |
|---|---|---|
| 回答の正確さ | +25% | 過去に実行したタスク |
| 想起率(Recall) | +16% | 同条件の初期結果 |
| コスト | −13% | 履歴コンテキストが必要なタスク |
タイトルや冒頭の印象が強い数値だけに、これらがPerplexity自身による測定であることは重ねて強調しておく。外部ベンチマークによる検証を経た数値ではないため、参考値として読むのが適切だ。
実装パターンの概念モデル
PerplexityはBrainのAPIを公開していないが、元記事はそのループを模したPythonコードを掲載している。Perplexity本体のコードではなく、あくまでコンセプトを示す参考実装だ。
# Illustrative, self-contained model of Brain's loop — NOT Perplexity's API.
class ContextGraph:
def __init__(self):
self.entries = [] # every logged item keeps a source link
self.lessons = {} # task -> reusable lesson learned overnight
self.pending = [] # corrections waiting for the next sync
def retrieve(self, task):
return self.lessons.get(task)
def log(self, task, result, source):
self.entries.append((task, result, source))
def log_correction(self, task, fix, source):
self.entries.append((task, "correction", source))
self.pending.append((task, fix))
def synthesize(self): # the overnight step
for task, fix in self.pending:
self.lessons[task] = fix
self.pending = []
def agent_execute(task, lesson):
return "correct" if lesson else "needs review"
brain = ContextGraph()
lesson = brain.retrieve("debug repo")
print("day 1:", agent_execute("debug repo", lesson)) # needs review
brain.log_correction("debug repo", "ignore cached build", source="file:notes.md")
brain.synthesize()
lesson = brain.retrieve("debug repo")
print("day 2:", agent_execute("debug repo", lesson)) # correct
ポイントは synthesize() メソッドだ。ここで「一晩かけて自己改善する」ステップが実行される。ユーザーからの修正を pending に積み、synthesize でまとめて lessons に昇格させる構造になっている。
残る課題
現時点での制約と未解決の問いも整理しておく。
- 対象ユーザーが限定的:現在はMax・Enterprise MaxサブスクライバーへのResearch Previewのみ
- 更新はリアルタイムではない:改善は夜間バッチで届く。即時反映ではない
- 数値の独立検証がない:Perplexity自身によるテスト結果のみ
- データガバナンス:作業履歴をコンテキストグラフとして永続化することには、データ管理上の問いが伴う
詳細はPerplexity Launches Brain, a Self-Improving Memory System That Builds a Context Graph of an Agent's Work and Learns Overnightを参照していただきたい。




