🤖

「Agentless」という最新手法。LLMの新しい使い方。

2024/12/10に公開

本記事では、最近流行りの「生成AIエージェント」に替わる「Agentless」(エージェントレス)という手法について、ざっくり理解します。株式会社ナレッジセンスは、エンタープライズ企業向けにRAGを提供しているスタートアップです。

この記事は何

この記事は、ソフトウェア開発自体を自動化する際の新しい手法「Agentless」の論文[1]について、日本語で簡単にまとめたものです。
https://arxiv.org/abs/2407.01489

今回も「そもそもAIエージェントとは?」については、知っている前提で進みます。確認する場合は、こちらの記事などをご参考下さい。

本題

ざっくりサマリー

「Agentless」という最新手法。LLMの新しい使い方。

最近、ソフトウェア開発で生成AIを使うことは当たり前になっています。(GitHub Copilot、Cursor、Devinなど、様々なツールがリリースされています。)

「AGENTLESS」は、ソフトウェア開発を自動化する、という文脈でLLMを使う際の、新しい手法です。イリノイ大学アーバナ・シャンペーン校の研究者らによって2024年7月に提案されました。

Agentless とは、ざっくりいうと、「特定の用途に特化させてLLMを使うなら、AIエージェントで実装しない方が、速度も、性能も上がるよね」という考え方です。

最近、「AIエージェント」という考え方が流行していますが、今回紹介する「Agentless」という手法は、その名の通り、AIエージェント の流行とは真逆を行くものです。

問題意識

ソフトウェア開発の自動化が進んでいます。例えば「Devin」は、自律型AIソフトウェアであり、裏側はいわゆる「エージェント」の仕組みを使った実装になっています。

しかし、「エージェント」にもデメリットがあります。例えば、複数の複雑なツールをLLMに使わせると出力が安定しなかったり、変なところでハマってしまい、無駄にAPIコストを浪費してしまったり。まだまだ完璧ではないです。

そこで今回、「エージェント化せず、むしろ決まったフローの中にLLMを組み込む」という「Agentless」なアプローチが提案されています。

手法

「Agentless」という最新手法。LLMの新しい使い方。

Agentlessは、ユーザーからソフトウェアに関する問題を相談された時、以下の3ステップで、自動的に解決します。

  1. 絞り込みフェーズ
  • 上の画像でいうと上半分。
  • レポジトリのファイル群をツリー構造で表現
  • LLMとembedding検索を組み合わせて、関係があるファイルを特定
  • さらに、修正が必要なクラス・関数まで絞り込み
  1. 修正フェーズ
  • 1で特定した箇所について、修正パッチの候補を複数生成
  • diff形式で表現するので効率的
  1. 検証フェーズ
  • 再現テストを自動生成。問題が修正されたことをチェック
  • 既にある自動テストも実行し、最適なパッチを選択

Agentlessのキモは、「LLMに、次のアクションを決めさせない」という部分です。ここが、エージェントベースのアプローチと大きく異なる部分です。これにより、「簡単な問題はサクッと安く、間違いなく解いてくれる、難しいときは難しいと白状するAI」が実現する形になっています。

成果

「Agentless」という最新手法。LLMの新しい使い方。

  • SWE-bench Liteベンチマーク(300問)において、オープンソースの手法の中で最高性能を達成(32.00%の修正に成功)
  • コストも1件あたり$0.70と低コスト

まとめ

弊社では普段、大企業向けにRAGシステムを提供しています。今後は、単なるRAGにとどまらず、「エージェント」と組み合わせたRAGが流行するのではないかと予想しています。

しかし今回の手法は逆に、エージェントを使わずに、普段の業務での課題を解決するという考え方です。

個人的には、エージェント(特に「RAG x エージェント」)の使い所はまだまだあると考えますが、とはいえ確かに、普段の業務レベルでは、Agentlessな手法がかなり使えそうです。

また他にも、Agentlessなアプローチが活躍するのは、社内向けではなく、お客様向けに、生成AIシステムを提供する場合です。エージェントよりも簡単な問題しか解決できませんが、素早く、安定して動作するので、システムに組み込みやすいです。

みなさまが業務で生成AIシステムを構築する際も、選択肢として参考にしていただければ幸いです。今後も、生成AI・RAGの回答精度を上げるような工夫や研究について、記事にしていこうと思います。我々が開発しているサービスはこちら

脚注
  1. "Agentless: Demystifying LLM-based Software Engineering Agents", Xia et al. ↩︎

ナレッジセンス - AI知見共有ブログ

Discussion