Devin AIを使ってみる
Devin AIを契約したので個人開発に使用してみる。
やること
上記リポジトリはPasskeysによるログイン認証を提供している。ここに、World IDによるログイン認証を追加するタスクをDevinにやらせる。
Devin AI利用時に詰まったことTips
公式が用意するオンボーディングのGithub認証がうまく行かない
最初にGithubとの認証を求められるが、個人のリポジトリのみ認証ではオンボーディングが進まない。
所属会社のリポジトリまで認証を求められる。
自分はオンボーディングをスキップして、適時アクセストークンで行うことにした。
本アカウントでアクセストークン発行するといろいろ面倒になる
最初、自分の本アカウントでアクセストークンを発行して、それをもとにDevin側Shellでgh auth login していた。
しかし、権限周りで問題が多発した。
すべてのコントロールを与えるのは避けたかったのでDevin用に別のGithubアカウントを用意して、そちらでアクセストークンを発行することにした。
参考記事
Fine-grained personal access tokensではうまくPRを作成できない
Devin AIからの利用ではFine-grainedではうまく実行できなかった。
Personal access tokens (classic) でアクセストークンを作成する必要があった。
remoteの親ブランチが見つからない
git push時にエラーが発生した。
以下のように明示的に親ブランチが存在しない場合作成するようにしないといけなかった。
$ git push --set-upstream origin feature-branch
参考記事
実際にPRを作成させてみた
DevinにIsuueを与えると、勝手に中身を確認してタスクを実行してくれる。
VSCodeでCodeSpaceにアクセスもできるので、Devin AIの作業途中で手直しすることも可能だった。
適時、情報が足りないときに質問してくれるのでハレーションなく、動作保証まで行うスグレモノだと感じた。
実際に作成したPRはこちら
レビューを行ったあと、Devinに修正を命じると、勝手にレビュー内容を取得して修正コミットを上げてきた。
World IDによる認証を誰が教えたわけではないが、自動で最適なコーディングを行い、PRまで作成していた。
特に他のAIと比べて優秀だと感じたのは、自力でフィードバックを経てコードを改善していく動きであった。ChatGPTでは出したコードの動作保証はできず、随時自分で指摘をして修正を促さないとだめだが、Devinは開発環境を自分で作成してコーディングを行うため自力修正ができていた。
企業利用に適用するとしたら
- IssueにDevin用のアカウントがアサインされたら、Difyのワークフローが起動。
- 自動でIssueのリンクとともにDevinでタスクが走るようにする。Devin APIを利用する。
https://docs.devin.ai/External_API/external-api#authentication
- 自動でIssueのリンクとともにDevinでタスクが走るようにする。Devin APIを利用する。
- Devin側で質問がある場合は、Slack Workflowで通知を飛ばすようにする
- Issueにセッションリンクとともに貼るでも良さそう
- slack上で質問に回答するとDevinに返信が返る or 直接返信できるようにする
- PR作成時にアサインにDevinアカウントを入れて、適切なメンバをレビュワーにアサインする。
- レビューを行うと、自動でDevin が修正を開始するようにする
- 人が修正を行いたい場合もあるため、/devin-fix のようにコマンド作るのでも良さそう。
- approveを行うと、自動でDevinがマージを行い、関連するIssueもCloseできるようにする