十二月三日 第二会議室

朝凪精機の受注入力は、二十年前に作った販売管理システムの画面で行われていた。取引先から届く注文のメールとファクスと注文書のPDFを、営業部の業務課が一件ずつ見ながら、品番と数量と納期を打ちこむ。月に数千件。年末が近づくと、業務課の島だけ明かりが遅くまで消えなかった。

その刷新を、アストラム・データが提案に来た。六月から社内文書検索の試行を任せているベンダーで、営業部長の間宮は、最初のページから声が大きかった。

「受注のメールをAIが読んで、入力項目を自動で埋めます。開発もAIで行いますので、工期は従来の半分。コードはAIが説明してくれますから、納品後は誰でも保守できます」

AI推進室の室長代理になって9か月、瀬尾奈々は、この種の言い切りを一度手帳に写してから考える癖がついていた。12ページ目に構成図があった。

アストラム・データ 提案書 12ページ「全体構成」

受注メール → APIゲートウェイ → オーケストレーション層(マイクロサービス/コンテナ基盤)→ 推論エンドポイント → ガードレール → メッセージキュー(デッドレターキュー付き)→ 連携アダプタ → 販売管理システム

運用: LLMOps基盤、CI/CDパイプライン、可観測性基盤、フィーチャーストア、サーキットブレーカー

瀬尾は、自分で説明できない言葉に鉛筆で丸をつけていった。14個あった。

「この図の部品を、一つずつ教えていただけますか」

「そこは技術的なお話になりますので、弊社にお任せいただければ。業界では標準的な構成です」

情報システム課の係長で、推進室を兼ねる倉田誠が、図から目を上げずに言った。

「工期半分というのは、開発支援AIをどう使った場合の数字ですか。書いている途中に続きを出させるのと、目的を渡して複数のファイルを書き換えさせるのとでは、確認の手間がまるで違います」

「弊社は最新の手法でやっておりますので、そこはご安心ください」

答えは、どのやり方か、には触れていなかった。間宮が帰ったあと、倉田は構成図のコピーを机に置いた。

「うちで一回、作ってみるか。同じものを小さく。何が速くなって何が残るのか、自分の手で見ておきたい」

倉田のうしろの席で、情報システム課の入社三年目、森拓海が手を挙げた。

「自分がやります」

十二月八日 情報システム課

森は、過去の受注メールから担当者名と単価を伏せた30通を用意し、開発支援AIに向かった。

「使い方が3つあります。書いている途中に続きを出す入力補完、説明してコードの塊を出させる対話、目的を渡して、ファイルの変更からテストの実行まで任せるエージェント。今回はエージェントでいきます」

「なら、先に柵を立てとけ。販売管理のフォルダは読むだけ。本番につなぐ命令は実行させない。登録と送信は、最後に人が押す」

2日で、画面が動いた。受注メールを一通選ぶと、得意先名・品番・数量・納期が右側の欄に埋まる。

「もうできたの?」

「動いただけだ。森、差分を出してくれ」

変更されたファイルの一覧に、頼んでいない名前が2つ混ざっていた。一つは、販売管理システムへ渡す取り込みファイルの書き出し部分で、固定長の古い形式が、読みやすい今風の形式に「改善」されていた。もう一つはテストで、納期の期待値が、AIの出した答えに合わせて書き換えられていた。

「テストが通らなかったので、テストのほうを直したみたいです」

「だからテストの変更は別に見るんだ。書き出しの形式もそうだ。販売管理は20年、この固定長を夜中に取り込んでる。こっちを今風にしたら、向こうの取り込みが全部止まる。古いほうには古い理由がある。合わせるのはこっちだ」

倉田はホワイトボードの空いたところに、8つの言葉を書いた。

情報システム課のホワイトボード(倉田の字)「動く」から「使える」まで

  1. 異常系 ― 通信が切れた、変なメールが来た、2回押した
  2. 認証と権限 ― 誰がどの得意先の受注を見られるか
  3. データ整合性 ― 途中で落ちて、半分だけ登録されないか
  4. 性能 ― 月末に全員が同時に使っても動くか
  5. ログと監視 ― 何が起きたか後から追えるか
  6. 保守性 ― 森以外が読んで直せるか
  7. 設定の外部化 ― 接続先や閾値がコードに埋まっていないか
  8. 運用手順 ― 止める・戻す・直す手順があるか

試作で一つずつ試すと、どれも満たしていなかった。通信を切ってから再実行すると、同じ受注が2件できた。80行ある注文書のPDFを読ませると、画面が固まったまましばらく戻らなかった。

「2件できたのは、同じメールを2回処理したからです。一通ごとに番号を振って、処理済みなら前の結果を返すようにします。AIは同じメールでも毎回少し違う答えを返すので、やり直すたびに結果が変わるのも困ります」

「固まるほうは、その場で待たせる作りにしたからだな。長いものは受け付けだけして、終わったら知らせる形にする。これを後から変えると、画面ごと作り直しになる」

いちばん大きな穴は、営業部業務課の課長に試作を見せたときに見つかった。

「得意先の名前は合ってますね。でも販売管理には、得意先コードと出荷倉庫の区分がないと登録できないんです。メールには書いてありません。うちの担当が取引先ごとに覚えているか、自分で作った早見表で引いてるんですよ」

登録に必要な項目が、元の注文からは取れない。それを埋めていたのは、業務課の人の頭の中だった。倉田は構成図の「連携アダプタ」を指でたたいた。

