以下の内容はhttps://moneyforward-dev.jp/entry/2026/03/11/electric-sheepより取得しました。


AIはデンキヒツジの夢を見るか? - Claude Codeで構築した自己学習フィードバックループ

まえがき

皆さんは最近「夢」を見ていますか?
こんにちは、クラウド経費本部 プロダクト開発部 Guardianグループでリーダーをやりつつ、福岡TechPR(技術広報)でよろづやとして暗躍(?)している、@tosite(てっしー)と申します。

以前の記事で「RSpecとAIを組み合わせたパフォーマンスチューニングの自動化」について紹介しましたが、今回はその延長線上にある取り組みについてお話しします。
テーマは「AIに夢を見させる」です。「なんのこっちゃ」という感じだと思いますが、読み進めていただければきっと伝わるはずです!

moneyforward-dev.jp



はじめに

私たちGuardianグループでは、社内の問い合わせ対応業務にAI(Claude Code)を導入しています。
カスタマーサポートから届く技術的な問い合わせに対し、AIが一次分析を行い、対応方針・優先度・過去の類似事例を即座に提示するという仕組みです。

ところが、導入して気づいたことがあります。
「AIは間違える。そして、色んな間違いを何度も繰り返す」と。

プロンプトを手動で書き換えれば改善はできます。
ですが、それでは人間がボトルネックになってしまいます。問い合わせの傾向は日々変化し、プロダクトの仕様も更新されていく中で、プロンプトを手作業で追従させ続けるのは現実的ではありません。

では、どうするか?

私は社内の他の方とお話ししている中で「AIが夢を見ること」を思いつきました。
つまり「人間が夢の中で記憶を整理するが如く、AIが自分自身の出力をふりかえり、自律的に賢くなっていく仕組み」です。

チーム内での通称は「デンキヒツジ」。
由来はもちろんフィリップ・K・ディックの名作SF小説『アンドロイドは電気羊の夢を見るか?(Do Androids Dream of Electric Sheep?)』です。

人間が夜に夢を見て記憶を整理するように、AIも経験をふりかえり、重要なことだけを記憶に定着させ、不要な記憶は忘れていく。
では、私たちのAIは電気羊の夢を見るのでしょうか?
この記事では、その設計思想と実装について紹介します。

アイキャッチ。羊が0と1の夢を見ている。

全体アーキテクチャ

フィードバックループの全体像

まずは全体像からご紹介します。以下の5つのフェーズでフィードバックループが回っています。

デンキヒツジのフィードバックループ全体図。AIの一次分析→人間による対応→AIのセルフフィードバック→人間による学習承認→コアメモリ更新の5フェーズが循環する構造

では、各フェーズを順番に見ていきましょう。

Phase 1: AIによる一次分析

問い合わせが発生すると、AIが即座に以下の分析を行います。

  • 対応可否判定: 自チームで対応可能か、他チームへのエスカレーションが必要か
  • 優先度判定: 影響範囲や再現性から優先度を決定
  • 過去事例検索: 類似の問い合わせを自動検索し、関連度スコア付きで提示
  • 迂回策提案: 根本対応を待たずに業務を継続できる方法を提案
  • 不足情報の指摘: 調査に必要な追加情報を整理

ここでのポイントは、AIがコアメモリを参照していることです。
コアメモリには過去の学習で得られたパターン(例:「この種の問い合わせはDB確認を優先すべき」「この機能に関する問い合わせは仕様確認が先」など)が格納されており、AIはこれを踏まえた上で分析を行います。

Phase 2: 人間による調査・対応

AIの一次分析はあくまで「叩き台」です。
私たちGuardianがそれを参考にしながら、実際の技術調査と対応を行います。

AIの分析が的確であれば対応はスムーズに進みますし、的外れであれば無視して独自に調査します。
いずれの場合も、最終的には人間が責任を持って対応を完了させます。
この「AIは補助、人間が最終判断」という役割分担が、このシステムの大前提です。

Phase 3: AIのセルフフィードバック

問い合わせがクローズされると、AIが自分自身のレビューをふりかえるフェーズに入ります。
AIは以下の観点で自己評価を行います。

観点 評価内容
対応可否判定 「対応可能」と判定したが、実際はエスカレーションが必要だった → 不正確
迂回策 提案した迂回策が実際に採用された → 的確
不足情報 指摘した項目のうち半分しか実際には必要なかった → 過剰

そして、このふりかえりから「学習ポイント」を自動で抽出します。

学習ポイント(例):
- [ ] この種のエラーはフロントエンドの問題ではなく、データ不整合が原因であることが多い
- [ ] 設定変更後の不具合は、まずDB上の変更履歴を確認すべき
- [ ] ファイルアップロードの問題は、拡張子だけでなくContent-Typeも確認が必要

各学習ポイントにはチェックボックスが付いています。これが次のフェーズで重要な意味を持ちます。
なお、このフェーズでは学習データの蓄積は行いません。学習として定着させるかは、次のPhase 4で人間が判断します。

Phase 4: 人間による学習承認

さて、ここがこのシステムの最も重要なフェーズです。
チームメンバーがAIのセルフフィードバックを読み、以下の2つのアクションを行います。

1. 学習ポイントの選別

AIが提示した学習ポイントの中から、実際に有効だと思うものにチェックを入れます。

- [x] この種のエラーはデータ不整合が原因であることが多い ← 有効!
- [ ] 設定変更後の不具合はDB上の変更履歴を確認すべき ← すでに知っている / 的外れ
- [x] ファイルアップロードはContent-Typeも確認が必要 ← 有効!

2. フリーテキストによるフィードバック

チェックだけでは伝えきれないニュアンスを、自由記述で補足します。

