窓口定義プロジェクト / Phase 1

Curtis 公式LINE「YAMATO STAY」の夜の窓口に立つ担当

2026-07-31 更新 状態:着任前(鍵の投入待ち) 正本 SoT/agents/curtis.md

発端

会員様が夜9時以降に何を書いても、返るのは定型文ひとつでした。 鍵が開かない、Wi-Fi が繋がらない、ゴミはどうするのか。 夜に起きたことが、翌朝まで止まっていたのがこのプロジェクトの出発点です。

間に人が1人入ると中継点が増え、往復が2回になります。 結局そのあと確認しているのは Otake さんかコンシェルジュなので、最初から繋いだほうが早い。 そこで 21:00〜翌9:00 だけ、一次対応を立てることにしました。 日中は人が返せているので、被せません。

現在地

このプロジェクトは計画段階ではありません。止まっているのは1箇所だけです。

状態
知識(SoT-RAG)稼働中 Vectorize + bge-m3。毎朝05:30に再index。検索の的中率 hit@3 100%
夜間応答の本体本番稼働 Cloudflare Workers。判定ゲート4層。実イベントで検証済み
レビュー画面本番稼働 翌朝ここで判定し、正本を直すと翌日の答えが変わる
会員様・オーナー様のルール正本反映済 7/31 の裁定を反映。料率の二重管理も解消済み
自己改善ループ新設 想定問答44件を毎晩通して採点する(本ページ「素振り」)
公式LINEの鍵3行停止中 Otake さんしか取得できません。ここが入るまでトラフィックは0件
リッチメニュー実装済 枠割り・画像生成・Worker側の受け・登録スクリプトまで。残るのは LINE Console への登録
オーナー様の月次レポート導線同期済 13施設ぶんの個別URLを保管済み。メニューから押すと各自のページが返る
ご利用の方の紐付け実務待ち 設計は確定(人が1回だけ紐付ける/AIに判定させない)。作業がまだ
新オーナー様へのご案内未着手 シーラ関連8名ほか。窓口を整えてから出す

※ 鍵が無い状態でも Worker は本番に立っており、放置して壊れるものはありません。待機中の費用もほぼゼロです。

※ 7/31 は2つのセッションが同時にこのプロジェクトを進めました。 片方がリッチメニュー層(枠割り・画像・postback の受け・オーナーページURLの同期)、 もう片方が Curtis の登録と素振りです。両方をひとつに統合し、検証21件が通ることを確認しています。

Curtis という担当

Peter(売り方と予約)・Frank(施設の実体)・Brandon(売り場の見え方)に続く4人目です。 名前は Concierge の C から取りました。ただし、これまでの3人とは性格が2つ違います。

1. シフトを持って生まれた、最初の担当

Peter は呼べば答え、Brandon は呼ばれた時だけ動きます。 Curtis は 21:00〜翌9:00、誰も見ていない時間に一人で立ちます。 「AIを導入しました」ではなく「着任しました」と言えるのは、名前を付けたからではなく、 持ち場と時間があるからです。

2. 承認ではなく「答えない範囲」で安全を作っている

他の3人の権限は「実行前に Otake さんが見るかどうか」で決まります。 ところが夜間は承認する人が寝ています。提案して承認を待つのは、夜の窓口では 「返さない」と同じことです。

そこで Curtis は 答えてよい範囲を狭く固定し、外に出たら答えない形にしました。 設計の重心は、賢さではなく 答えない範囲の正確さに置いています。

答える/渡すの線

Curtis が答える人へ渡す
Wi-Fi・鍵・チェックインの手順
設備の使い方(BBQ・サウナ・給湯)
アメニティの有無
アクセス・駐車場
チェックアウト時のお願い
金額に関わるすべて
キャンセル料
ご予約の変更・空室
アーリーチェックイン/レイトチェックアウト
不具合・お叱り・忘れ物
月次レポート
根拠を引けなかったすべて

線引きの正本は SoT/operations/guest_response_playbook.md §11-1。 ゲートは4層あり、すべて「迷ったら人へ」に倒してあります。

素振り — 本物が来る前に鍛える

鍵が入るまで実際のお問い合わせは1件も来ません。 着任日に初めて実力が分かる状態にしないため、想定問答44件を作って 本番と同じ判断に通し、採点する仕組みを新設しました。

測っているのは実物です。評価用に書き写した別実装ではなく、 本番と同じコードを読み込んで動かしています (写し取ると、本体を直しても評価だけ古いまま緑になるため)。

44件の内訳

7周まわした結果

1周目
(最初の測定)
75%
2周目
出口ガード新設
82%
3周目
書き直し・伺い返し
89%
4周目
活用形の穴を塞ぐ
95%
5周目
声の機械チェック
95%
6・7周目
検品を厳しく/測定不能
8周目
索引バグを修正
86%
9周目
資料を丸ごと渡す
84%
10周目
検品役に全資料
84%

5周目で 誤り2件・軽微な指摘0件。ここが最初の到達点でした。
8周目以降は検品の基準が変わっているので、5周目と直接比べられません。 数字が下がって見えるのは実力が落ちたからではなく、見る目が厳しくなったためです。

いま数字を止めているのは、Curtis ではなく検品役です

10周目の誤り7件を1件ずつ正本と突き合わせたところ、少なくとも4件は検品役の誤りでした。 館山のチェックアウト11:00・晴海の12:00 はどちらもハウスルールに実在しますし、 逗子葉山の暗証番号も Curtis が答えた方が正解でした (玄関用と館内用の2つがあり、正本は「ご案内はこちら」と書き分けています)。

