🙄

Devin を最大限に活用する、ACU 効率化とアウトプットの質向上のコツを徹底的に調べてみた

に公開

「Devin を導入したけど、どう使いこなせばいいんだろう?」「請求額が心配...」Devin を始めたばかりの方ならこんな疑問や不安を抱えていないでしょうか?

私は 1 ヶ月ほど前から Devin を使い始めたのですが最初は何から手をつれけばよいか全然わからなかったです。最近ようやくわかってきたので、これから Devin を始める方のためにお役に立てればと思い徹底解説記事を書きました。

最短で成果を出すための具体的な活用法と、効率的に使うことで ACU(Agent Compute Unit)を抑えながら、高品質なコードを生成するコツをわかりやすく紹介します。

https://docs.devin.ai/get-started/devin-intro

Devin の基本を理解する

仕組みと特徴

Devin は単なるコード生成 AI とは異なり、開発環境内で自律的に動作するエージェントです。コードの記述だけでなく、計画立案、情報収集、テスト実行、デバッグなど、ソフトウェア開発のあらゆる側面をカバーします。Devin は独自の仮想環境でシェル、コードエディタ、ブラウザなどの開発ツールを活用してタスクを実行します。

2025 年 4 月に Devin 2.0 がリリースされ、エージェントネイティブ IDE 体験や並列処理機能など、パフォーマンスと使いやすさが大幅に向上しました。内部ベンチマークによると、Devin 2.0 は以前のバージョンと比較して ACU あたりの開発タスク完了数が 83% 向上しています。

https://www.cognition.ai/blog/devin-2

ACU の計算方法

ACU(Agent Compute Unit)は、Devin の作業単位であり、タスク実行に使用する計算リソースを正規化した指標です。

  • 1 ACU = 約 15 分の作業時間に相当
  • 仮想マシン時間、モデル推論、ネットワーク帯域幅などの使用量が含まれる

料金プラン比較

現在、Devin には主に 2 つの料金プランがあります

https://devin.ai/pricing

  • Core(従量課金)プラン: $2.25/ACU(最低$20 から開始)
  • Teams(サブスクリプション)プラン: 月額$500 で 250 ACU($2.00/ACU、約 62.5 時間/月の稼働が可能)

Devin 2.0 のリリースに伴い、以前は Teams プランのみだった提供形態から、個人開発者や小規模チーム向けの Core プランが追加されました。

ACU が消費されないケース

Devin は以下の状況では ACU を消費しません

  • ユーザーの返答を待っているとき
  • テストスイートの実行を待っているとき
  • リポジトリのセットアップやクローン時

通常、約 0.1 ACU の非アクティブ状態が続くと自動的にスリープ状態になり、ACU 消費が停止します。これらの「待機時間」を効果的に活用することで、ACU の無駄遣いを防ぐことができます。

アウトプット品質を向上させる実践テクニック

プロンプト設計の最適化

プロンプトの質は Devin のパフォーマンスに直接影響します。以下のようなフォーマットを使用することで、指示の明確さが増し、Devin の理解が向上します

# 依頼内容
概要を記載(例: 利用者データの取り込みロジックの作成)

# 作業ブランチ
作業ブランチ名を記載
例: branch-100(mainからブランチを切ってください)

# 詳細
タスク詳細を書く

プロンプト設計のコツ

  • 具体性を持たせる:曖昧な指示は混乱を招き、余分な ACU を消費します
  • 作業量を小さくする:一度に大きなタスクを依頼するのではなく、小さく分割します
  • 必要なパスを明示する:ファイルのパスや参照すべきコードの場所を具体的に指示します
  • サンプルを提示する:類似タスクの実装例を示すことで理解を促進します

Knowledge 機能の戦略的活用法

Knowledge 機能を活用することで、Devin に特定のドメイン知識や開発ルールを継続的に学習させることができます。

効果的な Knowledge 管理のポイント

  • マイグレーションファイル名の命名規則やブランチ名などの開発ルールを登録
  • 開発に必要な指示(「XXX の機能開発をする際は XXX のアカウントでログイン」など)を追加
  • 定期的に Knowledge を整理し、統廃合・分割やトリガーの修正を実施

Knowledge は小さな単位に分割し、トリガーとなるキーワードが内容に非常に関連していることを確認することが重要です。

ワークスペース設定のベストプラクティス

Devin のパフォーマンスを最大化するには、適切なワークスペース設定が不可欠です

  • 開発環境のセットアップ手順を明確に記述する
  • 依存関係のインストール、Lint 設定、テスト環境のセットアップなどを丁寧に行う
  • 「毎回これをやってと指示している」ことがある場合は、ワークスペースのセットアップを見直す

不適切なワークスペース設定は、Devin が混乱して ACU を浪費する原因となります。

Few-shot プロンプティングの効果

Few-shot プロンプティング(参考例を示す方法)は、Devin が高品質な結果を出すのに役立ちます。特に小規模な機能追加や特定のコーディングパターンを適用する場合に効果的です。

