マルチエージェントシステムが学際的な研究を加速学際的な専門家チームのように協力し、膨大なデータセットを自律的にふるいにかけて新しいパターンや仮説を発見するマルチエージェントAIシステムを想像してみてください。これは、さまざまなデータソースやツールを簡単に統合するための新しい標準であるModel Context Protocol(MCP)を使用すると、便利に実現できます。知識ベースからレポートジェネレーターまで、成長するMCPサーバーエコシステムは無限の可能性を提供します。AiChemyの機能AiChemyは、OpenTargets、PubChem、PubMedなどの外部MCPサーバーとDatabricks上の独自の化学ライブラリを組み合わせて、統合された知識ベースをより良く分析および解釈できるようにするマルチエージェントアシスタントです。また、研究、規制、またはビジネスのニーズに合わせて一貫した形式でタスク固有のレポートを作成するための詳細な手順を提供するオプションのSkillsも備えています。図1. AiChemyは、外部MCPサーバーのPubChem、PubMed、OpenTargets、およびGenie Space(DrugBank構造化データ用のテキストからSQLへ)とVector Search(ZINC分子埋め込みなどの非構造化データ用)のDatabricks管理MCPサーバーで構成されるマルチエージェントスーパーバイザーです。Skillsをロードして、タスクシーケンスとレポートのフォーマットおよびスタイルを指定し、一貫した出力を保証することもできます。主な機能には、疾患ターゲットと薬剤候補の特定、詳細な化学的および薬物動態学的特性の取得、安全性と毒性評価の提供が含まれます。特に、AiChemyは、検証可能なデータソースに追跡可能なサポート証拠でその発見を裏付けており、研究に最適です。ユースケース1:疾患メカニズムの理解、創薬ターゲットの発見、リード生成Guided Tasksパネルは、疾患→ターゲット→薬剤→文献検証という創薬ワークフローの主要ステップを実行するために必要なプロンプトとエージェントSkillsを提供します。治療ターゲットの特定: エストロゲン受容体陽性(ER+)/HER2陰性(HER2-)乳がん(ERおよびHER2が主要なタンパク質バイオマーカーである)などの特定の疾患サブタイプから開始し、関連する治療ターゲット(例:ESR1)を見つけます。関連薬剤の検索: 特定されたターゲット(例:ESR1)を使用して、潜在的な薬剤候補を見つけます。文献による検証: 特定の薬剤候補(例:カミゼストラント)について、科学文献でサポート証拠を確認します。ユースケース2:化学的類似性によるリード生成2023年に承認された経口選択的エストロゲン受容体モジュレーター(SERM)であるElacestrantの後続薬を特定するために、化学的類似性を活用できます。定量的構造活性相関(QSAR)の原則が類似した特性を共有することを示唆しているため、Elacestrantと構造的に類似した薬剤様分子を大規模なZINC15化学ライブラリで検索します。これは、Databricks Vector Searchにクエリを実行することで実現されます。この検索では、Elacestrantの1024ビット拡張接続性フィンガープリント(ECFP)分子埋め込み(クエリベクトルとして)を使用して、ZINCの2億5000万分子インデックス内で最も類似した埋め込みを検索します。図2. AiChemyには、2億5000万の市販分子のZINCデータベースのベクトル検索が含まれています。これにより、化学的類似性によるリード化合物の生成が可能になります。このスクリーンショットでは、ECFP4分子埋め込みに基づいたElacestrantに最も類似した化合物をZINCベクトル検索で見つけるようにAiChemyに依頼しました。独自の調査マルチエージェントスーパーバイザーを構築するDatabricks上の公開MCPサーバーとDatabricks上の独自データを統合することにより、Databricksでマルチエージェントスーパーバイザーをカスタマイズします。これを行うために、ノーコードのAgent BricksまたはNotebookのようなコーディングオプションを使用するオプションがあります。Databricks Playgroundを使用すると、エージェントの迅速なプロトタイピングとイテレーションが可能です。ステップ1:マルチエージェントスーパーバイザーに必要なコンポーネントを準備するマルチエージェントシステムには5つのワーカーがあります。OpenTargets:疾患-ターゲット-薬剤ナレッジグラフの外部MCPサーバーPubMed:生物医学文献の外部MCPサーバーPubChem:化学化合物の外部MCPサーバーDrug Library (Genie):構造化された薬剤特性を持つ化学ライブラリ。テキストからSQLへの機能を提供するためにGenie spaceに変換されています。Chemical Library (Vector Search):分子フィンガープリント埋め込みを持つ非構造化化学データ独自のライブラリ。埋め込みによる類似性検索を容易にするためにベクトルインデックスとして準備されています。ステップ1a: Unity Catalog (UC)接続を介して、UIまたはDatabricks Notebook(例:4_connect_ext_mcp_opentarget.py)で、公開MCPサーバーに安全に接続します。DROP CONNECTION IF EXISTS conn_opentargets; CREATE CONNECTION conn_opentargets TYPE HTTP OPTIONS ( host 'https://mcp.platform.opentargets.org', base_path '/mcp/', bearer_token 'your_token' ) COMMENT 'Create connection with external OpenTargets MCP server'; ステップ1b: 構造化テーブル(例:DrugBank)が、Genie spaceに変換され、UIを使用してテキストからSQLへの機能を提供することを確認します。1_load_drugbank and descriptors.pyを参照してください。ステップ1c: 非構造化化学ライブラリが、ベクトルインデックスとしてUIまたはNotebookで作成され、類似性検索を可能にすることを確認します。2_create VS zinc15.pyを参照してください。client = VectorSearchClient() # Create VS endpoint client.create_endpoint(name="some_endpoint_name") # Create the VS index and sync with source table index = client.create_delta_sync_index( endpoint_name="some_endpoint_name", source_table_name="some.delta.table", index_name="some.new.index", columns_to_sync=["col1",... ,"coln"], pipeline_type="TRIGGERED", primary_key="id", embedding_dimension=1024, embedding_vector_column="ecfp" ) retriever_tool = VectorSearchRetrieverTool( index_name="some_index_name", num_results=5, ... tool_name="some_tool_name", tool_description="Search for chemicals in ZINC using molecular fingerprints" ) ステップ2(簡単なオプション):ノーコードのSupervisor Agentを使用して2分でマルチエージェントスーパーバイザーを構築するTo assemble them, try the no-code Agent Bricks that builds a supervisor agent with the above components via the UI and deploys it to a REST API endpoint, all in a few minutes.Step 2 (Advanced Option): Build the multi-agent supervisor using Databricks NotebooksFor more advanced capabilities like agentic memory and Skills, develop a Langgraph supervisor on Databricks Notebooks to integrate with Lakebase, Databricks Serverless Postgres database. Check out this code repository where you can simply define the multi-agent components (see Step 1) in the config.yml.host: https://your.cloud.databricks.com/ catalog: your_catalog schema: your_schema experiment_id: 97600000003240 llm_endpoint: databricks-claude-opus-4-5 genie: drugbank: space_id: 01f00000xxxxxxx00000ce5b8 table: your_catalog.your_schema.drugbank uc_functions: chem_utils: - your_catalog.your_schema.get_embedding - your_catalog.your_schema.molecule_png_url uc_connections: pubchem: conn_aichemy_pubchem pubmed: conn_aichemy_pubmed opentargets: conn_aichemy_opentargets retriever: zinc_molecular_search: vs_endpoint: your_vs_endpoint vs_index: your_catalog.your_schema.zinc_vs vs_source: your_catalog.your_schema.zinc15_250k embedding: databricks-bge-large-en # ignored k: 5 text_column: smiles columns: - zinc_id - smiles - mwt - logp - purchasable search_type: vector tool_description: Search for drug-like chemicals in the ZINC database based on ECFP molecular fingerprint embeddings lakebase: project_id: 605000x0-000x-x0x0-x0x0-00000xxx74c2 branch_id: your_branch_id endpoint_id: your_lakebase_endpoint_id database: databricks_postgres embedding: databricks-gte-large-en embedding_dim: 1024 prompts: chem_utils: >- You are a python function that can generate ECFP molecular fingerprint embeddings from SMILES and display molecule PNG images from the PubChem website by CID in markdown. zinc_molecular_search: >- Search for drug-like chemicals in the ZINC database based on ECFP molecular fingerprint embeddings mcp: >- You are a multi-MCP server agent connected to: 1. PubChem MCP server that provides everything about chemical compounds 2. PubMed MCP server that searches biomedical literature and retrieves free full text if any. 3. OpenTargets MCP server that provides everything about drug targets and their associations with diseases and drugs. Most PubChem tools (e.g. get_compound_info) except for search_compounds expect a CID. memory: >- You save and delete long-term user memories. Save when the user explicitly asks to remember something. Proactively save durable preferences, roles, ongoing projects, and recurring constraints. supervisor: >- You are a supervisor managing 5 agents. Route to the agent required to fulfill the request ... Once config.yml is defined, you can deploy the multi-agent supervisor as a MLflow AgentServer (FastAPI wrapper) with a React web user interface (UI). Deploy them both to Databricks Apps via the UI or Databricks CLI. Set the appropriate permissions for users to use the Databricks App and for the app’s service principal to access the underlying resources (e.g. experiment for logging traces, secret scope if any).Step 3: Evaluate and monitor your agentEvery invocation to the agent is automatically logged and traced to a Databricks MLflow experiment using OpenTelemetry standards. This enables easy evaluation of the responses offline or online to improve the agent over time. Additionally, your deployed multi-agent uses the LLM behind AI Gateway so you can enjoy the benefits of centralized governance, built-in safeguards, and full observability for production readiness.Figure 3. All invocations to the multiagent whether via React UI or REST API will be logged to MLflow traces, compliant with OpenTelemetry standards, for end-to-end observability.Figure 4. MLflow traces capture the full execution graph, including reasoning steps, tool calls, retrieved documents, latency, and token usage for easy debugging and optimization.Next StepsWe invite you to explore the AiChemy web app and Github repository. Start building your custom multi-agent system with the intuitive, no-code Agent Bricks framework on Databricks so you can stop sifting and start discovering!(このブログ記事はAI翻訳ツールを使用して翻訳されています) 原文記事