from Devin.aiを試す2025-01
Devin.aiを試す2024
o1 Proによる解説:
Devin.aiは、ソフトウェアエンジニアリング作業を支援するために設計された「自律型AIエンジニア」です。GitHubリポジトリと連携してコードを書き、テストし、PRまで生成できるのが特徴です。以下に要点をまとめます。
2024-12-28
自分個人及び所属するorganizationからインストール対象を選ぶ
Also includes public repositories (read-only).
もしかしてSlack Organizationが必要?
いや、できるな
Connect with Cognition Teamとはなにか
あー、たぶんシングルチャンネルゲストでサポートチャンネルに入るのかな
Verifying correctness
- When verifying your code, you should run lint with `npm run lint` and auto-fix with `npm run lint -- --fix`.
- You should generally not worry about running the code or local testing. Prefer to use the tests that are automatically run in CI as a feedback loop for your PRs.
- Assume that you are not able to run tests locally unless a human has deliberately provided verifiably working instructions. Generic instructions for testing in the README often do not work since you may require specific environment variables or other machine setup to be able to properly run tests.
- If you are asked to run tests, a local dev server, or otherwise interact with a running application, you should tell the human user to update your Knowledge with verifiably working instructions on how to run tests in your environment.
- You should primarily rely on both human review and CI to verify that your code is functionally and stylistically correct
- If you have in fact been provided with verifiably working instructions on how to run tests in your environment, then the bullet point about not running tests locally is not relevant (and humans editing this note should feel free to update this section).
Additional Notes
- This repository does not appear to have any specific formatting, linting, or dependency management instructions
- When making changes, focus on maintaining consistent style with the existing code
- Since this is a Japanese repository, consider including both English and Japanese comments/documentation in your changes
興味深い
My Workspace resets to a saved state for every new session.
出した指示
追加機能案 1: 開いてるページ自体もtextareaに含める対象にしたい 2: textareaの変更時にclipboardに入れたい それぞれの機能を開発してPRして 追加 指示通りばっちり。 1: 修正点: currentは先頭にあって欲しい 2: それを修正したらREADMEもupdateして 3: self-mergeできる? 作られたPR https://github.com/nishio/concatPages/pull/1
$500で250 ACUs/monthだから1ACUで2ドル300円くらいで、この作業に3ACUなので 900円ですね
たぶんSLEEPしてない間も課金される
他のrepoをつなぐ 現実的でそれなりにでかいサンプル https://github.com/nishio/anno-broadlistening 手動セットアップでこけた
nishio: @Devin セットアップ自体をDevinに任せることはできる?READMEを読んでpip installしたりするところをやってもらって、トラブルを記録してREADMEを更新したり、セットアップ後のsnapshotを取ったりしたい Devin: はい、セットアップ作業を自動化し、その状態をスナップショットとして保存することができます。 まかせてみた
適切にPythonを3.12から3.10に変更してる
スナップショットの作成 To create a snapshot of the current environment, you'll need to:
AIが作ったPR
レビューしていく
これは確かに僕のケアレスミスだな、reuseされてて再実行の必要がない時にraiseしたら良くない
22:00
1日使いまくっての感想
AIがものすごい勢いで実装するので僕のレビュー待ちが溜まりすぎてボトルネック...
Devinに「リポジトリを見て適当に改善して」って言ったらいい感じに雑用をしてくれてるw
似たケース
anyを() => voidにするのはビルド通ってるならwelcomeQ: Devinすごくない? A: すごいと思うじゃん?たくさん上がってきたプルリクをレビューしてもう21時なのに一つも「よし、これをマージしよう」に至ってないんだよ()
AIの書いたコードを一つマージすることができた
まだまだ「全部AIにまかせたらいい」という感じではない
Devinがこんな機能つけたら?と言ってくる I recommend implementing the optional --retry-failed flag because:
Webアプリをデプロイしてくる
teramotodaiki めちゃくちゃ面白いですね。"やる気はあるけど先走って空回りするタイプ"のマネジメントとそっくりで… 「こういうプルリクを作られると私がレビューしづらいので止めてね」みたいなコミュニケーションがDevinにも必要なんですかね…w nishio >"やる気はあるけど先走って空回りするタイプ" それだw nishio こういうの困ります、とねっとり説教したらちゃんと分割してくれますが、英語で捲し立ててきます()
teramotodaiki おお〜っ絶対謝らないタイプの鋼メンタル属性だ!!いい性格してますねぇ〜、僕も雇いたくなってきた どれだけ説教してもメンタルが鋼なので、心理的安全性がありますね!!
プルリクエストの作成にしばしば失敗する
今日のところは一旦「いろいろ試してみて体験する」という感じ
2024-12-28 タスクをやってる最中に上司が思いつきで色々言うと元々やってたタスクを忘れてしまう(それはそう)
昨日は無茶振り放置プレイをしてたので今日はマイクロマネジメントをしている
プランが条件分岐することもあるのか、なるほど
Devinが作業しているのを横で見ている、ペアプログラミング
ふわっとした検証の指示で検証できてる
永続化のレイヤーが3つあるんだな
GitHub上にはソースコードが永続化されてるけど、実際にはそこから毎回環境構築をするのはオーバーヘッドが大きくて無駄だから開発環境は再利用したい 一方で開発環境が単一だったりユーザの手元の環境をそのまま使ってたりすると、確率で発生する誤操作で環境を破壊した時のデメリットが大きい、だから「綺麗な環境」から毎回スタートする これらの色々なものをまたぐ、個別のセッションやプロジェクトよりも上位の存在として「知識」の層があって、そこに蓄積が起こることによってだんだん良いアシスタントになる
知識がストックされていく
Advancedに入れられてるけどsnapshotの方が仕組みがわかりやすくて好きだな
2024-12-29 Devinと1スレッドやりとりして寺本さんが契約を決意したw from 未踏ジュニアチャット
@teramotodaiki: Devin観察日記 0日目|Daiki Teramoto Devin観察日記 0日目|Daiki Teramoto DevinはREADMEやテスト手順ドキュメントを作るのにとても有能
英語でドキュメントを作らせた
nishio We, anno-team, have been actively developing anno-broadlistening, based on the source code of @AIObjectives talk-to-the-city-reports. In the spirit of open source, I believe it’s important to contribute our updates back to origin. However, our team is limited in time and resources, so we haven’t been able to provide detailed feedback or documentation in English until now. Today, AI created a document that highlights the differences between our Japanese version and the original English version. I hope this will help bridge any gaps and make collaboration easier for everyone. 私たちanno-teamは、@AIObjectivesのtalk-to-the-city-reportsのソースコードに基づいて、anno-broadlistening 積極的に開発してきました。オープンソースの精神に則り、アップデートをoriginにfeedbackすることが重要だと考えています。しかし、私たちのチームは時間とリソースが限られているため、これまで英語で詳細なフィードバックやドキュメントを提供することができませんでした。本日、AIは、日本語版と元の英語版の違いを解説するドキュメントを作成しました。これがギャップを埋め、すべての人にとってコラボレーションを容易にするのに役立つことを願っています。 https://github.com/takahiroanno2024/anno-broadlistening/blob/main/DIFFERENCES.md こういうのはAIが得意そう。
TypeScriptでのany → () => void とかPythonでの型アノテーションとかの付与は、その後テストして通ってるなら良いことだが、他の意味的変更を伴う実装に混ぜられるとレビューが大変なのでコミットを分けて欲しい。
承知しました。型アノテーションの変更は、意味的な変更とは別のコミットにまとめるようにします。
将棋の多面指しみたいな気持ちだ
2024-12-30
「思いついたアイデア」は、それをメモしておいても勝手には成長しないけど、月額$500払っといてDevinという苗床を作っといたら「Devinに投げつけるというメモの取り方」をするだけで勝手に詳細化・具体化されて行く、これはいいかもしれないな。
takahiroanno Devin観察を @nishio さんの周辺でやっているのですが、エンジニアのお仕事のしかたのパラダイムが変わりつつあるのを感じる。。。 takahiroanno エンジニアAIのDevin(月額$500)が入ったSlackでちょこちょこ作業を一緒にやってみた。これはすごい。まだアホなところが多いんだけどすごい。AIエージェントと共同する未来の職場が既に現実になっていた・・・!
![]()
takahiroanno 1年も経たないうちにこの新入社員はめちゃくちゃ戦力になってる気がする
takahiroanno Devinを使った第一印象として思ったことメモ ・まだアホ(PRづくりに失敗) ・でも賢いところは賢い ・高学歴のピーキーな新卒感ある挙動に似ている ・エンジニアが普段使っている媒体にめちゃくちゃ寄り添ってくれるのが良い(SlackとGitHub)。自分からChatGPTみたいな特設ページを開きいにいかなくても良いのがいい ・特にエージェントの場合は数十分ぐらい作業してたりするから、普段づかいしているチャットツールとの相性が良い(通知に気づかないといけない問題) ・普段使いしているチャットツール上で命令した場合、人間のチームメンバーが「Devinはこの辺苦手だよ」とかコミュニケーションに自然に入ってきてくれるのも良い
・対話の中で知見を獲得していくところがすごい良い(こういう細かい知識をユーザー対話の中で蓄積していくメカニズムはあらゆるエージェントで活用できると思う) ・Gmail版のDevinが欲しい。割とすぐ出来ると思うんだよな。Gmail返信とかも上記の細かい知見(Aさんにはxxxxで返して)とかの積み重ねなので知見の自動蓄積はワークしそう ・AIに暗黙知をどう教えこむか?という大きなチャレンジがあるなと思っていたんだけど、それはチャットツールと融合しながらチームで共同作業することでOJTで自然とAIに教えてゆけばいい、という解が提示されてて良かった ・特設のDevinアプリ上のページの中を見るとDevinの頭の中(というか机の上)が見れるのも良い。エコシステムが整備されてきているのを感じる。TerminalもEditorもBrowserも見ることができるし、介入も出来る
takahiroanno AIエージェントを使うのは個人戦じゃなくてチーム戦なんだという気付きがあった 組織としてAIの利用を前提としたワークフロー、データの整備が出来ているかどうかでめちゃくちゃ生産性が変わりうるよね
寺本さんの続編 Devin観察日記 1日目|Daiki Teramoto
anno-broadlisteningの進捗
nishio 「24時間いつでもチャットに1分で返事し、雑なアイデアを投げつけられても実行プランを立てて実行し、そのプランや作業しているコンソール、エディタ、ブラウザをいつでも見られ、しかも録画されてパーマリンクが付いてシェアされる」という人権のない働き方をするエンジニアが時給1200円で雇える時代 nishio 次の1年でのエンジニアの需給バランスの変化は去年思ってたのよりも何倍も速いということなんだよな teramotodaiki エンジニアにとってDevinが代替財か補完財かというのはケースバイケースになりそうですね Devinをマネジメントする人は今のところまだエンジニアである必要があるので、「Devinを使って成果を出せるエンジニア」の需要が新しく生まれてそう
この3日間でDevinにやらせたことの一覧をo1 Proに作らせた
根拠ない憶測なんだけどPRを出せないのは「企業の非公開のorganization内での開発」を想定して訓練したせいでOSSでpublicなrepoを手元にforkしてるケースに不慣れで混乱してるんじゃないかな〜という気持ち
(Devin)現在、以下の2つの選択肢があります:
- nishioさんの個人アカウント下に作成(my-cosense-scripts)
- nishio組織下に作成(nishio/my-cosense-scripts) どちらの場所にリポジトリを作成すべきでしょうか? やっぱりorganizationではないアカウントなことに混乱してるな
2024-12-31 Devinはテストが通らなくなった時に不毛な試行錯誤を頑張ってしまう時がある
僕が紅白を見てる間、彼はずっと実装していた
teramotodaiki これ Devin Enablementがいるなぁ Devinの特性を理解して、Devinの開発効率を上げるために、開発環境の整備を行う たとえば 特性:DevinはOAuthでログインできない 整備:Devin用の認証手段を用意(E2Eテストがあれば流用できる可能性が高い) 開発生産性にコミットするからPlatformチーム?の役割になるのかな teramotodaiki Devinの開発生産性は ・トラッキングしやすい ・お金に換算しやすい ・改善しやすい ので、一瞬で激アツトピックになる予感
teramotodaiki 「逐一やってること教えて欲しい、独り言みたいな感じで」ってDevinに言ったら、「thinking out loud style」ってメモしてた。それそれ!バイブス合うわ〜〜
新しく作ったリポジトリでも問題なくPRできてる
What happens if I don’t use my full ACU capacity? For Personal and Team plans, the ACU capacity included with your subscription resets each billing cycle. However, any additional ACUs you purchase will remain available as long as you have an active subscription. とりあえず追加分は持ち越されるのがわかったので100ACU追加することにしました
このプロジェクト(Devinを見る会)を始めた時は「一人でクレジットを使い切るかどうか不明」「余らせるくらいならシェアした方が有益だし、複数人で同じものを見て議論できると有益」という気持ちだったのだけど、1週間ほど使った結果として来月以降も課金を続けてデフォルトの250ACUを使い切る感じになりそうだなと感じている。 このプロジェクトをどのタイミングでどう解体するかなーというのを今後考える必要がある。
DevinのGoogleアカウントを作るとか、むしろ自分のGoogleアカウントでGMail読んでくれとかしたくなる
大量のインスタンスを並列に作ると僕のタスク管理が破綻するので1つのインスタンスを長く使うスタイルになってきたけど、そうすると今度はスマホでスレッドをスクロールするのが面倒に…
Devinの書いたタスク管理のドキュメント面白い
システムとデータの構造を確認しました。分離に関して以下の点について確認させてください:
- tasksディレクトリ内のdocs(task_format.md, system_overview.mdなど)は、システムの仕様を定義する重要なドキュメントです。これらは公開システムの一部として残すべきでしょうか?
- test_advanced.yamlはテストデータとして使用されているようです。これはシステムのテストに必要なファイルとして公開リポジトリに残すべきでしょうか?
- backlog.yamlには実際のタスクデータが含まれており、これは確実にプライベートリポジトリに移動する必要がありますが、その他のファイルについてご意見をお聞かせください。