【AI for Science試行録】第3回 Biomniソースコード検証 Part1

2025年6月2日にbioRxivで報告された、スタンフォード大学によるバイオメディカル汎用AIエージェントBiomniは、そのソースコードが公開されています。公式ドキュメントによるとはBiomniをフル環境で動かすにはUbuntu環境での10時間の環境構築が必要とされていますが、研究によっては手軽に手元のコンピュータで動かしたいケースも想定されます。

AI for Science試行録の第3回では、Biomniのソースコードを少々カスタマイズし、手元のMacBookで動作するのかを試した結果を報告します。さらに、Biomniへの新機能追加についても試してみたので、その結果も共有します。

検証環境

結果1:MacBookでの動作確認

  • MacBook上で無事動作しました。
  • 今回の検証では、以下の2点を主なカスタマイズポイントとしました。
    • Dockerの活用
      • Biomniではconda環境を使うので、Dockerコンテナ内に環境を構築。
    • 使用するデータベースやツールの取捨選択
      • Biomniの環境設定ファイル(bio_env.yml, data_lake.py)を編集し、MacBookのarm64アーキテクチャで動かないライブラリや、今回の検証で不要なデータベース・ツールのダウンロード・インストールを除外。
  • これらにより最小限の環境でBiomniエージェントを起動させることができ、必要なデータベースやライブラリが利用可能となっていることも確認しました。
    • test.ipynbでは、一例としてpymedというライブラリが利用可能となっていることを確認しています。

結果2:新機能追加の検証(MCPサーバーの活用)

Biomniは、外部MCPサーバーを容易に追加し、機能を拡張する機能を持っています。これを使って、既存Biomniでは対応が困難であった、柔軟なPubMed検索機能を追加できるかを試しました。

検証内容

  • 「2015年2月5日から2月28日の間の、PMC Open Aceess Subsetに含まれるレビュー論文のPMIDリストを出力する」というタスクを実行しました。

検証結果

標準のBiomni

  • 標準のBiomniではタスクの回答が得られませんでした。(長時間のトライアンドエラーが続いたため、途中で処理をストップしました。)

  • 標準のBiomniでは、query_pubmed という関数が呼び出され、その関数内ではpymedというライブラリが使用されています。pymedではstr型のクエリ内容を受け取りPubMedAPIリクエストを送るという機能しかありません。つまりPubMed特有の検索ルールを標準のBiomniが認識できていないことが、日付やPMC Open Access Subset、文献タイプによる複雑な条件での検索ができなかった原因です。

※ 検証の際の処理の詳細は、test.ipynbをご確認ください。

MCPサーバーを追加したBiomni

  • 今回の検証では、私が個人的に作成したPubMed検索スクリプトMCP形式に変換し、PubmedSamplerというMCPサーバーとして利用しました。名称から受ける印象に反して、PubMedに対して複雑な条件検索を行える関数を備えています。

  • PubmedSamplerをBiomniに連携させたところ、タスクは成功し、正解である5件の論文IDを取得できました。

  • PubmedSamplerのBiomniへの連携は下記の順に行いました。

    • mcp_config.yamlファイルを作成し、Biomniのrootディレクトリに配置
    • PubmedSamplerをBiomniのrootディレクトリに配置
    • エージェント起動後に、agent.add_mcp(config_path="./mcp_config.yaml")という1行を実行
  • PubmedSamplerのget_pmids_for_date_range関数では、日付、PMC Open Access Subset絞り込みの有無、文献タイプを引数として受け付けており、それらの情報を使ったAPIリクエスト方法が記述されています。MCPサーバーの追加により、この関数が参照可能となったためBiomniはスムーズにタスクを完了することができました。

※ PubmedSamplerおよび検証処理の詳細は、PubmedSampler-MCP-Servertest.ipynbをご確認ください。

課題

  • 特定のLLMでのエラー: gpt-5gpt-oss を利用する際にエラーが発生。今後は、これらLLMでの動作確認も進める必要があります。
  • 他のOSでの動作: 今回はMacBookのみで検証しましたが、Windowsなど他のOSでも同様に動くか確認が必要です。
  • 別の拡張方法: MCPサーバー以外に、直接ソースコードに関数を書き込んで新機能を追加する方法については未検証です。

まとめ

今回の検証から、Biomniは少々のカスタマイズによりラップトップ環境でも十分に活用できる可能性が高いことがわかりました。また、MCPサーバーの追加もそこまで煩雑ではなく、現時点では拡張性の高さを感じています。

今回の検証で使用したスクリプトは、https://github.com/science-aid/biomni_lightにまとめました。必要に応じてご使用ください。