[論文紹介#205]オープンハンズ:AIソフトウェア開発者のための一般的エージェントとしてのオープンプラットフォーム

OpenHands: An Open Platform for AI Software Developers as Generalist Agents

この論文は、AIソフトウェア開発者向けのオープンプラットフォーム「OpenHands」を提案し、AIエージェントが人間の開発者のようにコードを書く、コマンドラインと対話し、ウェブをブラウジングする能力を持つことを目指しています。

OpenHandsは、プログラマーのようにコードを生成し、実行できるAIエージェントを開発するための柔軟なプラットフォームであり、特に安全なサンドボックス環境でのコード実行と複数エージェントの協働を可能にする点が特長です。

論文:https://arxiv.org/abs/2407.16741
リポジトリ:https://github.com/All-Hands-AI/OpenHands

以下は、LLMを用いてこの論文の内容を要約したものになります。

概要

ソフトウェアは、私たち人間が利用できる最も強力なツールの一つであり、熟練したプログラマーが世界と複雑かつ深い方法で相互作用することを可能にします。同時に、大規模言語モデル(LLMs)の改善により、周囲の環境と相互作用し、変化をもたらすAIエージェントの急速な発展も見られます。

本論文では、OpenHands(旧称OpenDevin)を紹介します。これは、プログラマーのようにコードを書き、コマンドラインと相互作用し、ウェブをブラウジングすることで世界と相互作用する強力で柔軟なAIエージェントを開発するためのプラットフォームです。このプラットフォームは、新しいエージェントの実装、安全なコード実行用のサンドボックス環境との相互作用、複数のエージェント間の調整、評価基準の組み込みを可能にします。

現在組み込まれているベンチマークに基づいて、ソフトウェア工学(例:SWE-BENCH)やウェブブラウジング(例:WEB ARENA)を含む15の挑戦的なタスクに対するエージェントの評価を行います。MITライセンスの下でリリースされたOpenHandsは、学界と産業を超えたコミュニティプロジェクトであり、188人以上の貢献者から2.1K以上の貢献を受けています。

オープンハンズ:AIソフトウェア開発者のための一般的エージェントとしてのオープンプラットフォーム

1. はじめに

1.1 背景

本論文では、OpenHandsというAIエージェント開発プラットフォームを紹介します。このプラットフォームは、AIエージェントが人間のソフトウェア開発者と同様にコード作成、コマンドライン操作、ウェブブラウジングを行うことを可能にします。近年の大規模言語モデル(LLM)の発展により、AIエージェントはより複雑なタスクを実行する能力を向上させています。

1.2 目的

OpenHandsの主な目的は、AIエージェントと特化型エージェントの開発を促進することです。具体的には、以下の機能を持っています:

  • ユーザーインターフェース、エージェント、環境間のインタラクションメカニズム
  • Dockerサンドボックスを用いた安全な実行環境
  • エージェントが人間のソフトウェア開発者のように環境とインタラクションするインターフェース
  • 複数エージェントの協調作業
  • 幅広いタスクに対する評価フレームワーク

2. OpenHandsのアーキテクチャ

2.1 エージェントの定義と実装

OpenHandsにおけるエージェントは、環境の状態を感知し、ユーザーの指定したタスクに基づいてアクションを生成します。エージェントは、過去のアクションや観察を含むイベントストリームを利用して状態を管理します。例えば、IPythonRunCellActionCmdRunActionを用いてPythonコードやbashコマンドを実行します。

2.2 エージェントランタイム

エージェントランタイムは、エージェントに人間の開発者と同等のアクションスペースを提供し、各タスクセッションごとに安全に隔離されたDockerコンテナを起動します。この環境内で、エージェントはアクションを実行し、その結果を観察として返します。

2.3 エージェントスキル

AgentSkillsライブラリは、エージェントの能力を拡張するためのユーティリティ関数を提供します。このライブラリを通じて、コミュニティメンバーは新しいツールを容易に追加でき、エージェントの機能を強化します。

2.4 エージェントの委任

OpenHandsでは、エージェントが特定のタスクを他のエージェントに委任する機能を持ち、これにより異なる専門性を持つエージェントが協力して複雑なタスクを解決できるようになっています。

3. エージェントハブ

OpenHandsは多様なコミュニティからのエージェントをサポートし、ユーザーが特定のタスクに最適なエージェントを選択できる基準を提供します。特に、CodeActエージェントは自然言語で対話しながらタスクを実行する能力を持つ汎用エージェントです。

4. 評価

OpenHandsは、エージェントの進捗を追跡するために15の確立されたベンチマークを統合しています。これにより、ソフトウェアエンジニアリングやウェブブラウジングなどのタスクにおけるエージェントの能力が体系的に評価されます。具体的には、CodeActエージェントがSWE-Benchで競争力のある解決率を記録し、ウェブブラウジングタスクでも効果的にユーザーの指示を遂行しています。

5. 結論

OpenHandsは、AIエージェントがソフトウェアインターフェースを介して世界とインタラクションするための強力なプラットフォームを提供します。これにより、エージェントの安全な開発と評価が促進され、AIシステムの研究革新と実世界の応用の加速が期待されます。