Skip to main content
Devin には、あなたの好みや期待する進め方、そして自分が正しい方向に進めているかをどのように確認すべきかについての指針が必要です。何も指定しない場合、Devin は独自に判断します。Devin が脱線せず、自分の作業を自己チェックできるようにするために、プロンプトでは次のようなシンプルな構造に従うことをおすすめします。

What(何をするか)

Devin に完了してほしいタスクを説明してください。Example: 私のプロジェクトを Java 7 から Java 8 にアップグレードする。

How(どのように行うか)

Devin がタスクを完了する際の、やるべきこと・やってはいけないことを説明してください(例: Modal を使ってデプロイする、など)。Example: 非推奨になった Java 7 の API を特定し、Java 8 の同等の API に置き換える。コードベースを分析し、Java 8 の言語機能および API による改善の余地を特定する。

Result(結果)

Devin がタスク完了と判断できるよう、期待する結果や Devin がテストすべき振る舞いを説明してください。Example: テストスイートを実行し、すべてのテストが正常に通過することを確認する。更新された Java 8 設定を使ってプロジェクトをビルドし、アプリケーションが起動し正常に動作していることを確認する。

適切なタスクの選び方

Devin に任せる内容を決めるときは、次のような特徴を持つタスクを選びましょう:
  1. 明確な成功基準
    • 成功を自動で検証できるタスク
    • フィードバックループが組み込まれているもの(テスト、コンパイル、Lint チェック)
    • 客観的な品質指標があるもの
  2. 適切なスコープ
    • ジュニアエンジニア相当の複雑さ
    • スコープの境界が明確に定義されているもの
    • 追従すべきパターンがはっきりしているもの
  3. 反復性の高い作業
    • 同様の変更を何度も適用する必要があるタスク
    • 単純なスクリプト化が難しいバリエーションがあるもの
    • 参考にできる既存のサンプルがあるもの
  4. 一般的な例
    • 複数パッケージにわたるバージョンアップ
    • テストされていないモジュールへのテストカバレッジの追加
    • ファイルを新しいパターン/標準に合わせて変換
    • 標準的な UI コンポーネントの実装

複雑なタスクは複数のセッションに分けて、よりシンプルなサブタスクに分解する

新人エンジニアと同様に、Devin も複雑なプロジェクトを明確なサブタスクに分解した方が成功しやすくなります。たとえば、1 回のセッションでアプリケーションコード、テストスイート、CI 設定のすべてをアップグレードするよう Devin に依頼するのではなく、これらを 3 つの個別セッションに分けるとよいでしょう。 特に複雑なタスクでは、セッションが長引くと Devin のパフォーマンスが低下する場合があるため、複数の独立したセッションに分けて Devin と作業することをおすすめします。

Devin に進捗の確認方法を伝える

Devin は、自身の作業を検証するための明確な検証手順が与えられたときに、最大限に力を発揮します。これにより、タスクが正しく遂行されていることを確実にし、潜在的な問題を早期に検知できるようになります。 以下は、Devin が自分の作業を検証しやすくするための、代表的な方法の一部です(網羅的ではありません)。
  1. テスト要件を明確にする
    • Devin に特定のテストスイートを実行するよう依頼する
    • どのテストがパスすべきかを定義する
    • 必要に応じてテストカバレッジの指標を要求する
  2. 明確なチェックポイントとサブタスクを設定する
    • 複雑なタスクを検証可能なサブタスクに分解し、サブタスクごとに Devin のセッションを 1 つ開始する
    • 各サブタスクにおいて、成功条件を定義し、必要に応じてサブタスク内のチェックポイントも定義する
    • 各チェックポイント/サブタスクの完了後に、Devin に結果を報告させる
  3. Devin に、作業の確認方法を指示する Devin が正しい方向に進めているかをどのように確認すればよいかを明確にします。例えば:
    • データセットを扱う場合: 「データセットに少なくとも 500 行があり、列 X、Y、Z を含むことを検証する」
    • API を変更する場合: 「エンドポイントがステータス 200 を返し、必要なフィールドをすべて含んでいることを確認する」
    • UI を更新する場合: 「コンポーネントがコンソールエラーなしでレンダリングされ、デザイン仕様に一致していることを確認する」
検証要件を具体的に伝えるほど、Devin は介入なしでタスクを自信を持って進められるようになります。

具体的かつ明確に指示する

Devin には、明確で詳細な指示と要件を伝えてください。たとえば、次のようなことを試してみてください。
  1. タスクを完了するために必要な主要な手順を明示する
  2. Devin に扱わせたい特定のリポジトリ、ライブラリ、ブランチなどを指定する
Devin にとって「当たり前すぎる」指示はありませんが、作業を進める中で必要に応じて確認したり質問したりしようとします。

Playbook を使う

反復的または複雑なタスクには、Playbooks を活用し、継続的にブラッシュアップしていくことをおすすめします。Playbook は、簡単に再利用・共有できるプロンプトです。たとえば、Devin に継続的に発生する CI ビルド失敗への対応を任せたい場合、毎回のプロンプトに手順を書かなくても済むように、Devin が毎回取るべき一般的な手順をまとめた Playbook を作成できます。

参考情報やサンプルを提供する

可能であれば、そのタスクに関連するドキュメントやサンプルへのリンクを共有してください。リソースを提供しない場合、Devin が独自にドキュメントを検索することがあります。

さっそく始めましょう!

Devin が作業している間も、ほかのチームメイトと同じように、自由に質問したり指示を出したりしてください。