Nigel AIのコード生成を試しました

LabVIEW 2025からAIアドバイザーとしてNigelが導入されました。Nigelというと、NIWeek 2018にいた謎キャラクターを連想する人もいるかもしれません。

…さすがに誰も覚えてないかな?私はAustinに行ったことがなく、もちろんNIWeekやNI Connectに参加したことはありません。それに、今はNIのロゴも鷲(Eagle)ではなくなっています。Twitterの青い鳥がどこかに行ったように、NIの青い鳥もどこかに行きました。

…というのがNigel AIと関係あるかはNIの人しか知らないと思いますが、NIはAIアドバイザーとしてNigelを導入しました。導入当時は、私の期待値が低かったため、日本語でコミュニケーションをとれるだけで感動したものです。エンターキーの挙動はなかなかうんk…おもしろいものでしたが、これもアップデートで解消されています。まあ、エンターキーで漢字に変換できるという当たり前に期待することがちゃんとできるようになったというだけですが。

そのNigel AIがLabVIEW 2026 Q3からコード生成に対応しました。早速、Nigel AIのお手並みを拝見…といきたいですが、悲しいお知らせがあります。

【悲報】Nigel AIはLabVIEWプロフェッショナル開発システムじゃないと使えない

正確にはLabVIEW+ Suiteでも使えますが、重課金が必須です。残念ながら、私のプライベート環境にはLabVIEW Communityしかありません。一応、古いもの(2017あたり)ならCommunityではないものがありますが、Windows 11では保証対象外ですし、Nigel AIも使えません。Nigel AIのコード生成についてプライベートで試すことができないので、ここではその代わり(?)に2026年7月に参加したNigel AIコード生成の先行体験で試したことや勤め先で試したことを紹介したいと思います。

先行体験会

Nigel AIがコード生成に対応するとのことで、2026年7月8日に浜松町(大門)の会場でNIのイベントが開催され、そこに参加しました。

image
最寄り駅の大門。会場はこの出口の真上。左:いちご 右:ハルカゼさん

せっかくなので、駅メモ!のキャラクターと撮影しました。左の赤いキャラクターは汐留いちごちゃんで、都営大江戸線と浅草線に関係あるでんこさんです。大門駅の駅名表示の横にある都営大江戸線と浅草線のロゴといちごちゃんの目の色が同じです。右は日暮里ハルカゼさんで私の推しです。

image
会場の浜松町コンベンションホール
img 1101
Nigel AIの紹介

…いちごちゃんが講演しているみたいですね。このときはNigel AIのコード生成版をリリースする前なのでコード生成部分は撮影禁止でしたが、ここはアドバイザー機能の紹介なので撮影OKです。このイベントではNigel AIのできることやNIの今後のNigelを中心としたエコシステムのロードマップを紹介していましたが、そこは公式の情報を見たほうがいいと思います。あと、NIのエコシステムからG Web Development Software (Web VIを作るアプリケーション)が省かれていました。

Nigel AIのコード生成については、イベント後の懇親会で行いました。私が試したことは以下の通りです。

概要内容結果
Malleable VIの作成任意の1D配列に対して後ろn個の配列を出力するMalleable VIを作るできない。要望を期待通り理解できていた。
グローバル変数の作成ブール、I32、文字列を含むグローバル変数の作成をする。できない。
タイプ定義クラスタの作成ブール、I32、文字列を含むタイプ定義クラスタの作成をする。できない。
サブVIの作成DBLの入力2つの和をDBLで出力する。VIはできた。コネクタペーンは設定しない。

…これだけ見ると全然できないと思われるかもしれません。しかし、これは私がいじわるをしただけで、実際は結構なものができると思いました。DAQmx関係はいろいろと難しいですが、Nigel AIに任せればうまくやってくれそうな印象です。現時点では、イベントストラクチャの取り扱いなどできないこともありますが、これは今後のアップデートに期待ですね。

コネクタペーンに関する追記

2026年9月4日追記。気づいたらコネクタペーンを設定してくれるようになっていました。

プロンプト

次のVIを作ってください。
制御器
・VIのパス:VI Path
・ケースストラクチャのラベル名を表す文字列:Case Name
・ケースストラクチャのケース名を表す配列:Case Name Array
VI PathからOpen VI ReferenceでVIリファレンスを開き、Open VI Object ReferenceでCase Nameのケースストラクチャのリファレンスを取得してください。その際、本来はWhileなどの中を再帰的に確認する必要がありますが、今回は再帰処理は不要です。その後、取得したケースストラクチャのケース名をCase Name Arrayのものに設定してください。
表示器
・エラー出力

