Skip to main content

機能プロンプトの ACU 消費を 42 から 12 に削減

ページネーションタスクで想定の 3 倍の ACU を消費した実際のセッションをステップごとに振り返り、3 つの根本原因を特定し、ACU を 70% 節約できるようにプロンプトを書き直します。
AuthorCognition
CategoryDevin Optimization
Features上級
1

調査の発端となったセッション

ある開発者がDevinに、APIエンドポイントにページネーションを追加するよう依頼しました。プロンプトは短く、妥当そうな内容でした。セッションは問題なく完了し、テストも通過し、PRも良さそうに見えました。しかし、本来 約12 ACU で済むはずのタスクに対して、42 ACU を消費していました。コードベースの他の箇所ではすでに動作しているパターンがある機能にもかかわらず、想定の3.5倍のコストになっていたのです。ここでは、何が問題だったのかを突き止め、同じことを二度と起こさないようにする方法を説明します。
2

Session Insights から始める

すべての完了したセッションには、無料の Session Insights による分析が自動で付与されます。完了した任意のセッションの上部のバーにある 電球アイコン をクリックすると開きます。Advanced セッションは不要です。このページネーションに関するセッションでは、Session Insights によって次の点がフラグ付けされました:
  • Issue Timeline — Devin がアプローチを完全に変えた 14 分と 28 分の位置に赤いマーク。
  • Issues Detected — 「src/utils/paginate.ts が既に存在するにもかかわらず、ページネーションをゼロから実装したため、コードベースに関する前提が誤っていた」と「テストがオフセットベースのページネーションを期待しているのに、カーソルベースのページネーションを使用したため、実装方式が誤っていた」。
  • Improved Prompt — 不足していたコンテキストを補って書き直されたバージョンで、そのままコピーできます。
  • ACU Usage — 42 ACU。タスクの規模に対して不相応としてフラグされました。
多くのセッションでは、これで十分です。改善版プロンプトをコピーし、新しいセッションを開始して比較してください。しかし、フェーズごとのコスト内訳を完全に把握したい場合は、さらに掘り下げて確認してください。
3

Advanced Devin でフェーズごとの詳細な内訳を確認できます

セッションインサイトパネルで Investigate with Devin をクリックすると、元のセッションの全履歴があらかじめ読み込まれた Advanced Devin セッションが起動します。あるいは、新しい Advanced セッションを手動で開始することもできます。session dropdown からセッションを選び、分析してほしい内容を記述します:Advanced Devin は元のセッションのすべてのアクションを精査し、Devin が異常に長い時間を費やした箇所や非効率的なアプローチを取った箇所を特定します。
セッション分析 | タスク: GET /api/users へのページネーション追加
実際: 42 ACUs | 想定: ~12 ACUs

非効率な点:

1. 不要な調査 — 調査フェーズが異常に長時間かかった
   Devin はページネーションヘルパーを探して 23 ファイルを調査した。
   ゼロからページネーションを実装した後、
   src/utils/paginate.ts を発見し、すべてをリファクタリングする必要が生じた。
   修正方法: プロンプトに既存のユーティリティについて記載する。

2. 誤ったアプローチ — 実装全体を書き直す必要があった
   Devin はカーソルベースのページネーションを実装した。API がオフセットベースを
   使用しているためテストが失敗し、実装全体をゼロから書き直した。
   修正方法: プロンプトに「オフセットベース」と明記する。

3. 環境の問題 — インストールの繰り返し失敗
   プライベートレジストリ用の .npmrc 設定が欠落していたため、
   npm install が 2 回失敗した。Devin は回避策を試みながら再試行した。
   修正方法: リポジトリのセットアップにレジストリ設定を追加する。
根本原因は3つ。いずれもプロンプトやリポジトリ設定を改善すれば防げます。
4

プロンプトを書き直して比較する

You can ask Advanced Devin to start a new session with the improved prompt directly — no need to copy-paste. The analysis produces a structured prompt that includes exactly the context that was missing:Compare the two prompts side by side:
OriginalOptimized
Pagination typeNot specified”オフセットベース”
Existing utilityNot mentionedsrc/utils/paginate.ts
Reference patternNone”GET /api/projects と同じ”
Response shapeNot specified明示的なスキーマ
Testing criteria”テストを実行”具体的なエッジケース
ACU result42 ACUs約 12 ACUs
The optimized prompt eliminates all three root causes. Devin は 23 個のファイルを探索する処理を省略し、最初の試行で正しいページネーション方式を選択し、実績のあるパターンに従います。
5

発見を恒久的な修正につなげる

1回のプロンプト書き換えで、1つのセッションのACU使用量を削減できます。そこで得られた知見を恒久的な設定に反映すると、今後のすべてのセッションでACU使用量を削減できます。Knowledge に繰り返し使うコンテキストを追加する。 ページネーションの分析で、Devin が繰り返し必要とする 2 つの事実(ページネーションの種類とユーティリティの場所)が判明しました。これらを Knowledge のエントリとして追加し、すべてのセッションが自動的にそのコンテキストで始まるようにします。
  • “すべての API エンドポイントはオフセットベースのページネーションを使用しています。共通ユーティリティは src/utils/paginate.ts にあります。参照実装として GET /api/projects を確認してください。”
  • “テストは npm test で実行します。型チェックは npm run typecheck で実行します。”
Repo Setup でワークスペースの問題を修正する。 npm install の失敗によって無駄になった 3 ACU は、プライベートレジストリ向けの .npmrc 設定が不足していたことが原因でした。レジストリ設定をリポジトリのセットアップに追加することで、今後のすべてのセッションでこのエラーが発生するのを防げます。バッチ分析でチーム全体のパターンを見つける。 複数の開発者のセッションでACU使用量が高くなっている場合は、いくつかをまとめて分析し、共通する根本原因を特定します。