「AIの自己評価は概ね正確だった。ただし迂回策の評価が甘い。提案した方法は理論上は正しいが、実運用では使えないケースがある。」

このフィードバックはAIによって構造化データに変換され、学習データとして蓄積されます。

なぜ人間のゲートが必要なのか

AIが自分で「これは重要な学習だ」と判断して自動的に記憶に定着させることも、技術的には可能です。
ですが、私たちはあえて人間による承認ステップを設けました。理由は3つあります。

  1. AIの自己評価は完璧ではない: AIが「正確だった」と思っていても、実際には見当違いだったケースがある
  2. 文脈の欠落: AIはテキスト上のやり取りしか見ていないため、口頭での議論や暗黙知を反映できない
  3. 学習の質を保つ: ノイズの多い学習データが蓄積されると、かえって精度が下がる

AIが提案し、人間が承認する。この協調が、学習の質を担保する鍵です。

Phase 5: コアメモリ更新

蓄積された学習データは、定期的にコアメモリに統合されます。

スコアリングシステム

学習データはすべてスコアで管理されます。

イベント スコア変動
新規パターンの検出 +5(初期値)
人間が学習ポイントを承認 +3
人間が学習ポイントを却下 -1
人間からの改善提案 +2
AIの自己評価が正確だった +2
AIの自己評価が不正確だった -2
90日間参照されなかった -5

このスコアリングにより、本当に価値のある知識だけが生き残る仕組みになっています。

記憶の階層化

スコアに応じて、知識は3つの階層に分配されます。

コアメモリの記憶階層図。スコアに応じてメインプロンプト・コアメモリ・アーカイブの3階層に分配される構造

スコアが高い知識ほど、AIの判断に強く影響します。
十分に検証され、繰り返し有効性が確認されたパターンだけが「メインプロンプト」に昇格し、AIの基本的な判断基準の一部になります。

忘却メカニズム

90日間参照されなかったパターンは自動的にスコアが減衰します。これによって以下のメリットがあります。

  • プロダクトの仕様変更で陳腐化した知識が自然に消えていく
  • コアメモリが常に最新かつ関連性の高い知識で構成される
  • 人間が手動でクリーンアップする必要がない

「覚えること」と同じくらい「忘れること」は重要です。

副次的に得られた効果: チーム全体の学習加速

このシステムには、当初想定していなかった嬉しい副次効果がありました。

Phase 4が「チーム学習の場」になった

学習承認のフェーズ(Phase 4)では、チームメンバー全員がAIのセルフフィードバックを確認し、「これは有効な学習か?」を判断します。
この作業を通じて、以下のことが自然に起きるようになりました。

  • 問い合わせパターンの共有: 「このパターンの問い合わせについて、実はこう対応するのがベスト」という暗黙知が明示化される
  • 判断基準の統一: 「この場合はエスカレーションすべき」「この場合は迂回策で十分」という判断基準がチーム内で揃っていく
  • 新メンバーのキャッチアップ: 過去の学習データを読むだけで、頻出パターンと対応方針を短時間で把握できる

AIの学習を評価するという行為が、人間の学習にもなっています。これは嬉しい誤算でした。

設計上の工夫

1. GitHub Issueを学習データストアとして活用

本来であればRAGなどを使って知識を蓄積・検索できる仕組みにしたいところですが、インフラの構築コストがかかってしまいます。
まずはPoCとしてサクッと動くものを作りたかったので、学習データの蓄積先には専用のGitHub Issueを使うことにしました。

  • バージョン管理: コメントの編集履歴が残る
  • 検索性: GitHub上で全文検索できる
  • 透明性: チーム全員がいつでも閲覧・監査できる
  • 追加コスト0: 新たなインフラが不要

2. 冪等性の担保

コアメモリ更新処理は、処理済みのデータにマーカーを付与することで冪等性を担保しています。
同じコマンドを何度実行しても、すでに処理済みのデータは再処理されません。安全に繰り返し実行できます。

3. コアメモリの上限管理

コアメモリには最大30件の上限を設けています。
参照する知識が多すぎるとノイズになるため、スコアリングによる自然淘汰で本当に重要なパターンだけを残しています。

現在の状況

この仕組みは現在PoC段階で、チーム内で実際の問い合わせ対応に適用しながら検証を進めています。
手応えとしてはかなり良く、フィードバックループが回るたびにAIの分析が的確になっていく実感があります。
定量的な効果測定も含めて、引き続き検証を頑張っているところです。

まとめ

このシステムの本質は、単にAIを賢くすることではありません。

AIのセルフフィードバックを人間が評価するというプロセスは、AIの学習であると同時に、人間の学習でもあるのです。
AIが見落とした観点に人間が気づき、人間が言語化しきれなかったパターンをAIが抽出してくれます。
この相互作用が、チーム全体の対応力を底上げしています。

「夢」のメタファーで言えば、AIは毎晩の夢で経験を整理し、朝起きたら少しだけ賢くなっている。
そして、その夢の内容を人間が一緒にふりかえることで、人間も新しい気づきを得る。

プロンプトを一度書いて終わりにするのではなく、プロンプトが自律的に進化していく仕組みを作る。
これが、私たちが「AIに夢を見させる」と呼んでいるアプローチであり、「デンキヒツジ」の正体です。

私たちのAIが見ている電気羊の夢。
それは、昨日の問い合わせ対応をふりかえり、明日はもう少しうまくやろうとする、ささやかな自己改善の夢なのかもしれません。

今回の取り組みによってGuardianグループのCRE(Customer Reliability Engineering)業務がさらに進化するとともに、皆さまにとっても参考になれば幸いです。




以上の内容はhttps://moneyforward-dev.jp/entry/2026/03/11/electric-sheepより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14