SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

コーディングエージェントの動作原理を学ぼう!

CursorとClaude Codeで記憶の仕方が違う?コーディングエージェントのメモリー管理を解説!

各エージェントに見る「記憶の置き方」

 それではプレーンファイル戦略とはどのようなものなのでしょうか。この戦略を採用する代表的なコーディングエージェントであるCline、Claude Code、Kiroの実装例を具体的に見ていきましょう。

Cline

 Clineでは「長期記憶」を保持するため、「Memory Bank」という仕組みが推奨されています。Memory Bankは、ローカルディレクトリ./memory-bank/に配置されるMarkdownファイル群と、それらの扱い方を定義する./clinerules/配下のルールファイル群から構成されます。

 ./memory-bank/配下の基本的な構成例は以下の通りです。

bash
your-project/
└─ memory-bank/
   ├─ projectbrief.md     # 1. 概要・全体像・ゴール
   ├─ productContext.md   # 2. ビジネス価値・UX
   ├─ systemPatterns.md   # 3. アーキテクチャと意思決定
   ├─ techContext.md      # 4. 技術スタックと制約
   ├─ activeContext.md    # 5. いま取り組んでいる作業
   └─ progress.md         # 6. 進捗・既知の課題

 これらのファイルに対し、Clineが自動で編集や更新を試みます。実行タイミングは、プロンプト内で「新たなパターンの発見」「大きな変更の実施後」「文脈を明確にする必要がある場合」と定義されていますが、ユーザーが明示的に指示すれば任意のタイミングでの更新も可能です。

 また、Memory Bankは単なるプレーンファイルで構成されているため、ユーザーが直接編集することもできます。そのため、何を覚えさせるか、何を忘れさせるかをユーザーが完全にコントロールできる点も特徴です。

 ここまで見てきた通り、Memory Bank戦略はいわゆるプロンプトエンジニアリングであり、構成を柔軟に調整できます。例えば、現在の作業内容を扱う「activeContext.md」と、進捗や課題を扱う「progress.md」を一本化してシンプルなファイル管理を選ぶこともできます。逆に、より詳細に構造化するアプローチもあり、Cline Recursive Chain-of-Thought System (CRCT)と呼ばれる大規模向けの戦略が、GitHubで公開されています。

Claude Code

 Claude Codeの戦略はシンプルで、単一の「CLAUDE.md」に進捗や方針を記録します。Claude Codeはこのファイルを自動で検出し、対話時に参照することで、どのセッションでも常に一貫した生成結果を得られます。

 この戦略の特徴は、「CLAUDE.md」を配置する階層によってスコープが異なることです。

 最も一般的なのは、リポジトリ直下に./CLAUDE.mdを配置してプロジェクトごとのメモリとして使う方法です。プロジェクト固有のアーキテクチャやコーディング標準、共通の開発ワークフローなどが、バージョン管理システムを通じて同期され、チーム全員が同じ基準で開発できます。

 プロジェクトとは別に、個人設定を適用させたい場合は、別途ホームディレクトリ(~/.claude/CLAUDE.md)に置くことで、個人用の設定を反映させられます。

 さらに、組織全体に共通する規約やポリシーを適用したい場合は、WindowsならC:\ProgramData\ClaudeCode\CLAUDE.mdなどのシステム領域に配置します。この「企業ポリシー」メモリをIT部門などが管理し、組織内の全ユーザーに適用させるといった運用もできます。

Kiro

 Kiroは「Steering」と「Specs」という二層構造のプレーンファイル戦略で長期記憶を扱います。あらかじめプロジェクト内に恒常的な知識ファイルとして「Steering」とセッション単位の仕様ファイル「Spec」を置くことで、対話履歴に依存せず一貫したコード生成を実現します。

 前者のSteeringディレクトリにはどのような役割があるのでしょうか。これはプロジェクト単位のナレッジを記録するためのMarkdownファイル群で、以下の構造をもちます。

bash
your-project/
└─ .kiro/
   └─ steering/
      ├─ product.md     # 製品の目的・主要機能・ビジネス目標
      ├─ tech.md        # 技術スタック・技術的制約
      ├─ structure.md   # ファイル構成・命名規則・アーキテクチャ

 Steeringディレクトリ配下のファイルは対話や生成時に常時読み込まれ、コード提案の一貫性を保ちます。Clineでいう.clinerules/、Claude CodeのCLAUDE.mdと同様の役割ですが、役割ごとにドキュメントが分かれているのが特徴です。

 一方、Specsはセッション単位で新たに作成される仕様ドキュメント群です。プロンプトを具体的な要件・設計・実装計画へと落とし込み、体系的にドキュメント化する仕様駆動開発(Spec Driven Development)の考え方に基づいており、KiroではこれをSpecモードとして実現します。

 具体的にどんな構造をしているか、見てみましょう。会話セッションごとに作成されたドキュメントは、以下のように格納され、長期記憶として管理されます。

bash
your-project/
└─ .kiro/
   └─ specs/
      ├─ session01/
      │   ├─ requirements.md  # ユーザーストーリー・受け入れ基準
      │   ├─ design.md        # 技術アーキテクチャ、シーケンス図、実装上の考慮事項
      │   └─ tasks.md         # 詳細な実装計画・タスクリスト
      ├─ session02/
      │   ├─ requirements.md
……

次のページ
「プレーンファイル」戦略とは何だったのか

この記事は参考になりましたか?

この記事の著者

渡邉 洋平(ワタナベ ヨウヘイ)

NTTテクノクロス株式会社に入社以来、AWSを中心とするインフラ開発やアーキテクトとして活動する一方で、社内にてテクニカルサポートや研修講師を務める。AWS CDK、Hono、Cline等のOSS活動やCoding Agentなど開発者向けツールに関する活動も精力的に行っている。AWS Ambass...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/22245 2025/11/13 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング