Slide 1

Slide 1 text

Devin.aiを使ってみた使用感 2025/01/25 Naka Masato

Slide 2

Slide 2 text

自己紹介 名前 那珂将人 経歴 ● アルゴリズムエンジニアとしてレコメンドエンジン開発 ● バックエンド開発やインフラ構築を経てSREに ● 最近はLLM関連のアプリ開発も GitHub: https://github.com/nakamasato Twitter: https://twitter.com/gymnstcs

Slide 3

Slide 3 text

内容 1. Devin.ai紹介 2. Devin.ai使ってみた例 3. よかった部分👍 4. 1ヶ月まとめ 5. 感想

Slide 4

Slide 4 text

devin.aiとは 1. AI teammate 2. GitHubやSlackと連携 3. 人間のチームメートとしてコード変 更してPR作成 a. 例. 「〇〇の実装をお願いしま す」

Slide 5

Slide 5 text

機能紹介 連携 ● GitHub/Slackの連携 ● タスクのお願い ○ Slackから ○ Web UIのSessionから ○ GitHubから ● Knowledgeの蓄積 ● Playbook ● 実行環境 ○ Repoをクローンさせて、testやlintの実行方法を教えておくとコード変更時にその環境でチェックして くれる

Slide 6

Slide 6 text

実際に使ってみた例:既存のSlack App (Python) の拡張 ● 既存アプリ ○ LLMでGitHubやNotionの検索をして回答してくれる Slack bot ● 改善例 ○ AsIs: GitHub検索はコードを検索して返す機能のみ ○ ToBe: GitHubのPRの確認もできるようにしたい Slack App GitHub API Notion API OpenAI API Slack

Slide 7

Slide 7 text

トライ1: 愚直にお願いする

Slide 8

Slide 8 text

トライ1: 愚直にお願いする 1. まずはPlanをしてくれる 2. Specの確認をしてくるのはすごい👍 →とりあえず「Open PRがある?」とか聞いて あったらリストしてくれる簡単なのを指定

Slide 9

Slide 9 text

トライ1: 愚直にお願いする 1. コードを読んで実装プランをだして くれる 2. 既存のツールに似た新しいツール を作って supervisor_graph.pyまで 作ってくれるとのこと 3. mdで詳細のタスクプランをくれる (略)

Slide 10

Slide 10 text

トライ1: 愚直にお願いする 実装範囲が広そうだったからちょっと指示を 追加。 1. 〇〇(既存の実装)の中で実装できると いい 2. graph_github.py(うろ覚えのファイル 名) の中だけの変更

Slide 11

Slide 11 text

トライ1: 愚直にお願いする PRができた!🎉

Slide 12

Slide 12 text

トライ1: 愚直にお願いする 1. PR Description いい👍 a. Changes b. Devinのリンクも 2. PRにCommentしたらそれに対応して くれる。対応不要の場合は “(aside)” を コメントに書く。 3. CIの失敗も直してくれる! CI通ってる🎉

Slide 13

Slide 13 text

一見よさそうだったが...

Slide 14

Slide 14 text

トライ1: 愚直にお願いする - 関係ないところを直す❌ libs/utils.pyのような今回の「PRの状態に関しても質問できるようにしてください」のお願 いなのに勝手にリファクタしてる。 「関係ないところはいじらないで」とか言わないとだめか...

Slide 15

Slide 15 text

トライ1: 愚直にお願いする - 実装が...❌ 1. gh.pyに何故か relative_time(しかも日本 語)から dateを取得する関 数を実装 2. ”先月”を文字列比較する ハードコード😁

Slide 16

Slide 16 text

トライ1: 愚直にお願いする - 実装が...❌ これも “open pr”と “merge ” など文字列比 較 😁 確かに例としてあげたけど... そんなに直接 実装は...😅

Slide 17

Slide 17 text

それなら Slack / PR Comment でお願いして直してもらおう 💪

Slide 18

Slide 18 text

トライ1: 愚直にお願いする + 修正依頼 たくさんコメントして...

Slide 19

Slide 19 text

トライ1: 愚直にお願いする + 修正依頼 → コード提案 最終的に結局自分でコードをSuggest😂 「自分で書いたほうが早くね?w」

Slide 20

Slide 20 text

だめでした😵

Slide 21

Slide 21 text

諦めずに2,3回続けましたが、 結果はほとんど同じ...

Slide 22

Slide 22 text

今までのコストが気になる..

Slide 23

Slide 23 text

コストは? 1. 月に500USDで250 Agent Compute Unit 2. 先ほど紹介した例: 44.75 ACUs つまり...

Slide 24

Slide 24 text

44.75 ACU = 89.5 USD ≒ 14,000円🤑

Slide 25

Slide 25 text

これでは終われない... まだACU (Agent Compute Unit)はある💪

Slide 26

Slide 26 text

トライ2: 細かい簡単なタスクをお願いしよう! 変更ファイルと実装内容を明示的に指定!

Slide 27

Slide 27 text

できてる 👍 1.05 ACU = 2.1 USD ≒ 330円 👍

Slide 28

Slide 28 text

ここから細かいタスクを 一気にこなすようになる🏃

Slide 29

Slide 29 text

例2. このretrieve を retrieve_code に変更してください👍 0.57 ACU = 1.14 USD ≒ 180円 👍

Slide 30

Slide 30 text

例3. LanggraphのNodeとEdge追加👍 1.69 ACU = 3.38 USD ≒ 534円 👍

Slide 31

Slide 31 text

同様に続けて 1. LinkをMetadataに追加 2. ContextにMetadataを追加 3. RAG時に使うExampleの追加 を別々にお願いしてすべてクリア✅ それぞれ 1. 0.72 ACU = 1.4 USD = 221円 2. 3.91 ACU = 7.8 USD = 1,232円 3. 1.18 ACU = 2.4 USD = 380円 ちょっとやり取りが発生すると高 くなる

Slide 32

Slide 32 text

結構使えた🎊 最初だめだったのは使う人 の問題もあった😅

Slide 33

Slide 33 text

学び: 最初にDevin Introに書いてある強みを読む https://docs.devin.ai/get-started/devin-intro

Slide 34

Slide 34 text

良かった1👍: Slackのスレ一個に情報が集約 お願い→プラン→PR作成→PR状態報告が1スレでできるのが最高!

Slide 35

Slide 35 text

良かった2👍: knowledgeの蓄積のSuggest 自動でKnowledgeの蓄積をSuggestしてくれる!

Slide 36

Slide 36 text

良かった3👍: タスクに使ったコストが明確 1. どのタスクにどれだけコストが かかったか計算が楽! a. ACU x 2 USD 2. ツールとしての評価がしやす い

Slide 37

Slide 37 text

約1ヶ月まとめ 1. 使用ACUs: 167.34ACUs 2. Session (=依頼数): 29件 a. Merged PRs: 22件 b. Merge出来ずclosed: 6件 c. 残り: Slackからの依頼 3. Knowledge a. 6件 (重複もあるので実質 4件) b. 例. レポノート、テストの実行方法、特定のファイルの用途 (GitHub APIの実装ファイル) etc. 4. Playbook a. これは活用出来てない

Slide 38

Slide 38 text

個人的な感想 1. 丸投げはまだ無理 a. 実装の中身を知らない人が AIでコードを書こうは出来なそう 2. スコープをうまく絞る必要がある a. 使う人は慣れ&スキルも必要 b. 実装を全部知ってる人が、ここ直したいというのを指示するのが良さそう (ローカルでのgit, lint, test, PR作成/確認などのの手間をなくせる ) 3. 単純なケースは役立つ a. Refactorは役立つ b. やりたいことが明確だけど時間がなくて出来てない部分が進む 4. 少人数で高頻度の開発を行っている組織に向きそう a. 大規模組織だと全員が学習するとお金がかかってしまいそう(自分のケースだと 2万円近く結果ので ないPRと遊んでしまった😁)

Slide 39

Slide 39 text

最後に SWE-benchのリーダーボード https://www.swebench.com/ ここから動向を追いかける事がで きる 自分がちょっと見た&使ってる ● https://github.com/OpenAut oCoder/Agentless ● https://devlo.ai/

Slide 40

Slide 40 text

ありがとうございました!