Devin、Devinはいいぞ!
Devin使うの良過ぎてロゴ回してる
はじめに
この記事はたまーに更新されます。
何か良い方法、「自分はこんな感じで運用しているよ!」みたいな話があれば、コメントください!
心構え
AIを使う上で、100%理想的なコードが返ってくるとは期待していません。
プロンプトをガチガチに書いて、AIに読み込んで〜という作業をするのは逆に時間と労力とTokenを使ってしまうからです。
なので、私はドメイン関連は7〜8割、UI関連は5〜6割程度の精度で出力されれば十分だと考えています。
残りの部分は手動で修正することを前提として利用しています。
具体的なプロンプト
Issueを元にPullRequestを作成
Issue をベースに、Devinにどのように修正するか方針を決めてから Pull Request を作成してもらいます。
これによって、Devin との実装上の違い、認識の齟齬が生まれにくく、Pull Requestを作成した後の
うーん、なんか微妙だなぁー
を生まれにくくします。
Issueの中身は、なるべく細かく書くようにしています。
- 概要や目的
- ゴール、実装イメージ
- 関連するファイルのリンク
- 関連するIssue、PullRequest
イメージとしては、誰かにIssueを依頼できるくらいの粒度で。
Issue を作成したら Devin Agent に仕事をふります。
以下のプロンプトだと、Issueに詳細な実装計画を出力してもらえます。
以下のIssueに対応するための方針を考えてIssueに対してコメントしてください。
[Issueに関するURL]
具体的なコードや変更箇所を示しながら詳細なコメントを記載してください。
また、まだPull Requestの発行は行わないでください。
作成されたコメントに対してOKの場合は、Pull Requestを作成してもらいます。
この時、ブランチやPull Requestに対してオプションをつけると良いです。
ブランチ名を指定、draftでPull Requestを作成して欲しい場合は以下の通り:
良いと思います。Pull Requestを作成してください。
ただし、以下の点に注意してください。
- ブランチ名は、`[任意のブランチ名]`
- Pull Requestは、draft で作成してください
そのほか、
- タイトルは「OOの修正」にしてほしい
- PullRequest の中身は以下の通りにしてほしい
などをするとより良い、PullRequestを作成できると思います。
- 適切な粒度でコミットしてほしい
とすると、通常は1つのコミットに全ての変更内容を入れますが、分割してコミットしてくれます。
また、「コミットメッセージは日本語」「英語でコミットメッセージを書いてください」などにするとその通りのコミットメッセージを入力してくれます。
修正前提の運用の場合、git reset git revert がこれでやりやすくなると思います。
また、レビュアーの負担軽減にも繋がると思います。
以上のことをやると、実装の仕様や修正しようとしている箇所の確認をしつつ、良い感じで PullRequest を作成してもらえます。
Q, 理想としては、Devinではなく、自分が作ったようにしたいのですが、やっぱ無理かなぁとか思いつつ
この件に関しては良い情報を得たので、別の記事で書きます。
