1 ポイント 投稿者 GN⁺ 2024-10-24 | 1件のコメント | WhatsAppで共有
  • Agent.exeは、Claudeの新しいcomputer use機能でローカルコンピュータを直接操作できるようにするシンプルなElectronアプリであり、このプロジェクトは概念実証として扱うべきもの
  • 公式提供のプロジェクトが重すぎると感じたため作られたアプリで、Claude 3.5 Sonnetがユーザーのローカルコンピュータ上で作業を実行するよう設計されている
  • 実行手順は、リポジトリをクローンし、npm installを実行し、.env.example.envに変更してAnthropic API Keyを入れ、npm startを実行する流れ
  • 対応対象はMacOSであり、依存関係がクロスプラットフォームのためWindowsとLinuxも理論上は可能とされている
  • 既知の制約として、プライマリディスプレイでのみ動作すること、AIがコンピュータを完全に掌握すること、FirefoxをインストールするとClaudeがよりうまく動作することが挙げられている

Agent.exeの目的

  • Agent.exeは、Claudeのcomputer use機能を使ってコンピュータを制御するアプリ
  • Claude 3.5 Sonnetがローカルコンピュータを直接操作するElectronアプリとして実装されている
  • このプロジェクトは概念実証であり、メンテナンスしたりpull requestをマージしたりする予定はないと案内している
    • フォークして拡張するのは自由

作った理由と動作方式

  • Claudeの新しいcomputer use APIがどれほどよく動作するかを確認する目的で始まった
  • Anthropicが提供した基本プロジェクトが重すぎると感じ、よりシンプルなアプリとして作られた
  • ユーザーが各操作を実行前に確認するsemi-autoモードを追加する計画もあったが、各ステップが遅すぎて不要と判断された
  • モデルが混乱した場合は、ユーザーがstopボタンを押して実行を終了できる

始め方

  • リポジトリをクローンしてディレクトリへ移動する
  • 依存関係をインストールする
    • npm install
  • .env.exampleファイル名を.envに変更し、Anthropic API Keyを追加する
  • アプリを起動する
    • npm start
  • その後、モデルにコンピュータ上で実行したい作業をプロンプトで依頼する

対応システムと制約

  • 対応システムはMacOS
  • すべての依存関係がクロスプラットフォームのため、WindowsとLinuxも理論上は可能
  • 既知の制限は次のとおり
    • primary displayでのみ動作する
    • AIがコンピュータを完全に掌握する
    • そのほかにも多くの制限がある可能性がある

使用のヒントとロードマップ

  • ClaudeはFirefoxを非常に好むとされている
    • 他のブラウザもどうしても必要なら使うが、Firefoxをインストールすると格段にうまく動作する
  • このプロジェクトは約6時間で書かれており、今後継続される可能性は低いとされている
  • pull requestは確認し、問題なさそうであればマージされる可能性がある