VI Scriptを使ったもので、個人的には人がこれできるならLabVIEWをかなり使えていると思います。使う関数まで指示しているので結構細かいです。Nigelさんはこの仕様通りのVIを作ったうえに、コネクタペーンもVIの説明も設定してくれました。ここでは指示していないエラー入力端子もつけてくれました。すごいなぁと改めて思います。まあ、実際のところはケースストラクチャのフレーム数とCase Name Arrayのサイズが一致していないとエラーになるようなVIでしたが、それはプロンプトの問題でしょう。ケースストラクチャのフレーム数を取得し、Case Name Arrayのサイズと一致しない場合はケースを増やしたり減らしたりするような指示をすればちゃんと対応してくれると思います。このときは、この部分を私がやっちゃいましたが。

正式リリース後に試したこと

Nigel AIのコード生成版(Nigel AI 2026 Q3、または、Nigel Advanced)がリリースされた後もいろいろ試しました。

試したこと

  • 実行中のVIを止めるVIの作成
  • 眠いので目覚めるようなVIの作成
  • JSONに平坦化した文字列を人が読みやすいように加工
  • CLDの試験問題を解かせる

実行中にVIを止めるVIについては、画面の表示をモーダル設定にしたVIを開いたままVIを実行すると、モーダルVIが最前面に表示されるうえに閉じられなくなって困るときに役に立ちます。私も自分で作りましたが、これをNigel AIが作れるか試しました。記憶を頼りにすると確かこんなものを作ってくれました。

image

…私が最初に作ったものより完成度が高いですね。これは私が再現したものなので手を抜いたところがありますが、実際は定数のラベルなどをていねいにつけていたと思います。具体的には、実行中のVIを止める場合、実行中のVIには自分自身が含まれるので、自分自身は止めるVIから除外する必要があります。私は実行して初めてその必要性に気づきましたが、Nigelは最初から自分自身を止めてはいけないと考えて上図のVIを作りました。ただ、おしいんですよね。App.AllVIsプロパティはメモリにあるVI名を出力するプロパティで、それをそのままパスにしても絶対パスにはならないです。それを現在のVIの絶対パスと比較しているので自分自身を除外できていないです。あと、Running状態のVIをAbortで止めようとしても止まらないので、Run top levelのVIを止めるのが正解ですね。まあ、それでもActor Frameworkのように動的にクローンを呼び出すVIに対してはどうしようもないですが。ここまで作れるならすごいと思います。

眠いので目の覚めるようなVIというのは意味不明ですが、私は眠くなる副作用のある薬を服用しています。眠気により車の運転を禁止するぐらいの副作用があります。業務時間に眠くなるので、Nigel AIに目が覚めるようなVIを作ってもらいました。こんな雑な指示でもVIを作ってくれました。確かこんな感じです。

image

300msごとにLEDが点滅して、Stringにメッセージを表示するVIです。やさしいですね。この後、このVIをベースにフロントパネル(正確には1つだけのペーン)を同じ周期で赤/緑に点滅するように改造しました。かなり目に悪い感じです。

JSONについては、LabVIEWのJSONに平坦化する関数を使うと、改行を一切しないJSON形式の文字列が出力されます。JSONは改行がなくてもアプリ側は解釈できますが、表示や保存をしたときに人にとって読みにくくなります。LabVIEWにはJSONのPretty Printをする機能がない(探せは誰かが作っているとは思う)ので、これをNigel AIに作ってもらったところ、かなりの力技でやってくれました。力技すぎて再現できないのが残念です。

CLD試験のサンプル問題も解かせてみました。ただ、イベントストラクチャは未対応なので、NI公式の解答でイベントストラクチャを使わないもの、具体的にはボイラーの模擬をするものを解いてもらいました。これもかなり力技な印象でState Machineを作っていました。一応、機能はしたかな?

Nigel AIのコード生成はどのくらい使えるか?

結局、Nigel AIのコード生成は実践に使えるのか?と言われると、これは個人の見解ですが、そのまま使うのは慎重になった方がいいと思っています。でも、これは人が作ったプログラムでもどう動く(あるいはどんなエラーが発生する)か確認する必要があります。そこはNigel AIに限らず生成AIさんでも人間でも変わりません。そこに責任を持つのは人間の役割です。その上で私は生成AIさんを積極的に活用していきたいと思いました。まあ、生成AIさんが作ったものの妥当性を判断できるだけの知識が必要になりますが…これは昔から本の内容が適切か、検索して出てきた内容が適切か判断するのは自分なので、それが生成AIさんになっただけで、ツールはうまく活用して判断は自分で行うというのは昔から変わらないことです。いずれにしても、Nigel AIができることは今後増えていくと期待しています。

タイトルとURLをコピーしました