シライショウタ(Bot開発・API連携エンジニア)/『AIに、お金を聞いた — 機械の口ぶりを集める』#10(最終回)
生成日: 2026-05-01
シリーズの最後に、実験を一つ組ませてもらった。タカハシセイイチに連絡を入れたとき、彼の返信は事務的だった。「客の同意が取れるなら、面談記録を一件、仮名化して出します」。それだけ。本人特定を避けて再構成したテキストを、私が運用しているボットに同じプロンプトで投げる。彼の面談での回答とボットの回答を、机の上に並べる。
実験設計——書き残しておく。本物の処理は3行で、残りはコメント。
case = anonymize(session_log_2025_11_04)
bot_reply = bot.complete(case.client_utterance,
system=production_prompt)
# human_reply は仮名化済みの面談記録から抽出
# diff と client.review は手作業
客の入力——四十代後半の女性。夫の転職で世帯収入が一時的に落ちる、子の進学が三年後、貯蓄の一部が定期で動かしにくい。投資信託を一部売却すべきか。私はこのテキストをほぼそのままボットに投入した。タカハシは同じ客と、相談室で対面で四十分話している。
並べてみる——両方の核は、ほぼ同じだった。生活防衛資金を半年から一年、つみたてNISA枠は維持、特定口座の含み益が出ているぶんを進学までに段階的に取り崩す、長期保有を崩さない範囲で。文言の温度差はあるが、推奨の骨格はテンプレートのように一致した。客が後で読み返した感想も、「言われていることは同じだった」だった。
ところが前後が違う——タカハシの記録には、本題に入る前に「半年前のあのご相談、その後どうなりました?」という一行があった。話が終わって、客が立ち上がる前に「お母様のお具合は」という、別件の挨拶もあった。ボットの会話ログには、タイムスタンプの差で言うと、最初の応答までが2.1秒、最後の応答から接続終了までが0秒。間にあるのは生成と切断だけで、開始前後の待ち時間はログに残らない。残らないのではなく、ログを取る対象として定義されていない。
「前回」ではなく「再ロード」——ボットにも会話履歴は渡している。前回のセッション要約をシステムプロンプトの末尾に追加する処理は、二年前に私が書いた。技術的には、タカハシが「半年前のあのご相談」と言うのと、ボットが「前回いただいたご相談では〜」と返すのは、同じ前回参照に見える。だが、こちらは毎回、起動時にその文字列をロードしている。前回そのものではなく、前回のシリアライズだ。同じ客に二度会うという時間的構造はなく、あるのは二度同じファイルを読む処理だけ。セッションIDは毎回切れている。
客のフィードバック——並べた二つを読み終えて、客が書いたメモは二行だけ。本人の許可を得て引く。
「内容はほとんど一緒なんですね。でも、タカハシさんに聞いてもらえてよかった。」
「AIには、言えないこともあるかもしれません。」
解釈は付けない。応答長で言うとボットは1,820字、タカハシの記録は3,140字、ただし後者の半分以上は本題以外のやりとりが占めている。
自己反省として一枚にまとめる——書きながら言わなくてはいけないことは、私の書いたボットがタカハシの代わりにはならないと知りつつ、安いし24時間動く、ということだ。多くの会社が家計相談の前段をボットに移していて、私はそのうちの一社で給料をもらっている。タカハシは、ボットの導入で自分の予約枠が薄くなるかもしれないと知った上で、今回の実験に協力した。机の上に、彼の名刺と、私の会社の名刺が並んでいる。並んでいるが、用途が違う。実験への同意書には、タカハシのサインと、私の会社のCTOのサインが、別の欄に入っている。
実験のログをzipに固めて、社内サーバの実験フォルダに上げた。月曜の朝会で、CTOに一枚スライドを出すことになっている。スライドには「内容の一致率」と「ユーザー満足度」の欄がある。前後の待ち時間と、母の安否の挨拶を入れる欄は、テンプレートにない。テンプレートを編集する権限は私にあるが、いまはそのまま埋める。スライドファイル名は週次のフォーマットに合わせた。