KAIROS とは——Claude Code の常駐型エージェント・モードを解説

KAIROS とは——Claude Code の常駐型エージェント・モードを解説

KAIROS:Claude Code の常駐型エージェント・モード

やさしいAI研究所の植木です。弊所では、単なる対話型AIを超えて、「自律的に動くAIパートナー」の研究開発を行っています。 Claude Codeの流出したソースコードが非常に勉強になっているので、その中の「KAIROS」についてまとめました。

KAIROS とは

KAIROS は Claude Code の アシスタントモード(Assistant Mode) の内部コードネームです。 通常の「一問一答型」セッションではなく、長期稼働・永続セッションとして動作するモードです。 通常の Claude Code が「呼ばれたら答えるツール」なのに対し、KAIROS は 「常に稼働していて、自分から動き・通知し・記憶を積み上げていく常駐エージェント」 として使うことを想定されています。

特徴1: 席を外している間も作業が進む

通常モードはユーザーが都度プロンプトを入力する必要がありますが、KAIROS では Cronスケジューリングにより、指定した時刻や間隔で自律的にタスクを実行できます。 例えば「毎朝9時にPRを確認してサマリーを送る」といった運用が可能です。長時間タスクが完了したときや問題が発生したときに能動的に作業完了の通知を受け取れます(プッシュ通知も対応)。

特徴2: 外部チャンネルから直接指示できる

Slack、Discord、SMS などの MCP サーバー経由でメッセージをセッションに注入できます。 Claude Code を起動したまま、チャットツールから指示を出してリプライを受け取るような使い方ができます。

特徴3: GitHub PR の変化を自動検知して対応できる

SubscribePRTool(KAIROS_GITHUB_WEBHOOKS)により、PRのイベント(レビューコメント、CI 失敗など)を受信して自動応答・自動修正するワークフローが構築できます。

特徴4: セッションが永続するので文脈が途切れない

通常セッションはプロセスを終了すると履歴が消えますが、KAIROS では bridge が perpetual = true で動作し、再起動後も同じセッションを再開できます。

特徴5: 長期記憶が自動で蓄積される

Daily Log に作業内容・ユーザーの嗜好・プロジェクトの文脈を追記し続け、夜間のAuto Dreamが MEMORY.md に蒸留します。 「先週話したあの件」を毎回説明し直す必要がなくなります。

弊所としては「長期記憶」の部分をもう少し掘り下げていきます。「長期記憶」は、AI(エージェント)が過去の対話内容、ユーザーの好み、プロジェクトの文脈などを一時的なセッション(会話)の枠を超えて保持し、将来の動作に反映させる仕組みです。特に Claude Code の KAIROSにおける長期記憶は、単なる「ログの保存」ではなく、「情報の整理と蒸留(エッセンスの抽出)」に重きを置いて設計されていそうです。Daily Log は「書く負荷を小さく(追記だけ)、整理は非同期でまとめてやる」という設計で、長期稼働するアシスタントが MEMORY.md を書き換え続けることで生じる競合やキャッシュ破壊を避けるための仕組みです。Auto Dreamは、溜まった Daily Log を整理し、真に重要な情報を MEMORY.md へ統合する「睡眠中の脳」のような非同期処理になっています。

分類Claude Code での役割内容
短期記憶コンテキストウィンドウ現在進行中の会話の内容。ブラウザを閉じたりプロセスを終了すると消える。
中期記憶Daily Logその日の出来事や修正指示を「とりあえず書き留めた」備忘録。
長期記憶MEMORY.md重要な習慣、ルール、プロジェクトの根幹情報を「定着」させたもの。

Daily Log とは

KAIROS専用の追記型メモリ記録方式です。日付別ログファイルになっています。 通常の Claude Code が MEMORY.md をリアルタイムで読み書きするのに対し、アシスタントモードではセッションが長期間継続するため、別の設計が採用されています。

Claude に対して指示される書き込みルール

システムプロンプトでモデルに以下が指示されます(src/memdir/memdir.ts):

  • 今日のログファイルに追記のみする(書き直し・再編成は禁止)
  • エントリは短いタイムスタンプ付きの箇条書きで書く
  • ファイルが存在しない場合は新規作成する(親ディレクトリごと)
  • 日付が変わったら新しい日付のファイルに切り替える

ログに記録すべき内容

  • ユーザーの修正・好み(“npm ではなく bun を使って” など)
  • ユーザーの役割・目標に関する事実
  • コードから導出できないプロジェクト文脈(締め切り・障害・意思決定の理由)
  • 外部システムへのポインタ(Grafana、Linear など)
  • ユーザーが明示的に記憶を求めたこと

Auto Dream とは

ログが溜まると、別プロセスとして /dream スキルが起動し、ログを MEMORY.md に蒸留します。

起動条件(src/services/autoDream/autoDream.ts)

  1. 時間ゲート: 前回の蒸留から >= 24時間(minHours)
  2. セッションゲート: 前回以降に更新されたセッションが >= 5件(minSessions)
  3. ロック: 他プロセスが蒸留中でないこと

Auto Dreamの 4 フェーズ

実行されると、以下を順番に実行します(src/services/autoDream/consolidationPrompt.ts):

  1. Orient: logs・既存トピックファイル・MEMORY.md を俯瞰する
  2. Gather recent signal: 日次ログを主なソースとして新しい情報を収集(トランスクリプトは最終手段)
  3. Consolidate: 新しい情報を既存トピックファイルにマージ、矛盾を解消、相対日付を絶対日付に変換
  4. Prune and index: MEMORY.md を 200 行・25KB 以内に保つよう刈り込み・整理

まとめ

Claude CodeのAuto Dreamは、単なるタスク処理の履歴ではなく、ユーザーの「価値観」や「意思決定の癖」を MEMORY.md に蓄積していくことになります。AIは単なるツールから、ユーザーの意図を先回りして汲み取る「理解者(パートナー)」へと進化していきます。