研究開発の部門が長時間の試験を回す試験機の運転ログから、条件外れ・停止・設定変更を拾い、試験機ごとの日々の要約にする
毎朝、試験機ごとの前日の運転ログと制御値の記録を読み、条件外れ・停止・アラーム・設定変更の箇所を拾って、試験機ごとの短い要約にします。研究者は20台分のログを開く代わりに、要約と根拠の行を読みます。
- 生成AI
- ChatGPT/Claude
- 連携・自動化
- Make/n8n/Power Automate
- 対象業界
- 製造
- 対象部門
- 品質管理/研究開発
- 対象業務
- 内容確認・チェック/要約
- 主な課題
- データ分析に時間がかかる/属人化している/確認ミスが多い
- AIで行う処理
- 要約
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 朝、研究者が担当の試験機の運転ログのファイルを開く
- 前日の0時から24時までのイベントを上から読み、停止・アラーム・設定の変更を探す
- 制御値の記録をグラフにして、許容幅を外れた区間がないかを目で探す
- 外れた区間があれば、その時刻の前後のイベントをログで探し、理由を推し量る
- 試験記録の表に、前日の運転の状況と気になった点を書く
- 止まっていれば、試験の担当に再開を頼む
- 自動毎朝6時にワークフローが動き、20台の前日分の運転ログと制御値の記録を読む
- 自動試験計画の表から、試験機ごとに実行中の試験と制御値の許容幅を引く
- 自動Code ノードが、制御値が許容幅を外れた区間を拾う
- 自動Code ノードが、運転ログの同じ行の繰り返しをまとめ、イベントの行を種類ごとに印を付ける
- 自動AIが、条件外れの区間とイベントの行から、試験機ごとの前日の要約を作る。文ごとに根拠の行を写す
- 自動Code ノードが、写された行がログに本当にあるかを照らす
- 自動担当の研究者に、試験機ごとの要約を Slack で送る
- 人研究者が要約と根拠の行を読み、気になる区間はログとグラフで確かめて「確認済み」を押す
- 人試験の結果の扱い(その区間のデータを使うか)は、研究者が試験記録の表に書く
各工程の詳しい説明を読む
- 朝、研究者が担当の試験機の運転ログのファイルを開く
- 前日の0時から24時までのイベントを上から読み、停止・アラーム・設定の変更を探す
- 制御値の記録をグラフにして、許容幅を外れた区間がないかを目で探す
- 外れた区間があれば、その時刻の前後のイベントをログで探し、理由を推し量る
- 試験記録の表に、前日の運転の状況と気になった点を書く
- 止まっていれば、試験の担当に再開を頼む
(a)見る行が多すぎる。 アラームが鳴り続けると、同じ行が数百行並びます。その間に1行だけ「設定の変更」が挟まっていても、スクロールの途中で目から落ちます。
(b)見る範囲が人によって違う。 ある研究者はアラームの行だけを数え、別の研究者は制御値のグラフだけを見ます。同じ試験機を交代で見ると、前日の人が見ていなかった種類の異常が、何日も残っていることがあります。
(c)設定の変更が記録に残らない。 夜間の当番が、アラームを止めるために制御のパラメーターを一時的に変えることがあります。運転ログには残っていても、試験記録の表には誰も書いていない、ということが起きます。 後で結果を見たとき、その区間のデータをどう扱うかが決められません。
(d)休み明けが重い。 3連休の後は、3日分のログを担当の台数分読むことになり、午前中がそれだけで終わります。
- 【自動】 毎朝6時にワークフローが動き、20台の前日分の運転ログと制御値の記録を読む
- 【自動】 試験計画の表から、試験機ごとに実行中の試験と制御値の許容幅を引く
- 【自動】 Code ノードが、制御値が許容幅を外れた区間を拾う
- 【自動】 Code ノードが、運転ログの同じ行の繰り返しをまとめ、イベントの行を種類ごとに印を付ける
- 【自動】 AIが、条件外れの区間とイベントの行から、試験機ごとの前日の要約を作る。文ごとに根拠の行を写す
- 【自動】 Code ノードが、写された行がログに本当にあるかを照らす
- 【自動】 担当の研究者に、試験機ごとの要約を Slack で送る
- 【人】 研究者が要約と根拠の行を読み、気になる区間はログとグラフで確かめて「確認済み」を押す
- 【人】 試験の結果の扱い(その区間のデータを使うか)は、研究者が試験記録の表に書く
3番目を規則にしているのが、この設計の分かれ目です。 許容幅は試験計画の数字で、外れたかどうかは計算で決まります。AIに制御値の表を読ませて「外れていそうな区間」を探させると、見つけたり見つけなかったりします。
8番目で人が見るのは、要約が「何かあった」と言っている試験機だけではありません。 「異常なし」の要約も、件数と制御値の最大・最小の数字を一目で確かめます。「異常なし」と書かれた要約を読まずに流す運用にすると、拾い出しの規則の漏れに気づけません。
02今回想定するシステム構成
試験機の制御ソフト(運転ログ・制御値の記録をファイルサーバーに保存) ▼【トリガー】Schedule Trigger(毎朝6時) n8n(社内のサーバーで動かす) ├──▶ Read/Write Files from Disk ── 前日分のファイルを読む ├──▶ Extract from File ── 制御値の記録(CSV)を行にする ├──▶ 試験計画の表 ── 実行中の試験と許容幅 ▼ Code ノード ── 条件外れの区間 / 繰り返しのまとめ / イベントの印 ▼ Basic LLM Chain(Claude:Anthropic Chat Model) │ + Structured Output Parser │ 試験機ごとの前日の要約と、文ごとの根拠の行 ▼ Code ノード ── 根拠の行がログにあるかを照らす ▼ 【人が確認】Slack ── 担当の研究者が「確認済み」を押す ▼ 試験記録の表
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n(Schedule Trigger、Read/Write Files from Disk、Extract from File、Code、Basic LLM Chain、Structured Output Parser) | Make、Power Automate |
| 生成AI | Claude(n8n の Anthropic Chat Model ノード) | OpenAI API |
| 保管 | ファイルサーバー(ログ)、試験計画の表、試験記録の表 | PostgreSQL |
| 通知 | Slack(n8n の Slack ノード) | Microsoft Teams |
新しく足すのは、社内のサーバーで動かす n8n だけです。 試験機の制御ソフトとファイルサーバーには手を入れず、読み取りだけの共有を n8n のサーバーに見せます。
n8n を社内のサーバーで動かすのは、ログのファイルがファイルサーバーにあるからです。 公式のページでは、n8n Cloud の Read/Write Files from Disk は /home/node/ の下だけを読み書きでき、書いたファイルが実行をまたいで残る保証は無いとされています。社内のファイルサーバーを読みに行くには、自社で動かす形が合います。
03どうやって実装するのか
処理の起点を決める
起点は Schedule Trigger で、毎朝6時に動かします。 研究者が出社する前に要約がそろっているようにします。
ワークフローのタイムゾーンを必ず設定します。 公式のページでは、ワークフローにタイムゾーンが無ければインスタンスのタイムゾーンを使い、自社で動かすインスタンスの既定は America/New York とされています。「前日の0時から24時」の区切りもこのタイムゾーンで決まるので、設定しないと区切りが半日ずれます。
休日は動かしたうえで送らない、にします。 休み明けの朝に、休日の日数分の要約を1日ずつ並べて送ります。まとめて1つの要約にしないのは、日ごとに区切っておくと、どの日の何時に起きたかを試験記録の表にそのまま写せるからです。
Schedule Trigger は、ワークフローを保存して公開しないと動きません。 公式のページにそう書かれています。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 運転ログ | 時刻、イベントの種類、メッセージ、操作した人(記録される機種のみ) | ファイルサーバー(試験機ごとのフォルダ) |
| 制御値の記録 | 時刻と、荷重・変位・槽内温度などの制御値 | ファイルサーバー(CSV) |
| 試験計画の表 | 試験機、試験の番号、開始日、制御値ごとの目標と許容幅、担当の研究者 | 試験計画の表 |
| イベントの語の表 | 機種ごとの、停止・アラーム・設定の変更・破断・扉の開閉に当たる語 | 自社で用意する表 |
質を決めるのは、イベントの語の表です。 機種ごとに「STOP」「停止」「Halt」「Interlock」のように言葉が違うので、どの語がどの種類に当たるかを機種ごとに1行ずつ書きます。 この表で印を付けておけば、AIに渡す前に行の種類が決まっています。
試験計画の表には、許容幅を数字で書きます。 「おおむね一定」のような書き方では、規則で外れを拾えません。数字で書けない試験は、この構成の対象から外します。
データの取得方法を決める
ファイルは Read/Write Files from Disk で読みます。 File(s) Selector にはパスか glob のパターンを書けます。公式のページでは * がパスの区切りを含まない任意の文字、 がパスの区切りを含む任意の文字とされています。試験機ごとのフォルダの下の前日の日付のファイルを、パターン1つで取ります。**
n8n 2.0 以降は、読める場所が既定で絞られています。 公式のページでは、2.0 から N8N_RESTRICT_FILE_ACCESS_TO の既定が ~/.n8n-files になり、それ以外の場所を読むにはこの変数をはっきり設定するとされています。ファイルサーバーの共有をマウントしたディレクトリを、この変数に指定します。 Docker で動かす場合は、パスはコンテナの中のものを指すので、共有をボリュームとしてコンテナにマウントします。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 運転ログの行 | Read/Write Files from Disk → Extract from File(Extract From Text File) | イベントの拾い出し |
| 制御値の行 | Read/Write Files from Disk → Extract from File(Extract From CSV) | 条件外れの区間 |
| 実行中の試験と許容幅 | 試験計画の表を試験機で引く | 外れの判定 |
| 担当の研究者 | 同じ表 | 送り先 |
マウントは読み取りだけにします。 n8n からログのファイルを書き換えられる経路を作りません。
文字コードを最初に確かめます。 古い機種の制御ソフトは、ログを日本語の古い文字コードで書くことがあります。読み込んだ行が文字化けしていないかを、機種ごとに1回ずつ確かめます。 文字化けした行は、イベントの語の表に当たらず、黙って「その他」に落ちます。
AIへ渡す前に整形する
- 前日分への切り出し … ワークフローのタイムゾーンで0時から24時の行だけを残します
- 繰り返しのまとめ … 同じメッセージが続く行は、最初と最後の時刻と回数の1行にまとめます
- イベントの印 … イベントの語の表で、停止・アラーム・設定の変更・破断・扉の開閉・その他の印を付けます
- 条件外れの区間 … 制御値の各行を許容幅と比べ、外れが続いた区間を、開始・終了の時刻と最大の外れの値の1行にします
- 区間の前後のイベントの添付 … 各区間の開始の前後30分にあるイベントの行を、その区間に添えます
- 記録の欠け … 制御値の記録の時刻の間隔が、決まった間隔の数倍空いていれば「記録の欠け」の区間にします
2番目を省くと、AIに渡す行が数千行になります。 アラームが鳴り続けた夜のログは、同じ行がほとんどを占めます。まとめても、最初と最後の時刻と回数が残るので、何が起きたかは失われません。
6番目は、条件外れより見落とされやすい異常です。 記録が欠けた区間は、制御値が許容幅の中にあったのか外れていたのかが分かりません。外れの区間と同じ重さで研究者に出します。
4番目の「外れが続いた区間」には、続いた時間の下限を置きます。 制御値の記録は一定の間隔で書かれるので、1点だけ許容幅を外れて次の点で戻るものもあります。1点ごとに区間にすると、試験機によっては1日に数百の区間が出て、要約が区間の羅列になります。 何点続いたら区間とするかは、試験計画の表に試験ごとの列として持たせ、研究者が決めます。決まるまでは1点でも区間にし、件数を見てから下限を決めます。
破断と試験の終了は、区間を拾う前に確かめます。 試験片が破断した時刻より後の制御値は、試験の条件として意味を持ちません。破断の印の付いた行があれば、その時刻より後は区間を拾わず、「破断後」として切り分けます。
AIに処理させる
させるのは、前処理が出した「条件外れの区間」「記録の欠け」「印の付いたイベントの行」を、試験機ごとに時刻の順の短い要約にまとめることだけです。
| 要約に入れること | 書き方 |
|---|---|
| 前日の運転の状態 | 運転を続けた/止まって再開した/止まったまま/試験片が破断した |
| 起きたことの順序 | 時刻の順に、1つの出来事を1文で |
| 条件外れの区間 | 時刻と最大の外れの値を前処理の値のまま。前後のイベントを添える |
| 設定の変更 | 時刻と、変わった項目と値。ログに操作した人があればそれも |
| 研究者に確かめてほしいこと | 理由がログから読み取れない停止や設定の変更 |
各文には、根拠にしたログの行をそのまま写した quotes を付けさせます。 Claude の公式の案内では、作り話を減らす方法として、主張ごとに引用を付けさせて検証できるようにすることと、分からないときは分からないと言ってよいと明示することが挙げられています。
| させないこと | 理由 |
|---|---|
| 条件外れを見つけること | Code ノードが許容幅で決める |
| 数値を計算し直すこと | 最大の外れの値は前処理の値を使う |
| 停止の原因を言い切ること | ログに書かれた順序までしか分からない |
| 試験を有効・無効と言うこと | 研究者の判断 |
| 再開や設定を勧めること | 試験の担当と研究者が決める |
指示内容を固定する
Basic LLM Chain の Chat Messages の System に次の文を入れます。
あなたは研究開発部の評価グループで、試験機の前日の運転の記録を
研究者向けに短くまとめる立場です。
渡された「条件外れの区間」「記録の欠け」「イベントの行」だけを使ってください。
【まとめ方】
- 前日の運転の状態を、次のどれか1つで書く
運転を続けた/止まって再開した/止まったまま/試験片が破断した
- 起きたことを時刻の順に、1つの出来事を1文で書く
- 条件外れの区間と記録の欠けは、時刻と値を渡された値のまま書く
- 設定の変更は、時刻・項目・変更前と変更後の値を書く
- 理由がイベントの行から読み取れないものは、ask_researcher に入れる
【厳守事項】
- 各文の quotes に、根拠にしたイベントの行を一字一句そのまま写してください。
写す行が無い文は書かないでください。
- 渡された行に無い出来事を書かないでください。
- 停止やアラームの原因を言い切らないでください。
「〜の直後に停止」のように、ログに書かれた順序だけを書いてください。
- 数値を計算し直したり、丸めたりしないでください。
- 試験を有効・無効とする判断や、再開・設定についての勧めを書かないでください。
- 分からないことは「ログからは分からない」と書いてかまいません。
- 何も起きていなければ、状態を「運転を続けた」とし、events を空にしてください。
【試験機】{machine_id} 【試験の番号】{test_id}
【許容幅】{tolerances}
【条件外れの区間と記録の欠け】{segments}
【イベントの行】{event_lines}
「写す行が無い文は書かない」を入れるのは、もっともらしい説明を止めるためです。 停止の行の前にアラームの行があると、AIは「アラームにより停止」と書きたくなります。ログが言っているのは順序だけで、因果は研究者が判断することです。
「何も起きていなければ events を空に」を明記するのは、何も無い日に何かを書かせないためです。 指示しないと、平穏な日にも「温度は安定していた」のような文を足し、根拠の行が付かない文が混ざります。
出力形式を固定する
Require Specific Output Format をオンにして Structured Output Parser をつなぎ、次の形で受け取ります。
{
"machine_id": "F-07",
"test_id": "T2026-118",
"date": "2026-10-27",
"run_state": "止まって再開した",
"events": [
{ "time": "02:14", "kind": "停止",
"text": "02:14 に停止。直前の 02:11 から槽内温度のアラームが38回続いていた",
"quotes": ["2026/10/27 02:14:05 STOP by INTERLOCK"] }
],
"segments": [
{ "start": "02:09", "end": "02:31", "item": "槽内温度", "max_dev": "+3.1℃" }
],
"ask_researcher": ["03:02 の再開の前に荷重の上限が変更されている理由"],
"summary": "02時台に温度のアラームの後に停止し、03時に設定を変えて再開した。"
}
1つ目の理由は、quotes を Code ノードで照らせることです。 写された行が前日のログに一字一句あるかを文字列で探し、1つでも見つからなければ、その要約は研究者に送らず、ログの抜粋のまま送ります。 要約が無くても、拾い出しの結果は届きます。
2つ目は、segments を前処理の値と照らせることです。 AIが値を書き写すときに丸めたり桁を変えたりしていないかを、Code ノードで前処理の値と比べます。
3つ目は、run_state を試験記録の表の列にそのまま入れられることです。 4つの値に決めてあるので、月末に「止まって再開した」日を試験機ごとに数えられます。
スキーマは $ref を使わずに書きます。 公式のページでは、Structured Output Parser の JSON Schema で参照($ref)を使えないとされています。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| ファイルサーバー | Read/Write Files from Disk(読み取りだけのマウント) | 運転ログと制御値の記録 |
| 試験計画の表 | 表の読み取り | 実行中の試験・許容幅・担当 |
| Claude | Basic LLM Chain + Anthropic Chat Model + Structured Output Parser | 試験機ごとの要約 |
| 規則 | Code ノード(JavaScript) | 区間の拾い出し、繰り返しのまとめ、引用の照合 |
| Slack | Send and Wait for Response(Approval) | 研究者の「確認済み」 |
| 試験記録の表 | 表への追記 | 要約・確認者・確認の時刻 |
研究者の「確認済み」は、Slack の Send and Wait for Response で受けます。 Response Type を Approval にし、Capture Who Responded をオンにして、誰が確かめたかを記録に残します。 Restrict Who Can Approve で、その試験の担当の研究者に絞ります。
週の終わりには、1週間分の要約を Summarization Chain でまとめます。 公式のページでは、Map Reduce は塊ごとに要約してから要約どうしをまとめる方法で、推奨の選択肢とされています。日ごとの要約を塊にして、試験ごとの週の動きを評価グループの会議に出します。
人が確認する
- 要約と根拠の行を読む … 要約の文と、付いているログの行が合っているかを見ます
ask_researcherを必ず片付ける … 理由が分からない停止や設定の変更は、試験の担当や夜間の当番に確かめます- 気になる区間はグラフで確かめる … 条件外れの区間は、制御値の記録を開いて形を見ます
- データの扱いを書く … その区間のデータを使うか除くかを、研究者が試験記録の表に書きます
4番目は、AIにも規則にも任せません。 許容幅をわずかに外れた区間を除くかは、試験の目的と規格の求めによって変わります。この構成は、外れた事実と順序をそろえるところまでです。
担当が休みの日は、確認する人を代わりの研究者に切り替えます。 試験計画の表に副担当の列を持たせ、担当が休暇の日は送り先と Restrict Who Can Approve の相手を副担当にします。誰も確認しないまま要約がたまると、止まった試験機が何日も放置されます。
目標は、400件をならして1件3分です。 何も起きていない要約は数十秒で済み、停止のあった要約はグラフと照らして数分かかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 前日分のファイルが無い | 試験機の制御ソフトが止まっているかもしれない。「ログ無し」として研究者に送る |
| ファイルが読めない(場所の制限) | N8N_RESTRICT_FILE_ACCESS_TO とマウントを確かめる |
| 試験計画の表に実行中の試験が無い | 許容幅が分からないので区間を拾わず、イベントだけを送る |
| 文字化けした行がある | 印が付かず「その他」に落ちる。機種ごとの読み込みを直す |
| 引用の照合で見つからない行がある | 要約を送らず、ログの抜粋だけを送る |
| イベントの行が多すぎる | 繰り返しのまとめのあとも多ければ、種類ごとの件数と最初と最後の行だけを渡す |
| AIが応答しない | 前処理の結果(区間とイベントの一覧)だけを送る |
| 研究者が確認しないまま翌日になる | 翌朝の要約に「前日分が未確認」と付ける |
1行目と7行目で、「要約が来ない」と「何も起きていない」を分けます。 どちらの場合も研究者には何かが届くようにし、届かない日を作りません。 要約が届かないことを「異常なし」と読むと、止まっている試験機を1日放っておくことになります。
記録を残す
- 前日分の運転ログと制御値の記録のファイル名と、読み込んだ日時
- 前処理の結果(条件外れの区間、記録の欠け、印の付いたイベントの行)
- AIの要約(JSON)と、引用の照合の結果
- 研究者の「確認済み」と、確認した人・時刻
- 研究者が書いたデータの扱い
- イベントの語の表と許容幅の、その日に使った版
最後の行は、規則が後から変わるために残します。 許容幅や語の表を直すと、過去の日の拾い出しの意味が変わります。どの版で拾ったかが残っていれば、試験の結果をまとめるときに、拾い直す範囲を決められます。
04実装レベルの3段階
半自動化で、1件9分が5分程度になります。 条件外れの区間と印の付いたイベントの一覧は届きますが、一覧を読んで順序を組み立て、試験記録の表に書く作業が残ります。 本格構成で3分になり、この段階が本記事の想定です。 半自動化を先に1か月回します。 AIを入れる前に、語の表と許容幅の漏れが、一覧の段階で見えます。 拾い出しの規則が固まってから要約を足すほうが、要約の誤りと拾い出しの誤りを分けて直せます。
05工数削減シミュレーション
導入後 400件 × 3分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 疲労試験・耐久試験・環境試験のように数日から数週間続く試験を、10台以上の試験機で並行して回している研究開発の部門。試験機が運転のログと制御値の記録をファイルで残しており、研究者が毎朝それを開いて夜間の停止やアラームを探している場合。試験計画に制御値の許容幅が書かれている場合。
- 試験が数分から数時間で終わり、終わるたびに研究者が立ち会って記録を見られる場合。試験機の制御ソフトが停止やアラームの日報をすでに出していて、研究者がそれで足りている場合。ログがファイルとして取り出せない場合。なお、試験の結果を有効とするか無効とするかの判断は、この構成では代替できません。
07最小構成で試す方法
- 過去の試験から、夜間に停止した日、設定が変わった日、何も起きなかった日を合わせて10日分選ぶ
- その10日について、当時の研究者が試験記録の表に何を書いたかを確かめる
- 運転ログを、繰り返しの行をまとめたうえで、手元のAIサービスの画面に貼り付ける
- 「この運転ログから、停止・アラーム・設定の変更を時刻の順に1文ずつ書いてください。各文に根拠にした行をそのまま写してください。原因を言い切らず、順序だけを書いてください。何も起きていなければ、そう書いてください」と指示する
- 出てきた要約を、当時の試験記録の表と比べる
10日分は必ずやってください。 ワークフローを組む前に、「繰り返しをまとめたログから、要約が作れるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の記録と同じ出来事が拾えた | 語の表と許容幅の整備に進む |
| 原因を言い切った | 指示の書き方で直る。構成は有効 |
| 当時の記録に無い設定の変更が出てきた | 記録の付け方を直す材料。 この構成の効きどころ |
3行目が出たら、それが一番の収穫です。 運転ログには残っていたのに試験記録の表には書かれていなかった変更で、第3章の(c)そのものです。
試すときは、何も起きなかった日を必ず混ぜてください。 停止のあった日だけで試すと、要約がうまく書けるかしか分かりません。平穏な日に何も足さずに「運転を続けた」と返せるかは、毎朝20台分を読む研究者にとって、停止の日の要約と同じくらい大事です。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| ファイルサーバーが読めない | n8n 2.0 から読める場所の既定が ~/.n8n-files。 変数とマウントを設定する |
| 前日の区切りが半日ずれる | ワークフローのタイムゾーンを設定する |
| 同じアラームの行が数千行になる | 最初と最後の時刻と回数の1行にまとめてから渡す |
| 文字化けでイベントが「その他」に落ちる | 機種ごとに読み込みを確かめる |
| AIが原因を言い切る | 順序だけを書くと指示し、引用の無い文を書かせない |
| 引用の行がログに無い | Code ノードで照らし、見つからなければ要約を送らない |
| 何も起きない日に文が足される | 何も無ければ events を空にすると明記する |
| 許容幅が文で書かれている | 試験計画の表で数字にそろえる |
| 要約が届かない日を「異常なし」と読む | ログ無し・AI失敗のときも必ず何かを送る |
上の3行が、この構成の失敗のほとんどです。 どれもAIの前の段階の問題で、読めない・区切りがずれる・行が多すぎる、のどれかが残っていると、要約の質を上げても意味がありません。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 未発表の材料・部品の試験の条件と制御値、試験の番号、試験機の運転の記録、操作した人の名前(記録される機種のみ)です。
- AIに渡すのは前処理の結果だけにする … 制御値の記録の全体は渡さず、条件外れの区間とイベントの行だけを渡します。試料の配合や材料の名前は、試験の番号に置き換えます
- ファイルサーバーは読み取りだけで見せる … n8n から試験の記録を書き換えられる経路を作りません
- n8n を社内で動かす … ログのファイルを社外のサービスに置かずに済みます
- この構成は試験の結果の判断を代替しません … その区間のデータを使うか除くか、試験をやり直すかは、試験の目的と規格に照らして研究者が決めます
- 操作した人の名前の扱いを決める … 設定の変更をした人が要約に出ることがあります。責めるための記録ではなく、理由を聞くための記録だと、評価グループで先に決めておきます
- 語の表と許容幅の持ち主を決める … 誰でも直せる状態にすると、拾い出しの基準が知らないうちに変わります
誤りが起きた場合のリスクは、条件が外れた区間のデータを知らずに使うことと、外れていない区間を除いてしまうことの2つです。 前者は拾い出しの規則か読み込みの漏れで起き、後者は要約が原因を言い切ったときに起きます。拾うのは規則、まとめるのはAI、決めるのは研究者、の分け方を崩さないことで守ります。
10まず何から始めるか
1週目:許容幅を数字にそろえる
実行中の試験の試験計画の表を見直し、制御値ごとの目標と許容幅を数字で書きます。 文でしか書けない試験は、この構成の対象から外す印を付けます。
2週目:10日分で試す
過去の試験から10日分を選び、繰り返しをまとめたログを手元のAIサービスに貼って要約させます。原因を言い切っていないか、根拠の行が本当にログにあるかを最優先で見ます。
3週目:読み込みと語の表を作る
社内のサーバーに n8n を置き、ファイルサーバーの共有を読み取りだけでマウントします。機種ごとにログを1日分読み、文字化けが無いことを確かめ、イベントの語の表を作ります。
4週目:拾い出しだけを回す
Code ノードで区間とイベントの一覧を作り、AIを入れずに研究者へ送ります。 研究者が「拾えていない」と言ったものを、語の表と規則に足します。
2か月目: 要約と引用の照合を足し、Slack の確認を始めます。3か月目以降: 週の要約を Summarization Chain で足し、1件9分が何分になったかを実測します。研究者が毎朝ログを開かずに要約から始められるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Read/Write Files from Disk の File(s) Selector で glob のパターンを使えること。n8n 2.0 から N8N_RESTRICT_FILE_ACCESS_TO の既定が ~/.n8n-files であること。n8n Cloud では /home/node/ の下だけで、書いたファイルが残る保証が無いこと。Docker ではコンテナの中のパスでボリュームのマウントが要ること | n8n Docs: Read/Write Files from Disk | 2026-10-28 |
| Extract from File の操作に Extract From CSV と Extract From Text File があること | n8n Docs: Extract from File | 2026-10-28 |
| Basic LLM Chain の Chat Messages に System があること。Require Specific Output Format で Structured Output Parser をつなげること | n8n Docs: Basic LLM Chain | 2026-10-28 |
| Summarization Chain の Map Reduce が塊ごとに要約してからまとめる方法で、推奨とされていること | n8n Docs: Summarization Chain | 2026-10-28 |
Structured Output Parser の JSON Schema で $ref を使えないこと | n8n Docs: Structured Output Parser | 2026-10-28 |
| Schedule Trigger は保存して公開しないと動かないこと。タイムゾーンの扱いと、自社で動かすインスタンスの既定が America/New York であること | n8n Docs: Schedule Trigger | 2026-10-28 |
| Anthropic Chat Model のノードで Claude を使えること | n8n Docs: Anthropic Chat Model | 2026-10-28 |
| Slack の Send and Wait for Response の Approval、Capture Who Responded、Restrict Who Can Approve | n8n Docs: Slack の承認 | 2026-10-28 |
| 分からないときは分からないと言ってよいと明示すること、主張ごとに引用を付けさせて検証できるようにすることが、作り話を減らす方法として挙げられていること | Claude Docs: Reduce hallucinations | 2026-10-28 |
試験の結果の扱いは、試験の目的と規格に照らして研究者が決めてください。 本記事は公式のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2208)についてのご相談はこちらから。