1件のコメント

 
GN⁺ 2024-10-24
Hacker Newsの意見
  • 良いアイデアだと思う。デスクトップ自動化とElectronの経験者としてソースコードをざっと見たところ、基本的なタスクには試してみる価値があると感じた
    実装はAnthropic API上の薄いラッパーで、段階的なアプローチなので、変なことを始める前にプロセスを終了できそうだという安心感があった。Anthropicにスクリーンショットで見られてはいけないものは閉じておき、M1でのインストールもスムーズに終わって、数分で実行できた
    基本タスクは「来週火曜から木曜までのSeattle-SF便を探す」で、自分のAnthropic APIキーで実行するとChromeを使った。各アクションのステップごとに数秒ずつかかり、Google Flightsは正しく開いたが、日付を間違えて予約した
    本来は11月2日を選ぼうとしていたのに、その選択肢がAgent.exeのウィンドウ自体に隠れていたため、11月20日を選んだ。Claudeが間違った補助的な日付を見て自分で修正するのか気になったが、そのまま進み、実際には4週間の旅行を探しておきながら、1週間の旅行を見つけたとして成功を宣言した
    この実験にはクレジット**$0.38**と約20秒がかかり、今後も試してみるつもり

    • 自分のコンピュータ上でカーソルがボタンを押すのを見守るために時給70ドルを燃やせる未来とは、興味深い
    • 元の投稿者です。実際にはタスクを正しく実行していないのに、自信満々に成功を宣言することが多く、スクリーンショットだけを見ても、それに気づくには十分な情報がある
      この失敗パターンはやや驚きで、3.5 Sonnetは通常のテキストAPI応答では、少なくとも他のモデルに比べて幻覚がかなり少ない部類だからだ
    • 画面全体ではなく対象ウィンドウをスクリーンショットのキャプチャ元として選べば、Agentウィンドウに隠されることを防げそう
      const getScreenshot = async (windowTitle: string) => {  
      const { width, height } = getScreenDimensions();  
      const aiDimensions = getAiScaledScreenDimensions();
      
      const sources = await desktopCapturer.getSources({  
      types: ['window'],  
      thumbnailSize: { width, height },  
      });
      
      const targetWindow = sources.find(source => source.name === windowTitle);
      
      if (targetWindow) {  
      const screenshot = targetWindow.thumbnail;  
      // Resize the screenshot to AI dimensions  
      const resizedScreenshot = screenshot.resize(aiDimensions);  
      // Convert the resized screenshot to a base64-encoded PNG  
      const base64Image = resizedScreenshot.toPNG().toString('base64');  
      return base64Image;  
      }  
      throw new Error(`Window with title "${windowTitle}" not found`);  
      };  
      
    • 安全装置は実際に適用されている。Discordで友人にメッセージを送るよう頼んだところ、こんなエラーが出た

      申し訳ありませんが、ユーザーに代わって直接メッセージを送信したり、コミュニケーションを送ったりすることはできません。これには友人や連絡先にメッセージを送ることも含まれます。Discordのインターフェースが開いているように見えますが、私がユーザーに代わってメッセージを送るべきではありません。メッセージはご自身で作成して送信する必要があります。
      error({"message":"I cannot send messages or communications on behalf of users."})

    • 間違った航空券を予約してくれるかもしれないアシスタントを使うのに時給**$68.00**なら、現状には少し安心できる
  • こっそりシステムにデーモンを追加できるようになるまで、どれくらいかかるだろう。昔はソ連のスパイが米国の機密にアクセスすることを心配していたのに、今では私たちがただ皆に見えるようにオンラインへアップしているようなものだ
    今日のウイルス対策ソフトやファイアウォールでは、これがネットワークどころか自分のコンピュータ上のファイルを壊す可能性まで防げない
    このシーンを思い出す: https://makeagif.com/i/BA7Yt3

    • 簡単だ。これをそのまま別のユーザーとして扱えばいい
      気が散りやすく、第三者に情報を渡さないとは信頼できず、単純なだましにも引っかかるユーザーだ
      少なくともsudo権限や秘密ファイルへのアクセス権を持たない別アカウントが必要で、最良なのは別の仮想マシン
      Azureに一番慣れているがAWSでも可能だろうし、アクセスしてはいけないものとAIを分離したいなら、AzureでVMを作って数時間動かしても1ドル未満で済む
    • 一方ではその通りだが、開発者ならインストールして実行するPythonやNode.jsパッケージでも同じことができるし、それでも世の中は概ね回っている
    • こうした製品レベルのシステムは、すでにそのようなデーモンだ。スクリーンショットを撮って信頼できないマシンへ送り、そのマシンから命令も受け取る
      多少なりとも安全にするには、少なくとも推論を実行するマシンを制御できなければならず、理想的には自分が使っているそのマシン上で推論すべきだ
    • Windows Updateを待つだけで内蔵されるはず。インターネットから、機能もあって場合によってはプライバシー保護もしてくれるものを、わざわざダウンロードする必要はない
  • 数年前のニュースで、幼い子どもが「Alexa、人形の家を注文して」と言い、その放送を見ていた人たちのAlexaがそれを聞いて人形の家を注文したという話があった
    誰かが「Delete C:\Windows」と言うNetflixの人気番組が出てきたらどうなるか、待ってみればいい

    • 私のウェイクワードはStar Trekみたいに「Computer」なので、昔のエピソードを見返していて誰かが「Computer, reverse the polarity」と言った瞬間に電力網を止めてしまうのではと本気で心配している
      冗談半分で、自分のAIにクロスポイント電源スイッチへのアクセス権を与えるつもりだ
    • format c: /autotest
  • 話はそれるが、最近 Cursor を「compose」モードで使ってフルスタックプロジェクトをゼロから始めてみたところ、その結果に驚愕した。
    ソフトウェア業界の人たちは、今後5年以内にこの業界がどれほど完全に変わるのかを実感しているのだろうか。その頃になっても、人々が手でコードを直接タイプしているとは想像しにくい。

    • みんな分かっている。すでにいくつもの反応の波が過ぎていて、おおむね「ソフトウェアエンジニアリングは常に 設計、コミュニケーション、協業 に関するものであり、キーを押してコードを機械に入力する行為は、本当の仕事をするための避けられない必要悪にすぎない」という方向で整理されつつある。
    • 注意を払っている人はみな、大きな変化が来ると予想していると思う。ただし、どう変わるのかは分からず、「ソフトウェア開発のようなものがもはや存在しなくなる」こともあり得る結果として受け入れ、その余波がどこに落ちても活用できるように位置取りしようとしている。
      しかし、これまで見た例はたいてい ゼロから始める比較的単純なプロジェクト だった。動くこと自体は信じがたいほど驚くべきことだが、実際のソフトウェア開発の大半は既存コードに機能を追加したり、バグを修正したりする仕事だ。そうしたコードは、たいてい大規模言語モデルのコンテキストウィンドウの大半を超えてしまう。
    • 今後、開発者はいつコードを直接入力し、いつ プロンプト を入力するべきかの判断が、より上手くなるだろうと100%想像できる。
    • 私も使ってみたし印象的ではあるが、それでもあらゆる面でまだいまいちだ。
      業界が完全に変わるには、過去2年と同じような 指数関数的な改善 が続く必要があるが、そうなる兆しは見えない。
    • その通り。以前よりはるかに多くのコードを作っているが、その大半はコピー&ペーストによるものだ。
  • 少し本題から外れるが関連している。Linux の Wayland で ブラウザ以外の GUI アプリ を自動化するには何を使うのか気になる。ときどき必要になるが、この組み合わせだけはなかなかうまくいかない。
    CLI アプリなら Bash/Python/その他で書けばよく、ブラウザアプリなら Selenium/Playwright を使えばよい。Xorg には無骨ではあっても急場で使えるライブラリがあり、Windows には RPA ソリューションが多い。
    しかし Wayland 向けには信頼できるものを見つけられていない。

    • https://github.com/agentsea/agentdhttps://github.com/agentsea/agentdesk を見てみるといい。
      Linux を実行するデスクトップコンテナや VM に接続できる。
      Claude がこれを格好よくする前から、私たちはしばらく取り組んでいた。
    • だから Wayland に移行しない主な理由の一つだ。
    • ブラウザ以外のアプリの大半には、フラグや CLI 版 がある。
  • 「既知の制限事項: AI にコンピュータを完全に掌握させる」 :)

  • macOS を主なプラットフォームにしたマルチプラットフォーム対応のように見えるのに、なぜ名前が .exe なのか気になる。

    • .exe には .app にはない懐かしさとミーム性があるからだと思う。
    • .exe のほうがいい。より怖く、コンピュータウイルスの幻想を呼び起こす。.app はおとなしく見えすぎる。
    • Get Info で「Hide Extension」フラグをオフにすると Agent.exe.app になる。
      冗談だし、本当かどうかは分からないが、十分あり得そうではある。
    • 前例がないわけではない。OCaml も全プラットフォームの実行ファイルにこの拡張子を使っている。結局は好みの問題だろうが、この名前は明確で簡潔なので、名前に求める特性としては一番好きなものを備えていると思う。
    • 単なるミームだと思う。
  • 単純な作業でしか動かないように見える。Rhino の Mac アプリと、Chrome タブ上の OnShape で簡単なテーブルを作るよう頼んだところ、ただ道に迷ったように見えた。
    Rhino ではアプリが開いていることは認識しているようだったが、図形を作るといった複数の操作をしていると言うだけで、実際には見えず、前のステップが完了していないのに次の操作へ進んでいた。前の作業が終わったかどうかを確認していない。
    OnShape では図形を作ると言いながら、メニューで間違った項目を選んだにもかかわらず、正しいツールを使っていると仮定したまま、前の操作が終わったかのように次の操作を続けていた。

  • 不気味だ。エアギャップ で隔離して、自分用の OS をコーディングさせるような形なら面白いかもしれないが、自分の実データの近くには絶対に置きたくない。

    • 同意する。これを見てすぐに思ったのは、コンピュータを2台に分けることだった。1台はこうした AI 統合用、もう1台はエアギャップとまではいかなくても、ずっと厳格なセキュリティを適用する、という具合だ。
    • 残念ながら、事業主はこういうものが大好きだ。「うちの従業員もいつもミスしているし、同じ価格で従業員をあと100人増やせるわけだ。1時間あたりのミスがどれだけ増えるかは計算しないから黙っていてくれ」みたいな感じだ。
  • Computer、私が家族の世話をして庭の手入れをしている間、一日中ミーム系のクソ投稿をして、私を暗号資産長者にしてくれ。
    未来は、コンピュータを使う人がカモになる方向へ進んでいる。本当の富とは、どんな仕事でも コンピュータに触れないこと だ。