News Observation Lab for Future

LLM が警告ルールを生成し、実行は人間が行う仕組み

A man walks among parked trucks at sunset in an industrial area, creating a serene yet busy scene.

背景

Taabi Mobility が今週リリースした taabi Nexus は、車載カメラやインターホンを活用したフリート管理システムです。トラックの運転手はヒンディー語でシートベルトが外れている旨の警告を受け取り、実際にベルトを操作する場面が映像に収録されています。

システム概要

プラットフォームは、眠気・電話使用・シートベルト・急ブレーキなど約40種の警告を検知し、マネージャーが英語で記述したルールに基づいてメッセージを送信し、トラックへ電話を掛け、フォローアップを記録します。LLM の役割は、入力された文章を6つのキーを持つルール文書に変換することであり、実際のアクションはプレーンエンジンが実行します。

ルール例とスキーマ

例として、10分間に時速60km 超過が2回以上あればマネージャーに通知し、10分経過後も眠気が続く場合はドライバーへ電話を掛けるというルールがあります。このルールは Pydantic v2 モデルで定義され、JSON スキーマや TypeScript 型としてもエクスポート可能です。

オーサリングエージェントとフロー

オーサリングエージェントは2つの割り込みを持つ LangGraph グラフで、文やチャネルが不足していると停止して問い合わせます。ドラフトが検証されると、スキーマと約30項目のセマンティックチェックがコードで記述され、エラーは最大3回の修復のためにモデルへフィードバックされます。結果として、過去7日間で27回のルールが発火し、58回はクールダウンにより抑制されたことが報告されています。

本番環境で顕在化したバグ

1. 「車両ごとに1時間あたり最大1回の通話」という上限が、フリート全体で1時間あたり1回の通話と解釈される誤認がありました。
2. 生電話での「はい/いいえ」判定に平均18〜30秒かかり、直接メッセージAPI呼び出しの1.2秒に比べて遅延が大きくなっています。

実運用で得られた知見

テストと模擬インターホンにより、ドライバーの音声はヒンディー語認識が不安定であることが判明しました。そのため、曖昧な回答は「未確認」と扱い、通話後にアラートストリームを再チェックする方式を採用しました。

技術スタック

– 開発環境:UV Workspace、Python 3.12、FastAPI
– データバリデーション:Pydantic v2
– メッセージング:Kafka (aio‑kafka)、Redis(重複除去・クールダウン)
– DB:PostgreSQL 16(RLS+Alembic)
– オーケストレーション:LangGraph、Claude(エージェント SDK)
– トレース・モニタリング:OpenTelemetry → Tempo、Prometheus、Grafana
– フロントエンド:React 18、Vite、TanStack、Playwright(E2E)
– デプロイ:Docker Compose

まとめ

LLM はルール文書の自動生成に貢献しますが、実際のアクションは人間が介在する設計となっています。スイッチの位置は「2つのボタンとキュー」に集約され、今後は更なる自動化と安全性向上が期待されます。

免責事項・利用上の注意

本サイトは情報提供および調査研究を目的としており、投資勧誘を目的とするものではありません。掲載情報には自動取得・自動翻訳・AI分析による内容が含まれます。投資判断はご自身の責任で行ってください。

詳細を確認する →