> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# プロンプト活用のヒント

> Devin への効果的なプロンプトと軌道修正のコツ

export const PromptBlock = ({children, type, agent, intent, playbookId}) => {
  var utm = 'utm_source=docs&utm_medium=use-case-gallery&utm_campaign=prompt-block';
  var tag = 'docs-use-case-gallery';
  var agentParams = (agent ? '&agent=' + agent : '') + (intent ? '&intent=' + intent : '') + (playbookId ? '&playbookId=' + playbookId : '');
  var label = type === 'schedule' ? 'Schedule in Devin' : type === 'playbook' ? 'Create Playbook' : type === 'knowledge' ? 'Add to Knowledge' : agent === 'advanced' ? 'Try in Devin' : agent === 'dana' ? 'Try in Dana' : agent === 'ada' ? 'Try in Ask Devin' : 'Try in Devin';
  var buildUrl = function (text) {
    var encoded = encodeURIComponent(text);
    if (type === 'schedule') return 'https://app.devin.ai/settings/schedules/create?' + utm + agentParams + '&prompt=' + encoded;
    if (type === 'playbook') return 'https://app.devin.ai/settings/playbooks/create?' + utm + '&body=' + encoded;
    if (type === 'knowledge') return 'https://app.devin.ai/knowledge?' + utm + '&body=' + encoded;
    if (agent === 'ada') return 'https://app.devin.ai/search?' + utm + '&noSubmit=true&prompt=' + encoded;
    return 'https://app.devin.ai/?tags=' + tag + '&' + utm + agentParams + '&prompt=' + encoded;
  };
  const ref = React.useRef(null);
  const [href, setHref] = React.useState('#');
  React.useEffect(() => {
    if (!ref.current) return;
    var codeEl = ref.current.querySelector('pre code');
    if (codeEl) {
      var text = codeEl.textContent.trim();
      if (text) setHref(buildUrl(text));
    }
    var header = ref.current.querySelector('[data-component-part="code-block-header"]');
    if (header && !header.querySelector('.prompt-block-devin-link')) {
      var link = document.createElement('a');
      link.href = href;
      link.target = '_blank';
      link.rel = 'noopener noreferrer';
      link.className = 'prompt-block-devin-link';
      link.style.cssText = 'display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;white-space:nowrap;background:#317CFF;transition:background 0.2s;margin-left:8px;';
      link.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg> ' + label;
      link.onmouseenter = function () {
        link.style.background = '#2968D9';
      };
      link.onmouseleave = function () {
        link.style.background = '#317CFF';
      };
      header.appendChild(link);
    }
    var existingLink = ref.current.querySelector('.prompt-block-devin-link');
    if (existingLink && href !== '#') existingLink.href = href;
  });
  return <div className="prompt-block" ref={ref}>{children}</div>;
};

<Tip>包括的なベストプラクティスについては、[Devin に効果的に指示する](/ja/essential-guidelines/instructing-devin-effectively) と [良い指示 vs. 悪い指示](/ja/essential-guidelines/good-vs-bad-instructions) も参照してください。</Tip>

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

<CardGroup cols={1}>
  <Card title="What（何をするか）" icon="block-question" horizontal>
    Devin に完了してほしいタスクを説明してください。

    **Example**: 私のプロジェクトを Java 7 から Java 8 にアップグレードする。
  </Card>

  <Card title="How（どのように行うか）" icon="chalkboard-user" horizontal>
    Devin がタスクを完了する際の、やるべきこと・やってはいけないことを説明してください (例: Modal を使ってデプロイする、など) 。

    **Example**: 非推奨になった Java 7 の API を特定し、Java 8 の同等の API に置き換える。コードベースを分析し、Java 8 の言語機能および API による改善の余地を特定する。
  </Card>

  <Card title="Result（結果）" icon="print" horizontal>
    Devin がタスク完了と判断できるよう、期待する結果や Devin がテストすべき振る舞いを説明してください。

    **Example**: テストスイートを実行し、すべてのテストが正常に通過することを確認する。更新された Java 8 設定を使ってプロジェクトをビルドし、アプリケーションが起動し正常に動作していることを確認する。
  </Card>
</CardGroup>

<div id="choosing-the-right-tasks">
  ### 適切なタスクの選び方
