MemoryLake
すべての記事に戻る
Pain Point2026年5月22日7 分で読了

なぜDevinは私のコーディングスタイルを忘れるのか?

先週のセッションでDevinに関数コンポーネント、Resultタイプ、TanStack Queryを使用するように指示しました。今週のセッションでは、1つのPRでクラスコンポーネントに戻り、別のPRで`useEffect`データ取得を行っています。あなたのスタイルガイドは存在しないも同然です。

これはDevinが不注意なわけではありません。これはその持続性レイヤーのスコープの問題であり、スタイルを単一のセッションを超えて持続させる方法があります。

短い答え

Devinがあなたのコーディングスタイルを忘れるのは、各Devinセッションが自律的な実行であり、前のセッションからの推論を自動的に継承しないためです。また、Knowledgeエントリはプロジェクト固有ではなくアカウント全体に適用されます。セッション内で入力されたスタイルルールは、そのセッションと共に生き、死にます。修正方法は、Devinがセッション開始時に読み取るプロジェクトごとの記憶レイヤーを付加することです。

Devinがコーディングスタイルを忘れる理由

DevinはCognitionの自律的なエンジニアリングエージェントで、管理されたサンドボックス内で計画、コーディング、テストを実行します。あなたのスタイルルールが次の実行から外れる3つの設計選択肢があります:

1. セッションは作業コンテキストをリセットします。 すべてのDevin実行は新しいサンドボックスと新しい会話を生成します。セッション中に与えたスタイルの指示 — 「名前付きエクスポートを使用し、デフォルトは使用しない;cn()を使用し、clsxは使用しない」 — はそのセッションにローカルであり、次のセッションには読み込まれません。

2. Knowledgeエントリはグローバルなガイダンスであり、プロジェクトルールではありません。 DevinのKnowledge機能はセッションを超えて事実を持続させますが、アカウント全体に適用されます。「常にコミット前にリンティングを実行する」には便利ですが、同じアカウント内の2つのリポジトリが異なる慣習を持つ場合にはあまり役に立ちません。

3. エージェントはリポジトリからスタイルを再導出します。 Devinはファイルを読み取って慣習を推測しますが、慣習が一貫している場合には合理的です。アクティブな移行中のリポジトリ — 新しいパターンに半分変換された — では、Devinは間違った半分を選択してそれをコーディファイします。公式のDevinドキュメントはdocs.devin.aiでセッションとKnowledgeモデルについて詳しく説明しています。

結果として、スタイルはセッションの期間中は保持されますが、新しいセッションが始まるとすぐに漂流します。

Devinがコーディングスタイルを忘れると失うもの

コストは単なる美的なものではなく、レビューや出荷速度にも影響します:

  • 1つのPR内の混在した慣習。 3つの新しいファイルは名前付きエクスポートを使用し、2つはデフォルトを使用します。2つはResult<T, E>を使用し、1つはスローします。レビュアーは論理ではなくスタイルに時間を費やします。
  • 再審議された決定。 「バレルファイルを削除することに合意しました」は、Devinが次のセッションで再び提案することになります。なぜなら、その決定は持続しなかったからです。
  • 人間のチームメイトとの不一致。 あなたのチームはスタイルに合意しました。エージェントはそれから漂流します。PRは人間とエージェントの差分の綱引きになります。

修正方法は「各セッションでより厳格なブリーフを書くこと」ではなく、Devinに自動的に読み込むスタイルルールのプロジェクト記憶を与えることです。

Devinの組み込みの回避策

Cognitionはあなたに3つの持続性ツールを提供します。どれもスタイルをプロジェクトにきれいに固定することはできません。

Knowledgeは持続的なルールに最も近いものです。それはグローバルで手動で維持され、リポジトリにスコープされていないため、マルチプロジェクトチームは条件付きでKnowledgeを膨張させるか(「リポジトリXではYを行う」)またはスタイルの強制がセッションごとであることを受け入れます。

リポジトリ設定スクリプトはリンターやフォーマッターをインストールでき、後からいくつかのスタイル違反をキャッチします。しかし、最初にDevinがコードを書く方法を変更することはありません。

リンクされたPRと以前のセッションは、新しいブリーフ内で以前の作業を参照できるようにします。それでも、正しいセッションをDevinに指示し、プローズから正しいスタイルの手がかりを抽出することを信頼する必要があります。

Devinの組み込みの記憶が不足している点

