先日、来栖川電算のバータイムにて「Serena」に関する調査報告が行われました。
SerenaはAIエージェントのパフォーマンスを向上させるツールキットです。その仕組みを、AIが活用しやすい形で社内ドキュメントを整備していく方向にも応用できないかを探る視点から調査を実施しました。

※本記事に含まれる内容は、来栖川電算を代表する公式な意見ではなく、イベント内で発表者および参加者から出た個人の所見や仮説であることをご留意ください。


1. そもそもSerenaとは何か、何ができるか

画像はSerenaの公式リポジトリ https://github.com/oraios/serena より

Serenaは「Semantic Retrieval and Editing Noetic Agent」の略称です。
これはコーディングエージェント向けのツールキットであり、主にLSP(Language Server Protocol)を活用することで、コードの読み書きをより効率的かつ賢く行うことを可能にします。

Serena自体がLLM(大規模言語モデル)を内蔵しているのではなく、LLMがSerenaをツールとして利用するという関係性にあります。LSPを利用することで、コードのテキストをそのまま読み込むのではなく、どういった構造のものかという情報を踏まえてコードの読み書きを実行します。

Serenaのツール群は、大きくLSPを使うものと使わないものに分けられます。

ツールの系統 概要 具体的な機能(例) 主な利点
LSPを使わないツール ファイル操作、メモリ管理、設定管理、およびエージェントへの「指示」出し(例: 収集情報が十分か確認させる)など、汎用的な機能を提供します。 テキストファイルの作成、シェルコマンドの実行、メモリ(プロジェクトに関する情報)の読み書き、プロジェクトのアクティベート。 LLMの挙動をコントロールするのに役立ちます。
💡LSPを使うツール コードの構造理解に基づき、シンボル単位でコードを操作します。 Find Symbol(シンボルの定義検索)、Find Reference Symbols(参照箇所の検索)、Replace Symbol Body(シンボルの定義の書き換え)など。 最小限の変更/情報取得に留めることで、AIエージェントのコンテキスト(入力履歴)を汚さない。

Serenaの提供する機能の多くは、ファイル全体ではなく、LSPを使って必要な部分のみにアクセスし、編集することに特化しています。これにより、LLMにファイル全体を読ませたり書き換えさせたりする際に発生する、コンテキスト(入力/出力)の無駄な消費を防ぐという大きなメリットがあります。

2. Serenaをどう活用・応用できそうか

発表者は、社内ドキュメントのAI活用における理想として、「AIに(社内ドキュメントなどを参照して)やっておいてと頼んだら、適当にやっておいてくれる」状態の実現を目標としています。これを実現するためには、AIがより賢くドキュメントを読み書きできる必要があり、そのための仮説として、Serenaがコードの構造に適用しているLSP的なアプローチを、ドキュメントの「スキーマ」(構造)に適用できると考えました。

Serenaを参考にした、ドキュメントAI活用への応用案として、発表者は以下の所見を述べました。

  1. LSPを使わない汎用ツールの流用
    • ファイル操作やメモリ管理など、LSPを使わないSerenaのツール群は、ドキュメントの読み書きツールにもほぼそのまま利用できるだろうと見られています。
  2. スキーマに基づくドキュメント構造操作ツールの開発
    • 自然言語ドキュメントはLSP的な解析はできないため、カスタマイズや再実装が必要です。しかし、Serenaのツールと同様の機能を、ドキュメントに与えられたスキーマ(例:議事録スキーマ)に基づいて作ること自体は可能だという所見です。
    • 具体的なツールの例:
      • システム内に存在するスキーマ(例:議事録スキーマ、論文スキーマ)を列挙するツール。
      • あるドキュメントがどのスキーマに従うのかを知るツール。
      • ドキュメントの特定セクション(例:決定事項)だけを抽出するツール。
        • これにより、ドキュメント全体を読むことなく、コンテキストを汚さずにAIに読ませることができます。
      • ドキュメントの特定セクションの内容だけを書き換えるツール。
        • 例えば、会議の開催日時だけを書き換えるために、ファイル全体を作り直すという無駄なコンテキスト消費を防げます

これらの応用により、コードでのSerenaの利点と同様に、ドキュメントAIもコンテキストを無駄に使わずに賢く振る舞うことが可能になるだろうと、発表者は考えています。

3.どういう知見が持ち帰られたと考えられるか

  1. コンテキスト管理の重要性の再認識 : Serenaのツールは、個々の機能としては「素朴な感じ」という印象も受けますが、その最大の価値は、LLMのタスク実行時にコンテキストに無駄な情報が残るのを防ぐ点にあると強く認識されました。特に大規模なコードベースを扱う場合、コンテキストの消費が激しくなるため、Serenaの機能は賢さの維持(エージェントがバカになりにくいこと)に貢献していると考えられます。
  2. マルチエージェントシステム設計への示唆 : Serenaのツールキットの仕組みは、LLMエージェントが、コンテキストを共有しないサブエージェント(ツール)を利用する設計パターンとして非常に有効であるという知見が得られました。サブエージェント内で処理を完結させることで、親エージェントのコンテキストを汚さずに済み、システムを構成する際の大きな利点となり得るとの所見です。
  3. 今後の興味の対象 : Serenaのような優れたコーディングエージェントが、実際にツールをどのように選択し、どういうプロセスで思考してタスクを完遂しているのか、その「エージェント自体の作り方」について、個人的に興味が深まったという所見も述べられました。

Serenaの調査を通じて、AIエージェントの真の賢さを引き出すためには、単に強力なLLMを使うだけでなく、「いかにコンテキストを効率的に、クリーンに管理するか」が鍵となるという教訓が得られました。これは、コード領域からドキュメント領域へと、AI活用を広げていく上でも重要な視点となるでしょう。

カテゴリー: ブログ