NISHIO Hirokazu[日本語][English]

Devinをたくさん並列で使うと効率よく頭がパンクする

from 日記2025-03-26 Devinをたくさん並列で使うと効率よく頭がパンクする

DevinのACU消滅期限が近かったので盛大に使ったのだけど やはりDevinをたくさん並列で使うと効率よく頭がパンクする 2〜3個が限界な気持ち

それがなぜなのかを考えつつ夕食を買いに行ってきます

速度と並行数を区別して考えないといけない 速度をあげる目的だと1人の人間がシングルスレッドで集中してクラインとかを使っている状態が最速だろうと思う。

オープンソース開発は並行数を上げる。 僕がアジュールのAPI側を直している間に、別の人がアジュールをデプロイするメイクファイルを作っていたのは、まさに並行数が上がっている。

オープンソース開発は、ワーカーがいつ起動して、どのタスクをつかむかが保証されない並行処理。 これはデビンを使っている時と結構似ている。デビンはこれをやってと言った仕事をやってくれるが、やってるかなと思ったらつまずいて止まっていたりする。見てない間に見当違いの方向に走って行ったりもする。

並行性(へいこうせい、英: concurrency)とは、計算機科学において、時間的にオーバーラップして実行される計算を伴うシステムの属性であり、そのような計算ではリソースを共有することがある。

オープンソースのワーカーは期待した作業をしてくれない。しょうがない。 だから作業の機会を作るけども誰かがその作業をすると期待してはいけない。 なので、究極的には自分が実現したい目的のために必要なラインの上のタスクをこなしていくことになる。 そのライン上のものは、他の人がやってくれると期待せずに全部自分でやる覚悟が必要だが、一方でたまに他の人がやってくれて自分の作業が楽になる。この時はとてもありがたい。 Devinには何をやってくれと指示することができる。でてきた成果がそのまま受け入れ可能な状態であることを期待してはいけない。将来的には期待できる確率が上がるかもしれないが、現状は着地点から修正をすることが必要になる。これに関しては過去に2つ図を書いた。

なぜ混乱するのかに関しての考察

  • タスクの切り替え時に他のタスクが進展しているのを見てしまう。
  • タスクの切り替え時に混乱することがないようにコンテキスト情報を管理しながら進むのはもっと遅い進み方になる。
  • 1人で作業している時、その必要性を過小評価してしまう。それは今まで1人で作業しているときの並行数が小さかったから
  • なので、誤ってコンテキスト情報を永続化する作業をしないままタスクのスイッチをしてしまう。
  • これによってコンテキスト情報が失われて混乱が発生する。
  • 本質的には、チーム開発をするときに発生してるオーバーヘッドと同程度のオーバーヘッドを支払って、コンテキスト情報を永続化することが、AIエージェントと働くときには必要になるのではないか
  • 「一人で作業している」と誤認してしまうが、これは人間一人AIたくさんの「チームで作業している」と考えるべきなのでは
  • シングルスレッドでクラインを使って開発するのはペアプログラミングをしているのと同じ状況だよね。Devinの画面を見ている時も同じ
  • タスクスイッチのコストが低すぎてすぐにできてしまうからやってしまう、タッチパッドでジェスチャーするだけで仮想デスクトップが切り替わってしまう。
  • しかし現実世界のメタファーで言うと会議室Aで同僚Aとペアプロしてて同僚Aが考え込んでる隙に0.5秒で会議室Bに移動して同僚Bの画面を見てペアプロを開始するみたいなもので、そこは間に頭の切り替え時間を挟む必要があるのでは

メモ

  • 紙のメモやiPadの手書きメモではURLが紐づかない
  • ブラウザのタブを開いておくことでAI反応待ちの状態を表現
    • しかしタブのアイコンでは何のタスクかわからない
      • 状態もよくわからない
    • 目的のものを開こうとして別のものを見てしまう
      • AIから返事が返ってきているのを見るとそのタスクの続行に気を取られてしまう

タスクに基づいて仮想デスクトップ内にすべての必要なウィンドウを集めるべきか

  • 仮想的な部屋
  • Misson Controlの仮想デスクトップは16枚まで出せるそうだ
  • https://pc.watch.impress.co.jp/docs/column/macinfo/1424767.html
  • アプリを特定のデスクトップに紐づけることができるのか
    • とはいえアプリ単位だな
    • ブラウザの中でいろいろなものが立ち上がってる状況には向かない
  • 2025-08-17 追記
    • その後XREAL Oneを購入してどこでも3画面くらい出せるようになった
    • 一つのタスクの塊がその仮想デスクトップの中に収まっているときは快適
    • すぐ2つ目の仮想デスクトップを作りたくなってしまう、これは短期的には良い感じがするが、長期的には混乱する

全画面表示したブラウザでタブをたくさん開くとMission Controlが聞かない

  • 別々のウィンドウで開いたほうがいい?

人間がClineを使ってるときは共有メモリな感じがある そして人間のメモリは占有されてる

Devinは人間が見てなくても作業を進めるのだけど Cline的に見ることもできてしまう

何か自分でないプロセッサにタスクを任せていて、それが失敗したり入力待ちでブロックされているとき 通知がないと頻繁に見に行かないといけなくなるが、 通知で自分に割り込みをかけて欲しくないし、 つまりこれは通知がイベントキューに入るべきで、 人間は都合のいいときにキューを見に行って処理をする

ツールによる競争条件の変化


(C)NISHIO Hirokazu / Converted from Markdown (ja)
Source: [GitHub] / [Scrapbox]