STEP 1630 — 計測 MCP 三段安全 3 例比較 + 中規模計測基盤 3 例棲み分け

2026-08-31 · Rei-AIOS STEP 1630 · LabAgent / LabToolkit audit

前置き: 第 3 回計測周辺 GitHub 探索 (206 件累計) で新規発見された 2 件を、fork agent による一次資料直読で判定。honest correction 1 件含む。

1. 三段安全設計 3 例比較 (計測 MCP 系)

計測装置に対して「危険な操作を止める」だけでなく「なぜ止めたかを人に見せる」ところまで作られた計測 MCP 実装が、これまでに 3 例確認された。三例に共通する構図と、各実装の差別点を整理する。

実装安全境界の場所判定単位「なぜ」の返し方掲載
Keysight 公式 MCP クライアント側 (LLM が preview → 人承認) SCPI 平文 preview_commands で SCPI 文字列を人に見せる 既掲載
KAME サーバ側 (server-side rule で強制 block) SCPI 平文 サーバ側規則の説明文 既掲載
Anai-Guo/LabAgent サーバ側 (Pydantic 型 + YAML policy) MeasurementPlan の field (semantic parameter) LLM 助言と判定を層分離 掲載可 (条件付)

LabAgent 一次資料 (fork agent 実測)

LabAgent の差別点 (Keysight/KAME に対して)

  1. MeasurementPlan の Pydantic field 単位で YAML policy と照合 — SCPI 文字列でなく semantic parameter を検査、抽象度が一段上
  2. Tier 3 (consistency: step=0 / >10000 points 等の無意味計画) が safety 判定に組み込まれている — Keysight/KAME にはない範囲拡張
  3. AI advice を判定と分離した layer に置き、ai_advice is informational only を docs で明文化 — 三例中もっとも「LLM 汚染」を意識した層分け
LabAgent 掲載判定: 掲載可 (条件付き)

2. 中規模計測基盤ライブラリ 3 例棲み分け

Nobuki-san の計測基盤ライブラリ選定において、既掲載の pymeasure (★754, MIT) と pyLabLib (★208, GPL-3.0) の間を埋める中規模帯として DavidLutton/LabToolkit を第 3 の選択肢として評価する。

ライブラリLicense重心ドメイン抽象化掲載
pymeasure 754 MIT 汎用計測 (Oscilloscope / DMM / DC 電源 中心) Instrument 継承ツリー 既掲載
pyLabLib 208 GPL-3.0 顕微鏡 / カメラ / ステージ デバイス class + backend 抽象 既掲載
DavidLutton/LabToolkit 28 MIT RF / microwave テストベンチ 自前 3 層 (Instrument + SCPI + IEEE488) 保留 (条件付)

LabToolkit — 独立実装確認 (fork agent 実測)

カバレッジ 26 カテゴリ (RF 重心)

RF/microwave 重心が明確: SpectrumAnalyser / NetworkAnalyser / SignalGenerator / Oscilloscope / DigitalMultimeter / PowerSourceAC / PowerSourceDC / PowerMeter / PowerAnalyser / WaveformGenerator / FrequencyCounter / AudioAnalyser / ModulationMeter / FieldStrength / FilterRF / WirelessTestSet / Attenuator / Switch / Positioner / RangeFinder / PATester 他。

WirelessTestSet / FieldStrength / ModulationMeter / FilterRF は pymeasure でも希薄。この 4 カテゴリが LabToolkit を掲載する主な理由になる。

pyLabLib との棲み分け

成立。pyLabLib は顕微鏡 / カメラ / ステージ寄り、LabToolkit は RF テストベンチ寄り。重なりは Oscilloscope / DMM のみ。3 ライブラリはドメインで住み分けられており、Nobuki-san の選定は目的ドメインに応じた並列選択になる。

LabToolkit 掲載判定: 保留 (条件付き掲載)

3. 前回報告の honest correction — LabAgent star 数

訂正: 第 3 回探索の要約で LabAgent の star 数を 「★6・48 コミットの個人リポジトリ」と書いた行に対して、直前の別行で 「Anai-Guo/LabAgent (要確認・84)」 と 84 という数字を併記していた。fork agent が GitHub リポジトリページで stargazers_count を直接確認したところ 実測 ★6。「84」の由来は今回の探索メモから追跡できず、別リポジトリの数字が混入したか、あるいは前回セッションの手元メモ上の書き間違いの可能性がある。

訂正後の正しい表記: Anai-Guo/LabAgent は ★6・48 commits・単独メンテナ・Development Status :: 3 - Alpha・最終 push 2026-08-05。掲載判定 (掲載可 条件付き) は star 数訂正後も変わらない (三例中もっとも実装が新しく Pydantic + YAML policy 型化 approach を持つという判定根拠は star 数と独立)。

4. Honest scope

  1. 本 note は fork agent 2 体が github.com リポジトリページ経由で読んだ内容の集約。raw.githubusercontent.com 経由の README fetch は今回の第 3 回探索で承認待ちで失敗しており、この制約は次回定期実行の default URL 修正で解消予定 (STEP 別 arc)
  2. LabAgent の三段判定は Python 型と YAML policy の対応まで確認したが、Nobuki-san の実機接続での end-to-end 動作は未検証。掲載時は「一次資料による静的確認済、実機挙動は未検証」を明示
  3. LabToolkit の RF カテゴリ 4 種 (WirelessTestSet / FieldStrength / ModulationMeter / FilterRF) が pymeasure に本当に無いかは pymeasure 側 driver 一覧との突合まで踏み込んでいない。fork agent の「pymeasure でも希薄」判定は README + driver directory の目視スキャンレベル
  4. 「三段安全設計 3 例」という枠自体が、今回の探索で目に入った範囲での標本。GitHub 全体・GitLab・企業内実装まで含めた網羅性は主張していない

5. Related