例えば、新しい API エンドポイントを作成する場合、既存の類似エンドポイントの実装を参照するよう指示することで、一貫性のあるコードを生成しやすくなります。

Devin 2.0 の新機能活用

Devin 2.0 では、以下の新機能が追加されており、これらを活用することでさらに効率的な開発が可能になります

  • エージェントネイティブ IDE: VSCode のような使い慣れた環境でコードのレビューや編集が可能
  • パラレル Devin: 複数の Devin インスタンスを同時に実行し、異なるタスクを並行して処理
  • Devin Search: コードベースに関する質問に引用付きで回答する機能
  • Devin Wiki: リポジトリを自動的にインデックス化し、アーキテクチャ図を含む包括的なドキュメントを生成

詳細は以下の記事に動画で説明されいているのでこちらを見ていただくとイメージが湧きやすいです。

https://cognition.ai/blog/devin-2

ACU 消費を最小化する 10 の戦略

1. タスクの適切な分割と優先順位付け

効率的な ACU 活用のためには、タスクの適切な分割と優先順位付けが重要です

タスクの優先順位付け

  • 高優先タスク:時間のかかる反復作業(バグ修正、コードのリファクタリングなど)
  • 低優先タスク:簡単なコーディングや単純なテスト

具体例:優先順位付けの実践

次のような機能追加プロジェクトがあるとします

  1. ログイン機能の改善(セッション管理の最適化)
  2. 商品検索機能の高速化(クエリ最適化)
  3. UI の微調整(ボタン位置やテキストの変更)
  4. 新規ユーザー登録フォームの追加

このとき、次のように優先順位を付けます

Devin に任せる高優先タスク

  • 商品検索機能の高速化(DB クエリの最適化は反復的作業で、パターン化しやすい)
  • ログイン機能の改善(セキュリティ要件を満たすコード生成は時間がかかる)

低優先または手動で行うタスク

  • UI の微調整(人間の目で確認しながら調整するほうが効率的)
  • 新規ユーザー登録フォーム(重要度が高いが、Devin に任せる前に設計を人間が確認すべき)

タスクの分割

大規模なタスクを小さなサブタスクに分割することで、ACU を効率的に使用できます。Devin は計画を立て、進捗をリアルタイムで報告するため、適切なタイミングでの調整が容易になります。

具体例:タスク分割の実践

「EC サイトの商品管理システム全体をリニューアル」という大きなタスクがあるとします。これを以下のように分割します

Before(非効率)

ECサイトの商品管理システム全体をリニューアルしてください。
現在の問題点は、商品データの登録が遅い、一括編集ができない、
在庫管理が手動、画像管理が不便、という点です。

After(効率的)

# タスク1:商品データベーススキーマの最適化
現在のテーブル構造(schema.sql)を分析し、以下の改善を実装してください
- インデックスの追加(特に検索頻度の高いカラム)
- 正規化の改善(特に product_variants テーブル)

# タスク2:商品一括登録 API の実装
- CSV ファイルから商品を一括登録する API エンドポイントを作成
- product_controller.rb に実装し、既存のテスト形式に合わせてテストも追加

# タスク3:在庫自動同期の実装
- 外部システムと在庫を同期する機能を実装
- 既存の sync_service.rb を参考に stock_sync_service.rb を作成

このように分割することで、各タスクは明確で独立しており、ACU 消費が効率化されます。また、各タスクに対して Devin が生成したコードを段階的に確認できるため、品質管理もしやすくなります。

Devin 2.0 ではパラレル Devin 機能を活用することで、複数のサブタスクを同時に実行できるようになりました。

2. セッション管理の効率化手法

ACU 消費を抑えるためのセッション管理のコツ

  • プロンプトとセッションを短く保つ
  • 1 つのセッションで多くの異なるタスクを依頼しない
  • Teams プランの場合、大きなプロジェクトやタスクをセッションをまたいだサブタスクに分割する

セッションが 10ACU 以上長引くとパフォーマンスが低下する可能性もあるため、目的に応じて複数セッションに分割することが推奨されます。

3. インタラクティブプランニングの活用

複雑なタスクでは、インタラクティブプランニング機能を活用することで Devin の計画立案を支援できます

  • 「Wait for my approval」ボタンをクリックして、Devin の完全な計画へのフィードバックを行う
  • 代替案をブレインストーミングしたり、コードベースを一緒に探索する
  • 提案されたアプローチに修正を提案する

このプロセスにより、Devin が不必要な道筋を追求することによる ACU の無駄遣いを防ぐことができます。

Devin 2.0 では、セッション開始直後に自動的にコードベースを分析し、関連ファイルを特定して初期計画を提案する機能が強化されています。

4. エラー処理とリトライの最適化

Devin にエラー時の対応戦略を提供することで、無駄なリトライを減らし、効率的な問題解決が可能になります

  • 発生しうるエラーパターンとその対処法を事前に指示
  • エラー発生時の報告方法を明確に指定
  • リトライの最大回数を設定

エラー処理の具体例

以下は、Devin に対するエラー処理戦略の具体例です

