おはようございます。座禅いぬです。
最近技術というより生成AIの記事が多くて恐縮です。
現在幾つかの課題提出やMTG、本業での色々な課題に直面しており、それを解決する技術を優先的に学んでいる状態なので、どうしても偏りが発生しちゃうなあ...と。
さて、ある勉強会で自社のインシデント報告書の考え方と付随するビジネス課題の話をしたのですが、そのあと改めてまとめてみようと思い至り作業をしておりました。
インシデント報告ってなんや
ざっくり言うと、「業務システムを運用した当事者が、問題発生及び問題発生の兆候に直面した際報告し、業務システムの改善に用いる仕組み」です。医療でよく使われています。
例えばこんな感じ
患者の名前を読み間違えて、別の患者がさらに聞き間違えて返事をして、「あれ?この人じゃないはずだけど…」と一度待ってもらって、読み間違えに気付いた。
→システムで表示される名前が漢字表記のみであった。今後すべての患者にふりがなを表示するようシステムを修正した。
こんな感じです。ミスが起こる場面はあらかじめすべて想定できるわけではなく、確率はゼロにならないので、あらかじめ大きな問題につながる前に仕組みで対応するわけですね。
前置きが長くなりましたが、この仕組みをCursorやCline等に適用できないか? というのが今日の話です。医療ミスではなく、仕組みの改善という点ですね。僕たちが書いた要件定義に沿って指示をしたが、意図と違うことをやった場合、レポートを書かせる。「起こった事実、なぜそうなったか、対策」をまとめさせ、要件定義を実行するときに参照させたらよいのではないかと。
Cursor Rulesに記載する
さて、この 「AIによる意図しない挙動」をインシデントと捉え、CursorのRules機能(または類似のAIツールのカスタム指示機能)にどう落とし込むか 、というのが今回の肝です。
最近はCursorのRulesを、コーディングスタイルや使用するライブラリ、フレームワークの規約などの指示ではなく、いわゆる「秘書を生成AIにさせる」みたいな使い方も増えていると思います。今回はその中間点みたいな作業ですね。ここに、「インシデント報告とその活用」という観点を加えてみましょう。
そして、報告はyamlで行うのがよさそうです。
title: "{{date}}_{{short_summary}}"
fields:
- 発生日時 # 2025-05-12 07:55
- 発生箇所 # ex) main.py: fetch_patient_records
- 期待した振る舞い # ひらがなを含めた氏名を一覧表示
- 実際の振る舞い # 漢字のみ表示
- トリガー条件 # プロンプト「フリガナを付けて」を誤解
- 原因分析 # LLM側の日本語指示解釈が曖昧
- 暫定対応 # 手動で患者リストにフリガナ列を追加
- 恒久対応 # プロンプトに「kana=true」フラグを必須化
severity_scale:
- S0: "業務停止または安全性に直結"
- S1: "クリティカルだが迂回策あり"
- S2: "軽微な機能不全"
以下、実験して追記します。🧘♂️🐕