bio_img_japan-community

MATLAB ユーザーコミュニティー

MATLAB & Simulink ユーザーコミュニティー向け日本語ブログ

Toolbox 専用 AI スキル:Claude や Gemini 等による、より迅速・安価・確実なコード生成

※この投稿は 2026 年 4 月 30 日に The MATLAB Blog へ 投稿されたものの抄訳です。

TL:DR: MATLAB Agentic Toolkit の最新アップデートには、AI エージェントがさまざまなタスクをより迅速、安価、かつ堅牢に実行できるようにする、高度なツールボックス固有のスキルのセットの第 1 弾が含まれています。この第 1 弾は Database Toolbox に焦点を当てており、他のツールボックス関連のスキルも準備中です。

スキル:AI の MATLAB 力を強化する

1999 年の映画『マトリックス』には、ネオが武術のスキルを脳にダウンロードするシーンがあります。目を見開き、「カンフーを覚えたぞ!」と宣言します。とてもかっこいいですよね!
AI スキルも AI エージェントにとって少し似たようなもので、MathWorks が MATLAB Agentic Toolkit をリリースしたとき、現在最も一般的に使用されている AI エージェントで動作する厳選されたスキルの提供を開始しました。つまり、このツールキットを使用すれば、AI エージェントの「MATLAB 力」を向上させることができるのです。
Toolkit の最初のスキルセットは、Modernize Code や Create Live Script など、非常に一般的なものでした。先週、最初のリリースからわずか 2 週間後に、最初の Toolbox 特化のスキルを含むアップデートをリリースしました。これらは Database Toolbox 用で、以下が含まれます。
  • map-database-objects
  • read-database
  • use-duckdb
  • write-database
このバージョンの Toolkit へのアップデートは簡単でした。MATLAB R2026a を使用するためにアップデートしたときと同じ手順を使用しました。
Claude や Gemini が突然「MATLAB 2026a で DuckDB データベースを使う方法を知っている」と言い出すのは、「カンフーを覚えたぞ!」ほどドラマチックではないかもしれませんが、技術計算においては間違いなくより便利です。もちろん、あなたが特にひどい一日を過ごしているのでなければ、ですが。
今日は、Toolkit 固有のスキルが AI エージェントによる MATLAB 関連タスクをどのように改善できるかを見ていきます。

新しいスキルにより、エージェントは MATLAB タスクをより迅速かつ安価に完了できる

Database Toolbox のプロダクト マネージャーである Brian Hu に、これらのスキルの動作を実証するために何を確認すべきか尋ねました。オブジェクト関係マッピング(ORM)が何か知っていますか?」と彼は聞いて来ました。「……いいえ? 完璧です! では、それをやりましょう!」
ORM がないと、データベース クエリは次のようになります。
sqlquery = strcat(“SELECT e.Name, e.Salary, d.DepartmentName “,
“FROM employees e JOIN departments d “,
“ON e.DepartmentID = d.DepartmentID “,
“WHERE (e.JobTitle = ‘Engineer’ OR e.JobTitle = ‘Senior Engineer’) “,
“AND e.HireDate > ‘2023-01-01′”);
これは機能しますが、脆弱です。オートコンプリートも型チェックもなく、実行時に成功するか失敗するかの単なる文字列です。ORM はこのリスクを排除します。データベース テーブルにマップされる MATLAB クラスを定義し、単純な関数を使用してオブジェクトを出し入れします。MATLAB ドキュメントには ORM ワークフローの例がありますが、ここでは、これらの新しいデータベース スキルがある場合とない場合の両方で、AI がこのワークフローの開始をどのように支援できるかを見てみましょう。
まずは小さなデータベースから始めます。DuckDB データベースを使用します。これは R2026a での新機能であるため、ほとんどの AI エージェントは学習時の知識のみに頼っている場合、まだどう使って何ができるかと知らないはずです。適当なデータを入力しました。テーブルが 1 つしかない非常にシンプルなものです。
conn = duckdb(“C:\Users\walki\testing123\sensors.duckdb”);
data = sqlread(conn, “sensors”);
disp(data);
SensorID Location Type CalibrationDate
________ ________ _____________ _______________
1 “Lab A” “Temperature” 27-Apr-2026
2 “Lab B” “Pressure” 17-Aug-2025
100 “Lab C” “Humidity” 27-Apr-2026
101 “Lab C” “Temperature” 12-Apr-2026
200 “Lab D” “Temperature” 27-Apr-2026
201 “Lab D” “Pressure” 03-Feb-2026
301 “Lab E” “Humidity” 27-Apr-2026
302 “Lab F” “Pressure” 03-Mar-2026
これは生の SQL でクエリできます。
sqlquery = strcat(“SELECT SensorID, Location, Type, CalibrationDate “,
“FROM sensors “,
“WHERE SensorID >= 300”);
sqlResult = fetch(conn, sqlquery);
disp(sqlResult);
SensorID Location Type CalibrationDate
________ ________ __________ _______________
301 “Lab E” “Humidity” 27-Apr-2026
302 “Lab F” “Pressure” 03-Mar-2026
そして、例えば Sensor という適切な ORM クラスを作成してあれば、オブジェクト指向のアプローチを使用できます。
rf = rowfilter(“SensorID”);
filter = rf.SensorID >= int32(300);
ormResult = ormread(conn, “Sensor”, RowFilter=filter)
ormResult = 2×1 Sensor
1
1 1×1 Sensor
2 1×1 Sensor
配列の最初の結果を表示してみます。
ormResult(1)
ans =