# NPMパッケージのインストールと設定タスク

このタスクでは新しいReactコンポーネントを作成し、react-query を使ってAPIからデータを取得してください。
以下のエラー対応戦略に従ってください

## 発生しうるエラーと対処法
1. NPMインストールエラー:
   - 発生したら: `npm cache clean --force` を実行してから再試行
   - 3回失敗したら: alternative-package.json から依存関係を手動でインストール

2. APIレスポンスエラー:
   - 必ずtry-catchブロックで処理
   - エラーメッセージを画面に表示するコンポーネントを実装
   - オフライン動作のためのフォールバックデータを用意

3. 型エラー:
   - 型定義ファイルを確認
   - 必要に応じて `@types/` パッケージをインストール
   - 最悪の場合、型アサーションで回避(ただしコメントで説明を追加)

## 報告方法
- エラーが発生したら、具体的なエラーコードと試した解決策を報告
- 重大なエラーの場合は即座に報告し、次のステップの指示を待つ
- マイナーなエラーは解決策と共に最終レポートに含める

## リトライ設定
- 同じエラーに対して最大3回までリトライ
- それ以上は異なるアプローチを検討し、提案する

このような詳細なエラー対応戦略を事前に指示することで、Devin は問題発生時に効率的に対処でき、ACU の無駄な消費を避けることができます。また、人間の介入が必要な局面を明確に定義することで、問題解決のプロセスが効率化されます。

5. 具体的な指示と曖昧さの排除

Devin に対しては、具体的で詳細な指示を提供することが重要です

良い例: 「orderService.jsのgetOrderDetailsクエリを最適化してください。具体的にはorder_itemsテーブルのorder_idとproduct_id列に複合インデックスを追加し、既存の相関サブクエリをproductsテーブルとのJOINに置き換えて製品詳細を取得するようにリファクタリングしてください。」

悪い例: 「データベースのパフォーマンスを改善してください。」

明確なタスク定義により、Devin が無駄な探索や試行錯誤をする必要がなくなり、必要な ACU が大幅に削減されます。また、期待通りの結果を得られる確率も向上します。

6. 早期フィードバックの活用

Devin が意図しない方向に進んでいると感じたら、作業が終了する前に早めに軌道修正します。不要な PR を後から作り直すより、途中で指示を修正する方が ACU の無駄を大幅に減らせます。

7. アイドル時間の有効活用

Devin が待機中(ユーザー応答待ちやテスト実行中)は ACU が消費されません。この間に次の指示内容を検討したり、生成されたコードをレビューしたりしておくことで、効率良く作業を進められます。

8. 自動化できる部分は LLM 以外で処理

スタイルチェックやルールに関する修正、単純なテンプレート生成などは、事前にリンターやスクリプトで自動化しておきます。Devin には「規約通りコードを書くのではなく、所定のコマンド実行+必要部分の実装」を頼むことで、コンテキストを削減し ACU 節約につながります。

9. 成功体験の蓄積と再利用

小さな成功事例(変更要求と結果)を記録し、Devin の Knowledge や Playbook に反映します。これにより同じパターンのタスクは高速に再実行でき、Devin の学習効果も高まります。

「DB 移行スクリプト作成」「新規マイクロサービス追加」「セキュリティ脆弱性修正」などの複雑で頻繁に発生するタスクの Playbook を作成し、チーム全体で共有すると効率的です。

10. ACU のモニタリングと分析

「Usage & Limits」ページを活用し、各タスクでの ACU 消費量を分析することが重要です

  • シンプルなタスク:約 5 ~ 10 ACU
  • 複雑なタスク:20 ~ 40 ACU

消費傾向を理解することで、効率的なリソース配分が可能になります。

チーム全体での Devin 活用戦略

Knowledge 共有と Playbook 整備のポイント

Devin を組織的に活用するためのアプローチ

  • Knowledge の継続的整理と共有
  • Playbook の整備によるベストプラクティスの蓄積
  • チーム内での Devin 活用事例と知見の共有

特に頻繁に使用するプロンプトや設定はテンプレート化し、チーム全体で共有することで効率が向上します。

継続的なフィードバックと改善サイクル

Devin のパフォーマンス向上のための継続的なフィードバック

  • セッション後のレビューを行い、Devin がどこで時間を費やしたかを分析
  • Devin の失敗から学び、将来のセッションでより詳細な指示を提供
  • Knowledge 機能に新しい情報を追加して、過去のセッションから学んだことを記録

定期的に「Devin レトロスペクティブ」を行い、チーム全体でベストプラクティスを共有し、改善点を議論することも効果的です。

明日から実践する Devin 活用のステップ

段階的な導入アプローチ

最初は小さな成功体験から始め、段階的に活用範囲を広げていきましょう

  1. 初期段階: ドキュメント更新、バグ修正、テスト追加など小規模タスクから
  2. 中間段階: 既存機能の拡張、複数ファイルにまたがる変更へ進む
  3. 応用段階: 新機能の実装や大規模リファクタリングに挑戦

Discussion