機能プロンプトの ACU 消費を 42 から 12 に削減
ページネーションタスクで想定の 3 倍の ACU を消費した実際のセッションをステップごとに振り返り、3 つの根本原因を特定し、ACU を 70% 節約できるようにプロンプトを書き直します。調査の発端となったセッション
ある開発者がDevinに、APIエンドポイントにページネーションを追加するよう依頼しました。プロンプトは短く、妥当そうな内容でした。セッションは問題なく完了し、テストも通過し、PRも良さそうに見えました。しかし、本来 約12 ACU で済むはずのタスクに対して、42 ACU を消費していました。コードベースの他の箇所ではすでに動作しているパターンがある機能にもかかわらず、想定の3.5倍のコストになっていたのです。ここでは、何が問題だったのかを突き止め、同じことを二度と起こさないようにする方法を説明します。
Session Insights から始める
すべての完了したセッションには、無料の Session Insights による分析が自動で付与されます。完了した任意のセッションの上部のバーにある 電球アイコン をクリックすると開きます。Advanced セッションは不要です。このページネーションに関するセッションでは、Session Insights によって次の点がフラグ付けされました:
- Issue Timeline — Devin がアプローチを完全に変えた 14 分と 28 分の位置に赤いマーク。
- Issues Detected — 「
src/utils/paginate.tsが既に存在するにもかかわらず、ページネーションをゼロから実装したため、コードベースに関する前提が誤っていた」と「テストがオフセットベースのページネーションを期待しているのに、カーソルベースのページネーションを使用したため、実装方式が誤っていた」。 - Improved Prompt — 不足していたコンテキストを補って書き直されたバージョンで、そのままコピーできます。
- ACU Usage — 42 ACU。タスクの規模に対して不相応としてフラグされました。
Advanced Devin でフェーズごとの詳細な内訳を確認できます
セッションインサイトパネルで Investigate with Devin をクリックすると、元のセッションの全履歴があらかじめ読み込まれた Advanced Devin セッションが起動します。あるいは、新しい Advanced セッションを手動で開始することもできます。session dropdown からセッションを選び、分析してほしい内容を記述します:Advanced Devin は元のセッションのすべてのアクションを精査し、Devin が異常に長い時間を費やした箇所や非効率的なアプローチを取った箇所を特定します。根本原因は3つ。いずれもプロンプトやリポジトリ設定を改善すれば防げます。
プロンプトを書き直して比較する
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:
The optimized prompt eliminates all three root causes. Devin は 23 個のファイルを探索する処理を省略し、最初の試行で正しいページネーション方式を選択し、実績のあるパターンに従います。
| Original | Optimized | |
|---|---|---|
| Pagination type | Not specified | ”オフセットベース” |
| Existing utility | Not mentioned | src/utils/paginate.ts |
| Reference pattern | None | ”GET /api/projects と同じ” |
| Response shape | Not specified | 明示的なスキーマ |
| Testing criteria | ”テストを実行” | 具体的なエッジケース |
| ACU result | 42 ACUs | 約 12 ACUs |
発見を恒久的な修正につなげる
1回のプロンプト書き換えで、1つのセッションのACU使用量を削減できます。そこで得られた知見を恒久的な設定に反映すると、今後のすべてのセッションでACU使用量を削減できます。Knowledge に繰り返し使うコンテキストを追加する。 ページネーションの分析で、Devin が繰り返し必要とする 2 つの事実(ページネーションの種類とユーティリティの場所)が判明しました。これらを Knowledge のエントリとして追加し、すべてのセッションが自動的にそのコンテキストで始まるようにします。
- “すべての API エンドポイントはオフセットベースのページネーションを使用しています。共通ユーティリティは
src/utils/paginate.tsにあります。参照実装として GET /api/projects を確認してください。” - “テストは
npm testで実行します。型チェックはnpm run typecheckで実行します。”
npm install の失敗によって無駄になった 3 ACU は、プライベートレジストリ向けの .npmrc 設定が不足していたことが原因でした。レジストリ設定をリポジトリのセットアップに追加することで、今後のすべてのセッションでこのエラーが発生するのを防げます。バッチ分析でチーム全体のパターンを見つける。 複数の開発者のセッションでACU使用量が高くなっている場合は、いくつかをまとめて分析し、共通する根本原因を特定します。