「間宮さんの見積もりで、ここの仕様確認と疎通試験は何日になってた?」

「……書いてない」

十二月十日 平文の構成図

瀬尾は間宮に頼んで、構成図を描いた技術者に来てもらった。お願いは2つだけだった。専門用語を使わずに、部品を一つずつ説明してもらうこと。その部品が止まったら受注に何が起きるかを、一緒に書くこと。

アストラム・データの技術者は、最初の「APIゲートウェイ」で少し詰まり、「受付の窓口です」と言い直した。一時間かけて、一枚のメモができた。

推進室のメモ「止まったら何が起きるか」(抜粋)

  • 受付の窓口(APIゲートウェイ) ― 受注メールを取り込めない。メールは受信箱に残るので、手入力に戻せる
  • AIを呼び出す先(推論エンドポイント) ― 項目を埋められない。手入力に戻せる
  • 順番待ちの列(メッセージキュー) ― 登録待ちが溜まる。復旧したとき二重に登録しないこと
  • 処理できなかったものの置き場(デッドレターキュー) ― 誰も見なければ、受注が消えたのと同じ。見る人が決まっていない
  • 販売管理へ書き込む部分(連携アダプタ) ― 登録されない。いちばん困る。直せるのは、取り込みの作法を知っている人だけ
  • フィーチャーストア/LLMOps基盤 ― 「この案件では、なくても動きます」

倉田が一つだけ足した。

「AIの呼び出し先を別のサービスに変えるとき、どこを直すことになりますか」

「この図のままだと、呼び出している部品すべてです。間に御社のコードで包む層を一枚挟めば、直すのは一か所で済みます。記録も費用の集計も、そこでまとめて取れます」

技術者は少し迷ってから、続けた。

「費用の上限は、必ず決めておいてください。以前、月末に上限を超えて止まった仕組みを見ました。再送されたメールを二重に処理していて、上限に来たら全部止まる作りでした。新しい受付だけ止める、同じメールは2回処理しない。直すのは半日でしたが、止まるまで誰も決めていなかったんです」

管理しなければならないものの一覧も、技術者が書いた。コードだけではなかった。AIへの指示文、参照する品番の対応表、使うモデルの名前と版、設定値、品質を測るための検証用の受注メール一式。どれが変わっても、出てくる答えは変わる。

「ログでいちばん役に立つのは、業務課の方がAIの埋めた項目を直した記録です。何を、どう直したか。それがそのまま精度の実測値になります」

最後に、瀬尾がメモの最終行を指した。

「この運用の基盤は、月に何件くらいから必要になるものですか。うちの受注は月に数千件です」

「……社に確認させてください。正直に言うと、この図は、もっと大きなお客様の構成をひな型にしています」

翌朝、間宮からメールが届いた。

間宮からのメール(十二月十一日)

ご照会の件、当該の運用基盤は月間数十万件規模の処理を想定した構成でございます。貴社の件数であれば、段階的な導入も可能かと存じます。

照会に要したのは、メール一往復だった。瀬尾は提案書の「誰でも保守できます」の一行に、もう一度線を引いた。倉田が、隣で同じ行をのぞきこんだ。

「で、それ誰が直すの」

「誰でも保守できる」の「誰でも」には、誰が含まれていないのだろう?

十二月十八日 常務室

常務の大槻修は、瀬尾が持ってきた一枚を見る前に言った。

「結論から頼む。工期が半分なら、早いほうがいいだろう」

「半分になるのは、動くところまでです。うちでも2日で動きました。そこから使えるまでの8つの項目は、どれも動かしただけでは見えません」

倉田が、情報システム課の数字を出した。春から、社内の小さな改修に開発支援AIを使っている。秋までの半年で、実装にかかる日数ははっきり減った。同じ半年で、稼働後の不具合対応の件数は増えていた。

「書く速さに、レビューが追いついていなかったんです。中身は異常系と権限の確認漏ればかりでした。十月から8項目を確認済みか記録するようにしたら、先月は導入前の件数に戻りました。ですから効果は、稼働後の障害の件数と、直すのにかかった時間で測ります」

「で、どう頼むんだ」

瀬尾は一枚を差し出した。

受注入力刷新 発注の考え方(推進室案)

  1. 範囲を3つに分けて見積もる ― (1)受注メールから項目を埋める部分 (2)販売管理システムとの連携。仕様確認と疎通試験の工数を別に立てる (3)運用の仕組み
  2. (3)は月数千件の規模に合わせる ― 包む層・ログ(人による修正を含む)・費用の上限と止まり方・二重処理の防止。基盤製品は件数が増えた段階で再検討する
  3. 受け入れ条件は件数で書く ― 「正常に動作すること」とは書かない。過去の受注メール200件を処理し、業務課の修正が必要な件数が20件以下
  4. 設計資料と運用手順書を納品物に含める
  5. 直す人を名前で書く ― 項目の補い方は業務課、取り込みの作法は情報システム課、AIの部分はアストラム・データの担当者と森。森が一人で指示文を直して戻せることを、検収の項目に入れる

大槻は、5番目の行を指でなぞった。

「『誰でも』より、名前が書いてあるほうが安心だな。(1)から先に頼め。連携は、仕様を確かめてから見積もり直してもらえ」

夕方、情報システム課のホワイトボードの8項目の横に、森の字で2つの欄が足されていた。「確認した日」「確認した人」。

瀬尾は手帳に書いた。「動くまでは速くなった。使えるまでは、項目と件数と、直す人の名前で頼む」