Sensor with properties:

SensorID: 301
Location: “Lab E”
Type: “Humidity”
CalibrationDate: 27-Apr-2026

最後に、データベースへの接続を閉じます。
close(conn);
ここでの AI のタスクは、このマッピングを可能にする Sensor クラスと、それに付随するデモを作成することとします。

データベース スキルを使わずに ORM インターフェースを作成する

MATLAB MCP サーバーにはアクセスできるが、新しいデータベース スキルにはアクセスできない Opus 4.7 モデルを使用した Claude Code のインスタンスを起動し、次のようにプロンプトを出しました。
Create a MATLAB ORM class called Sensor that maps to the sensors database table in the file sensors.duckdb. Explore the database and choose suitable colummns. Include a recalibrate() method that sets CalibrationDate to today. Then write a short script that connects to the DuckDB database file, writes a couple of sensors, reads them back with a filter, recalibrates one, and updates it.
DuckDB が R2026a でサポートされているという事実は学習時の知識にはありえないため、実際には Claude がこのタスクに失敗することを予想していました。ただ、私が予想していたよりもずっと賢い応答でした。MCP を介して私が R2026a を使用していることを判別し、MATLAB R2026a で DuckDB を使用する方法についてウェブ検索を行いました。私の R2026a リリースに関するブログ投稿まで読んだのです!さらに、ドキュメント検索とローカル マシンの ormread などの関数の内容の読み取りを組み合わせて、MATLAB の ORM インターフェースを調査しました。
以下は、Claude Code が最初のプロンプトから作成した計画に従って作業を進めていたときのターミナルのスクリーンショットです。
かなり”クール”です!MATLAB での ORM のやり方は知らなかったようですが、単にそう言うのではなく、基本原則からやり方を突き止めにいったのです。約 6 分間の思考の末、正常に動作するクラスとデモを返してきました。それらは決して悪いものではありませんでした。
Claude の /cost コマンドから、その 6 分間の作業に 2.77 ドルかかり、多くのトークンを消費したことがわかりました。

スキルを使用して ORM インターフェースを再作成:より迅速かつ安価に

このセッションの Claude のメモリ ファイルをすべて削除し、Claude に見えない場所にコードを移動しました。次に、データベース スキルをインストールして、同じプロンプトで再試行しました。Claude はそのスキルが有用であることを即座に認識し、ロードしました!
今回のセッションは、前回よりもはるかに高速でした。約 33 秒かかり、コストは 0.57 ドルで、コードの品質も同等でした。

再現性に関する注意

ここでは 2 回の実行結果のみを示していますが、実際にはこれよりも数回多く実行し、スキルのインストールとアンインストール、以前の試行の削除と各セッションの Claude のメモリの削除などを行いました。Claude が時間の経過とともにこれをよりうまくこなせるよう学習しているのではないかと懸念していたため、その能力を真に制御できていることを確認したかったのです。
エージェント型 AI の作業は確率的であり、まったく同じ実行結果は二つとありません。スキルにアクセスできなかったときでも、Claude が ORM API をより迅速に解明することがあり、コスト削減がそれほど劇的でないこともありました。また、ここで示したよりも少し時間がかかることもあり、その場合はコスト削減がより大きくなります。
しかし、常に共通していたのは、スキルが ない 場合、Claude は実行する前に常に進め方を解明しなければならなかったということです。スキルが ある 場合、それはすぐに実行に移りました。

スキルは AI にとってのユーザー マニュアルのようなもの

これらのスキルの開発者である Rikin Mehta に連絡を取り、スキルが有用であることをどのように実証したか尋ねました。これは私が当初思っていたよりも複雑なプロセスですが、彼のチームが行っていることの一つは、スキルのある場合とない場合の両方で、さまざまな AI に対して一連のプロンプトを試すことでした。これらのプロンプトは Database Toolbox でサポートされているワークフローのさまざまな側面を調査するもので、Rikin は Opus 4.6 を使用した Claude で試した ORM マッピングに関連するクエリの結果を共有してくれました。ORM Pattern Tested 列は、プロンプトが何をテストしているかの要約です。
ここで使用されている手法は、私がブログ投稿で行ったものとは異なり、基本的には AI が「ワンショット」で何ができるかを問うものです。つまり、私が先ほど使用したときのように、Claude が探索したり反復したりすることは許可していません。代わりに、雑学クエリのように設定されています。基本知識のみでこの質問に答えられるか、それとも基本知識 + データベース スキルで答えられるか、というものです。
したがって、これらのスキルの側面の一つは、使用している AI の MATLAB の知識を向上させることです。それらがない場合、AI がたまたま持っていたトレーニング知識に頼ることになります。モデルによっては最初から MATLAB が得意なものもあれば、そうでないものもありますが、スキルによってそのほぼすべてが改善されるはずです。

今後の MATLAB スキル

Iデータベースに興味がある方は、今すぐお気に入りの AI でこれらのスキルの使用を開始することをお勧めします。他のツールボックスに関連する他のスキルもまもなく登場する予定です。どのようなものが見たいか、皆さんからのご意見をお待ちしています。ここのコメント欄や Agentic AI Toolkit の Issue でお気軽にお知らせください。
|
  • print

评论

要发表评论,请点击 此处 登录到您的 MathWorks 帐户或创建一个新帐户。