> ## 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 Desktop で高品質なコードを得るための、明確な目的、前提情報、制約を含む効果的なプロンプト作成のベストプラクティス。

このページを読んでいる方は、LLM のユースケースや限界をすでにある程度理解していることでしょう。モデルに与えるプロンプトと前提情報が適切であるほど、得られる結果も良くなります。

Devin Desktop でも同様に、ツールを最大限に活用し、ワークフローを加速できる高品質なコードを得るには、より効果的なプロンプトを作成するためのベストプラクティスがあります。

<Tip>特定のコードブロックを [@-Mention](/ja/desktop/chat/overview#mentions) する必要がある、より複雑なタスクでは、[Command](/ja/desktop/command/plugins-overview) ではなく [Chat](/ja/desktop/chat/overview) を利用してください。</Tip>

<div id="components-of-a-high-quality-prompt">
  ## 高品質なプロンプトの構成要素
</div>

* ***明確な目的または期待する結果***
  * モデルに何を生成してほしいですか？
  * モデルに求めているのは、プランですか？新しいコードですか？それともリファクタリングですか？
* ***タスクの実行に必要な、関連する前提情報***
  * 必要な前提情報が含まれるように、@メンションを適切に利用しましたか？
  * 顧客固有の前提情報で、Devin Desktop には伝わりにくいものはありますか？
* ***必要な制約***
  * 必ず利用しなければならない特定のフレームワーク、ライブラリ、または言語はありますか？
  * 空間計算量や時間計算量に関する制約はありますか？
  * セキュリティ上の考慮事項はありますか？

<div id="examples">
  ## 使用例
</div>

***例 #1:***

* **悪い例**: Order Book オブジェクトのすべてのテストケースに対する単体テストを書いてください。

* **良い例**: `@class:unit-testing-module` を使って `@func:src-order-book-add` の単体テストを書き、ストップロスの上限または下限を超えた場合に送出される例外を検証してください

***例 #2***:

* **悪い例**: rawDataTransform をリファクタリングしてください。

* **良い例**: `@func:rawDataTransform` をリファクタリングし、while ループを for ループに置き換え、`@func:otherDataTransformer` と同じデータ構造を出力するようにしてください

***例 #3***:

* **悪い例**: Contact Form 用の新しい Button を作成してください。

* **良い例**: `@class:ContactForm` 用の新しい Button コンポーネントを作成し、`@repo:frontend-components` のスタイルガイドに従って「Continue」と表示してください
