新機能をこすっていくスタイル。
はじめに
こちらでも紹介されているように、Databricks DocumentのリリースノートがRSSで提供されるようになりました。
Xでは「なぜこれがDAISで発表されなかったんだ」「待ち望んでいた機能」など多くの意見が出ているようです。
私にとっても嬉しいアップデートでして、せっかくなので、AIエージェントから利用できるようにツール化しました。
作成はDatabricks on AWSで行いました。
試してないのですが、Free Editionでも出来るのではないかと思います。
STEP1. ツールを作る
今回は全てSQLで実行することにします。
流れとしてはDatabricksのドキュメントサイトに接続するUnity Catalog Connectionを作成し、それを利用したUnity Catalog Table Functionを作成します。
(今回、Functionはtraining.ai_agent
というカタログ/スキーマ配下に作成しています)
コード全文は以下の通り。
VARIANT
型はとても便利ですね。
-- databricks documentへの「接続」を作成
-- bearer_tokenはダミー
CREATE CONNECTION IF NOT EXISTS databricks_document TYPE HTTP OPTIONS (
host 'https://docs.databricks.com', port '443', base_path '/aws/en/', bearer_token 'xxx'
);
-- databricks release notesをRSSから取得するUnity Catalog Functionを作成
CREATE OR REPLACE FUNCTION training.ai_agent.databricks_release_notes(
n_days INT DEFAULT 3 COMMENT '何日前までのリリースノートを取得するかを指定する。デフォルトは3日'
)
RETURNS TABLE(
guid STRING COMMENT 'ユニークID。通常はドキュメントのURLが設定される',
categories ARRAY<STRING> COMMENT 'リリース機能のカテゴリ一覧',
description STRING COMMENT 'リリース機能の説明文',
link STRING COMMENT 'リリース機能の情報が記載されたドキュメントのURL',
title STRING COMMENT 'リリース機能のタイトル',
pubDate DATE COMMENT '機能のリリース日'
)
COMMENT 'Databricksのリリースノートから最新のリリース情報を取得する'
RETURN
WITH feed AS (
SELECT
from_xml(
http_request(conn => 'databricks_document', method => 'GET', path => '/feed.xml').text,
'VARIANT'
) AS feed
),
feed_items AS (
SELECT
explode(feed:channel:item::array<variant>) AS item
FROM
feed
),
final AS (
SELECT
item:guid::string,
split(regexp_replace(item:category::string, '\\[|\\]|\\"', ''), ",") AS categories, -- カテゴリをリスト化
regexp_replace(
regexp_replace(item:description::string, '<[^>]*>', ''), '[\r\n]', ''
) AS description, -- HTMLタグと改行を除去
item:link::string,
item:title::string,
to_date(split(item:pubDate::string, ',')[1], ' dd MMM yyyy HH:mm:ss z') AS pubDate -- 日付変換
FROM
feed_items
)
SELECT
*
FROM
final
WHERE
pubDate >= current_date() - databricks_release_notes.n_days
LIMIT 50;
作成したUC Functionを実行すると、RSSを取得しパースした結果をテーブル形式で得られます。
-- 5日前までのリリースノート情報を取得
SELECT * FROM training.ai_agent.databricks_release_notes(5);
ではこれをエージェントから呼び出してみましょう。
STEP2. Playgroundで試す
Playgroundを開き、作成したFunction:databricks_release_notes
をツールとして指定します。
(今回はUC Functionとして指定しましたが、MCP Serversから設定しても利用できます)
では、実行してみましょう。
上記スクリーンショットのようにLLMはClaude Sonnet 4を使います。
実行すると、databricks_release_notes
ツールが呼び出されました。
最終的に結果が得られます。
いい感じですね。個人的に関西弁は頭に入りやすい。。。
まとめ
Unity Catalog Connection/Functionを使って、Databricksリリースノートを取得するツールを作成しました。
定期的にエージェントを呼び出して新機能のお知らせをさせたり解説をさせたりSlackに投稿させたりなど、用途としては面白いことができるんじゃないかと思います。
Databricksはこういうことも手軽に出来てありがたさを実感します。