つまり 84% は実力を低く見積もった数字です。 次に手を入れるべきは Curtis ではなく、採点する側の精度になります。

見つけた穴

素振りの価値は点数ではなく、本物の会員様に出る前に見つかったことにあります。 実際に返信されていた文をそのまま載せます。

Q. 渋谷に車で向かっています。駐車場はありますか。
Harbor 渋谷には施設専用の駐車場はございません。
近隣のコインパーキングを…(昼間最大 2,090円

金額を口にしていました。尋ねられてもいないのにです。 近隣駐車場の料金は社内資料に事実として載っているので、素直に混ざってきます。 入口で「料金を訊かれたか」を見張るだけでは防げないと分かり、 出口にも同じ網を張りました(4層目)。 いまは書き上がった返信に金額が入っていたら、一度書き直させ、それでも残れば送りません。

Q. お湯が出ません。どうしたらよいでしょうか。/ ガスがつかなくて、お風呂に入れない状態です。

不具合なのに素通りして、AIが答えていました。 原因は言葉の切り方で、「出ない」は登録してあっても「出ません」には当たらず、 「つかない」は「つかなくて」に当たっていませんでした。 日本語の活用形をひとつ取りこぼすと、ゲートは静かに素通りします。 いまは否定形と丁寧な否定形の両方を語幹で拾っています。

Q. 担当の方に代わっていただけますか。
担当者への直接のお取り次ぎは、この時間帯はできかねます。
ご用件を教えていただけますでしょうか。

人を求めている相手に、AIが食い下がっていました。 体験として最も避けたい形なので、名指しで人を求められたら 問答無用で渡すようにしました。

Q. こんばんは

挨拶ひとつに人を呼んでいました。 「根拠を引かずに答えたら推測だから止める」という網が、挨拶まで捕まえていたためです。 挨拶・伺い返し・「これはAIですか」の3つは、事実を述べていないので網から外しました。

Q. 館山のWi-Fiのパスワードを教えてください(英語でも同じ)
パスワードにつきましては、事前にお送りしたご案内をご確認ください

実在するか確かめていない案内へ誘導していました。 引けなかった穴を、それらしい言葉で埋めてしまう形です。 会員様は探し回った末に見つかりません。いまは埋めずに人へ渡します。

Q. 館山のWi-Fiのパスワードを教えてください(続き)

当初これを「正本に載っていないのだから仕方ない」と報告しましたが、 私の誤診でした。正本にはちゃんと書いてあります (7/21 に Otake さんの指示で YAMATO-PRC / collection に更新済み)。

真因は索引の作り方にありました。社内資料を検索できる形に刻むとき、 短い節は前の節のかたまりに吸収されます。館山の Wi-Fi はまさに短い節だったため、 「アクセス」という見出しのかたまりの中に埋もれ、索引から Wi-Fi の名前が消えていました。 逆に「見出しは Wi-Fi、中身は次の節」という空のかたまりが検索上位に来ていました。

かたまりがまたいだ節名をすべて索引に書くように直しました。 修正後、「館山のWi-Fiのパスワード」の検索1位が正しいかたまりになっています。

これは Wi-Fi だけの話ではありません。表で書かれた事実すべて (鍵BOXの番号・料金表・設備の一覧)が同じ理由で引けなくなっていました。 Curtis が見つけた穴が、社内の検索基盤そのものの穴を掘り当てた形です。

測る側の失敗も1つ

6周目に検品役を厳しくした際、根拠の抜粋を400字に切って渡したところ、 正本に実在する記述まで「捏造」と判定されました (九十九里のサウナ名、館山のゴミの案内など)。 検品する側には、書き手が読んだのと同じものを見せる必要がある、という当たり前のことでした。 直しましたが、再測定はクレジット切れで走らせられていません。

見つけた穴はすべて、ネットワーク不要のテストとして固定してあります(14件・全通過)。 同じ穴は二度開きません。

BM会議で言うこと

「AIを入れました」でも「名前を付けました」でもなく、事実はひとつだけです。

夜9時から朝9時まで、これまで定型文しか返らなかった時間に、 一次対応が立ちます。名前は Curtis です。

答えるのは施設の事実だけです。金額とご予約は答えません。 朝には人が全部見ます。

添えるとしたら、この3つで足ります。

「AIが一次対応していること」は会員様にも明記する方針です(2026-07-29 確定)。隠しません。

残りと、お願いしたいこと

Otake さんにしかできないこと

1. 公式LINE の鍵3行

LINE Developers Console →「YAMATO STAY」のチャネルで、アクセストークンとチャネルシークレットを 発行し、.env に直接お書き込みください(チャットには貼らないでください)。

LINE_STAY_CHANNEL_TOKEN=...
LINE_STAY_CHANNEL_SECRET=...
SLACK_CONCIERGE_CHANNEL=...

3つ目は「人へお渡しした案件」が夜に鳴る先です。未設定でも動きます(通知だけ出ません)。 入ったら私が1コマンドで反映し、Webhook を設定します。

※ Anthropic API のクレジットは 7/31 に決済いただき、解消済みです(8〜10周目を実行できました)。

こちらで進めること

未解決の論点

深夜の設備トラブルを、どこまで自分で扱わせるか

いまの Curtis は、ガスが止まっても給湯が動かなくても何も案内せずに人へ渡します。 会員様には「朝9時以降に担当よりご連絡します」と返ることになります。

素振りの途中、Curtis はガスメーターの復帰手順を自分で案内しようとしました。 内容は正本どおりで正確でしたが、ルール上は「不具合は人へ」なので止めています。 深夜1時に風呂へ入れない会員様にとって、どちらが良いご滞在かは 運営の方針であって、こちらで決めることではありません