より深い問題は、コーディングスタイルがプロジェクトの資産であることです。それはプロジェクトと共に存在し、プロジェクトと共にバージョン管理され、プロジェクトが使用する任意のツール — Devin、Cursor、Claude Code、ChatGPT — に持ち運ばれるべきです。

Knowledgeエントリはグローバルな好みを処理します。マルチプロジェクト、マルチツールのスタイル強制には、エージェントの上にレイヤーが必要です。

MemoryLakeがDevinのコーディングスタイルを忘れる問題を解決する方法

MemoryLakeは、Devinがセッション開始時にREST経由で読み取るクロスモデルの記憶レイヤーです。スタイルルールをグローバルなKnowledgeに重複させるのではなく、プロジェクトに固定された記憶として保存し、各セッションが関連するものだけを取得できるようにします。

  • プロジェクトスコープの記憶としてのスタイル。 「名前付きエクスポート、Resultタイプ、TanStack Query」は、プロジェクト内の構造化された記憶として存在します。異なるリポジトリには異なるルールが適用され、グローバルなKnowledgeを汚染することはありません。
  • 人間とエージェント間で同じルール。 CursorやClaude Codeの開発者が使用するのと同じスタイル記憶が、Devinがセッション開始時に引き出します。人間とエージェントのコード間に漂流はありません。
  • 生のプロンプトの10,000倍の取得範囲。 MemoryLakeのエンジンは、プロジェクトの記憶から数十億のトークンを読み取り、Devinが編集しているファイルに関連するスタイルルールのみを返します。

MemoryLakeは、2026年時点でのLoCoMo長文コンテキストベンチマークで94.03%を記録し、ミリ秒単位の取得とAES-256のエンドツーエンド暗号化を実現しています。

MemoryLakeをDevinに接続する3つのステップ

  1. プロジェクトを作成し、コンテキストを読み込む。 MemoryLakeにサインインし、プロジェクト管理を開き、「プロジェクトを作成」をクリックし、「Devin — Acme web style」と名付けます。スタイルガイド、ESLint設定、ADR、および慣習ドキュメントをドキュメントドライブを通じてアップロードします。明示的なルール — 「名前付きエクスポートのみ」、「デフォルトエクスポートはなし」、「失敗可能なコードにはResultタイプを使用」 — を記憶として「記憶」タブに追加します。
  2. MCPサーバーエンドポイントを生成する。 プロジェクト内のMCPサーバータブを開き、「MCPサーバーを追加」をクリックし、「Devinスタイル記憶」と名付けて「生成」をクリックします。MemoryLakeはAPIキーID、シークレット、およびエンドポイントURLを返します。Bearerトークンをすぐにコピーしてください — 一度だけ表示されます。
  3. REST経由でDevinを接続する。 MemoryLakeのRESTエンドポイントをBearerトークンで呼び出し、プロジェクトのスタイル記憶を引き出し、実行開始前にタスクブリーフまたはKnowledgeに書き込むためのセットアップまたはプレセッションフックをDevinのワークフローに追加します。これで、各セッションはエージェントの前にプロジェクトのスタイルルールを開くようになります。

よくある質問

Devinはセッションを超えてコーディング慣習を覚えていますか?

DevinのKnowledge機能は事実をグローバルに持続させますが、特定のプロジェクトにスコープされていません。単一のセッション内で伝えられた慣習は、自動的に次のセッションに持続しません。

Devinに私のコーディングスタイルを一貫して守らせるにはどうすればよいですか?

MemoryLakeのような記憶レイヤーをREST経由でDevinに接続します。プロジェクトのスタイルルールを記憶として保存し、セッション開始時にタスクブリーフに引き出させます。

なぜDevinは1つのPR内でコーディングスタイルを混在させるのですか?

Devinが読み取るファイルからスタイルを推測するためです。混在した慣習やアクティブな移行中のリポジトリでは、間違ったパターンを拾って再現することがあります。プロジェクト記憶は、エージェントに明示的なルールを与え、推測させないようにします。

Knowledgeエントリをプロジェクト固有のスタイルルールに使用できますか?

できますが、Knowledgeはアカウント全体に適用されます。「リポジトリXではYを行い、リポジトリZではWを行う」といった条件を記述することになります。プロジェクトスコープの記憶レイヤーの方がクリーンで、プロジェクトと共に移動します。

MemoryLakeはDevinと私の開発者のエディタ間でスタイルルールを共有できますか?

はい。MemoryLakeはツールに中立的な形式でスタイル記憶を保存します。Devinがセッション開始時に読み取るルールは、あなたの開発者のCursorやClaude Codeセッションでも見ることができるルールです。