</div>

Devin に任せる内容を決めるときは、次のような特徴を持つタスクを探しましょう:

1. **明確な成功基準**

   * 成功を自動で検証できるタスク
   * フィードバックループが組み込まれているもの (テスト、コンパイル、Lint チェック)
   * 客観的な品質指標があるもの

2. **適切なスコープ**

   * 境界と要件が明確に定義されているもの
   * コードベース内で従うべき明確なパターンがあるもの
   * 目安として、自分なら 3 時間以内で完了できるタスクは特に適しています

3. **反復性の高い作業**

   * 同様の変更を何度も適用する必要があるタスク
   * 単純なスクリプト化が難しいバリエーションがあるもの
   * 参考にできる既存の使用例があるもの

4. **一般的な使用例**
   * 複数パッケージにわたるバージョンアップ
   * テストされていないモジュールへのテストカバレッジの追加
   * ファイルを新しいパターン／標準に合わせて変換
   * 標準的な UI コンポーネントの実装

<div id="split-complex-tasks-into-simpler-sub-tasks-across-multiple-sessions">
  #### 複雑なタスクは、複数のセッションにまたがって、よりシンプルなサブタスクに分割する
</div>

Devin は、複雑なプロジェクトを明確なサブタスクに分解すると、より成功しやすくなります。たとえば、1 回のセッションでアプリケーションコード、テストスイート、CI 設定をアップグレードするよう Devin に依頼するのではなく、これを 3 つの個別のセッションに分けるとよいでしょう。[Devin に管理対象 Devin への委任を依頼する](/ja/work-with-devin/advanced-capabilities#managed-devins) ことで、それらを並行して実行できます。

特に複雑なタスクでは、**セッションが長くなると Devin のパフォーマンスが低下することがあるため**、複数の独立したセッションにまたがって Devin と作業することをおすすめします。

<div id="tell-devin-how-to-check-its-progress">
  #### Devin に進捗の確認方法を伝える
</div>

Devin は、自身の作業を検証するための明確な検証手順が与えられたときに、最大限に力を発揮します。これにより、タスクが正しく遂行されていることを確実にし、潜在的な問題を早期に検知できるようになります。

以下は、Devin が自分の作業を検証しやすくするための、代表的な方法の一部です (網羅的ではありません) 。

1. **テスト要件を明確にする**

   * Devin に特定のテストスイートを実行するよう依頼する
   * どのテストがパスすべきかを定義する
   * 必要に応じてテストカバレッジの指標を要求する

2. **明確なチェックポイントとサブタスクを設定する**

   * 複雑なタスクを検証可能なサブタスクに分解し、サブタスクごとに Devin のセッションを 1 つ開始する
   * 各サブタスクにおいて、成功条件を定義し、必要に応じてサブタスク内のチェックポイントも定義する
   * 各チェックポイント／サブタスクの完了後に、Devin に結果を報告させる

3. **Devin に、作業の確認方法を指示する**

   Devin が正しい方向に進めているかをどのように確認すればよいかを明確にします。例えば:

   * データセットを扱う場合: 「データセットに少なくとも 500 行があり、列 X、Y、Z を含むことを検証する」
   * API を変更する場合: 「エンドポイントがステータス 200 を返し、必要なフィールドをすべて含んでいることを確認する」
   * UI を更新する場合: 「コンポーネントがコンソールエラーなしでレンダリングされ、デザイン仕様に一致していることを確認する」

検証要件を具体的に伝えるほど、Devin は介入なしでタスクを自信を持って進められるようになります。

<div id="be-clear-and-specific">
  #### 具体的かつ明確に指示する
</div>

Devin には、明確で詳細な指示と要件を伝えてください。たとえば、次のようなことを試してみてください。

1. タスクを完了するために必要な主要な手順を明示する
2. Devin に扱わせたい特定のリポジトリ、ライブラリ、ブランチなどを指定する

Devin にとって「当たり前すぎる」指示はありませんが、作業を進める中で必要に応じて確認したり質問したりしようとします。

<div id="use-playbooks">
  #### Playbook を使う
</div>

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

<div id="provide-references-or-examples">
  #### 参考情報やサンプルを提供する
</div>

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

<div id="jump-in">
  #### さっそく始めましょう！
</div>

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