0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeのソースコード流出で判明した「KAIROS」— セッションを跨いだ記憶の仕組み

0
Posted at

はじめに

Claude Code を使っている人は、たぶんみんな同じ問題に突き当たっています。セッションが終わると、Claude は何もかも忘れます。前回何を話したか、このプロジェクトがどういう構造か、自分の好みの作業スタイルは何か。次にセッションを開いたとき、そこにいるのは「初めまして」の Claude です。

自分はそれを解決するために、このリポジトリに current.md というファイルを作って毎回手動で引き継ぎをしています。「前回ここまで進めた」「次はこれをやる」「このプロジェクトはこういう構造」——そういう情報を Markdown に書いておいて、セッション開始時に Claude に読み込ませる。要するに人間が記憶の肩代わりをしている状態です。

3月末に流出した Claude Code のソースコードを読んで、Anthropic がこの問題を製品レイヤーで解こうとしていることを知りました。その機能が KAIROS です。


流出の経緯

2026年3月31日、Anthropic は npm への通常アップデートの際に誤って Claude Code の完全なソースコードを公開してしまいます。デバッグ用のファイルがパッケージングの工程で混入し、約50万行・1900ファイルが一時的にだれでもダウンロードできる状態になりました。

Anthropic の公式コメントは「ヒューマンエラーによるパッケージングミス、セキュリティ侵害ではない」というもの。確かにシステム的な脆弱性ではないのですが、未公開機能のコードやロードマップが入っていたため、「事故」としてはなかなかのダメージだったと思います。

今回取り上げる KAIROS もそのひとつです。


KAIROS とは何か

KAIROS という名前はギリシャ語の「καιρός(カイロス)」から来ています。「クロノス」が時間の流れそのものを指すのに対して、「カイロス」は"絶好のタイミング・好機"を意味します。Anthropic がこの名前をつけた意図はわかりませんが、「適切なタイミングで適切な記憶を引き出す」というニュアンスはあるのかもしれない。

かなりざっくり言うと、**KAIROS は「Claude Code をパソコンを閉じても記憶が消えない常駐エージェントにする機能」**です。現在の Claude Code はセッションを閉じると何も残りません。KAIROS はそれを変えます。

ただし、今現在は「完全に実装されているが、まだリリースされていない」状態です。コードは存在しますが、フィーチャーフラグで無効化されています。


記憶の保存場所

技術的な実装の話をします。ここが面白いところです。

KAIROS の記憶は、こういうパスに保存されます。

~/.claude/projects/<project-slug>/memory/logs/YYYY/MM/YYYY-MM-DD.md

追記専用(append-only)の Markdown ファイルを日付ごとに作るという設計です。Claude 自身がこのファイルを書き込むことはできますが、削除や上書きはできません。監査ログに近い思想で、「何を観察したか」の記録が永続的に積み上がっていく構造になっています。

保存されるのは以下のようなものです。

  • このプロジェクトの構造の観察(「このファイルはこういう役割を持っている」)
  • ユーザーの作業パターン(「このユーザーはこの手順でコミットする」「よく使うコマンドはこれ」)
  • プロジェクト固有の文脈(「このリポジトリにはこういうルールがある」)

毎日の区切り処理(日付が変わるタイミングのログのフラッシュ)も実装されていて、次にセッションを開いたとき、Claude はこのログを自動でロードした状態でスタートします。


autoDream: Claude が「夢を見る」

これは流出コードで一番面白かった部分です。

services/autoDream/ というディレクトリに、アイドル時間中に記憶を整理・圧縮するシステムが実装されていました。名前の通り、Claude が「夢を見る」ように記憶を再構成するプロセスです。

動作は3フェーズに分かれています。

  1. Orient(状況把握): メモリディレクトリを確認し、インデックスを読み込み、既存のトピックファイルをスキャンする
  2. Gather(収集): 最新のデイリーログを確認し、古い記憶との差分を見つけ、重要なトランスクリプトを grep で拾う
  3. Consolidate(統合): メモリを書き込み・更新する

「最近この開発者はテストを書くようになった、以前の観察を更新する」みたいな処理を、コンピューターがアイドル状態のときに勝手にやるわけです。

ただ、一点重要な設計判断があります。Claude は自分の記憶を「ヒント」として扱うよう指示されています。「以前こう観察した」は参考情報であって、実際のコードベースを確認せずに行動の根拠にしてはいけない、というルールです。記憶が古くなっていたり間違っていたりする可能性を前提にした設計で、これはなかなか真っ当だと思います。


current.md でやってきたこととの対比

自分が毎セッション手動でやっていることと、KAIROS が自動でやろうとしていることは、本質的に同じです。

自分がやってきたこと KAIROS(予定)
保存場所 プロジェクト内の current.md ~/.claude/ 配下(ユーザーホーム)
更新タイミング 手動(Claude が書く、指示した場合のみ) 自動(Claude が観察して書く)
対象 決定事項・TODO・次にやること コードベースの理解・作業パターン
セッション開始時 current.md を手動で読み込む ログを自動ロード

一番の違いは「自動か手動か」です。current.md は Claude に更新を指示しなければ何も残りません。KAIROS は Claude が自分で観察・記録します。

自分でこの仕組みを作ってみて改めて思うのは、「毎回忘れる」という問題が Claude の知能の問題ではなく、アーキテクチャの制約だったということです。Transformer 系のモデルはコンテキストウィンドウの外を参照できない。それだけの話で、外部ストレージと組み合わせればセッションを跨いだ継続性は実現できる。KAIROS はその「外部ストレージ部分」をフレームワークとして整備したものです。


マルチエージェント協調との組み合わせ

流出コードにはもう一つ面白い方向性が含まれていました。複数の Claude インスタンスが同じメモリを共有して協調するアーキテクチャです。

Agent A が観察したことを KAIROS に書き込み、Agent B がそれを読んで作業を引き継ぐ。人間でいえば「引き継ぎドキュメント」を自動生成して自動で読む仕組みです。

n8n や AutoGen がワークフローを「外側から設計するもの」として提供してきたのに対して、これは Claude Code が「内側から標準搭載する」方向の機能です。ここは競合関係として見ておく価値があります。


まとめ

KAIROS はまだリリースされていません。いつ出てくるかもわかりません。

ただ、「セッションを跨いだ記憶をどう扱うか」という問題に対して、Anthropic がどういうアプローチを取ろうとしているか、その設計思想はソースコードから読めました。append-only ログ・autoDream による定期圧縮・記憶は「ヒント」として扱うという3点は、現時点でも参考になる設計だと思います。

current.md みたいな手動引き継ぎの仕組みを自分で作った人には、KAIROS の設計は「そうそう、こういうものが欲しかった」という感じで読めるはずです。今は手作業でやっていることが、将来は標準機能になる。たぶんそういう話です。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?