非エンジニアがClaude Codeで社内Botを1週間で自作。3ヶ月かかる予定の仕事を置き換えた話

社内向け質問対応Botの仕組み図 Uncategorized

ハルシネーションを防ぐ7つのルールと、使うほど賢くなる仕組み


営業をやりながら、業務効率化のために自動化ツールを自作している。最近は企画寄りの立ち回りが増えて、リスト作成やChatbot開発などDX寄りのこともやっている。

今回は、その中の1つ。社内向けの質問対応Botを、Claude Codeを使って1週間で作った話をする。

エンジニアやDXチームが本気でやれば3ヶ月はかかる規模の設計だったらしい。それを非エンジニアの自分が、土日と隙間時間だけで組み上げた。すごい話に聞こえるかもしれないが、種明かしをすると、時間をかけずに済んだ理由はちゃんとある。


何を作ったか

一言で言うと、Slackで質問すると、社内のあちこちに散らばった情報を検索して、出典付きで答えてくれるBot。

うちの会社は、ある業務グループがまわりから同じような質問をひたすら受け続けていた。「この資料どこ?」「これって前例あった?」「この数字ってどこ見ればいい?」。組織が大きくなるほど、この手の質問は増える。答える側は同じことを何度も説明することになり、聞く側は答えが返ってくるまで待つことになる。

これを、Slackにメンションするだけで解決するようにした。

なぜ作ったか

理由は単純で、組織が急に大きくなって、属人化が限界に近づいていたから。

「あの人に聞けば分かる」が成立している間は問題にならない。でも人数が増えると、その「あの人」に質問が集中して、本来の仕事が回らなくなる。かといって、全部マニュアル化するのも無理がある。マニュアルは作った瞬間から古くなるし、誰も読まない。

だから、「必要な時に、必要な人が、必要な情報にすぐたどり着ける」仕組みを作ることにした。

なぜSlackにしたのか

最初はNotebookLMのようなAIツールにナレッジを溜めていく運用も検討した。でもやめた。

理由は、誰もそのツールを開かないからだ。

いくら賢い仕組みを作っても、普段使っていないツールに情報を置いた瞬間、それは「存在するけど使われないもの」になる。実際、社内で「あのドキュメントどこだっけ」という会話が今も普通に起きている。情報が無いんじゃなくて、見に行く習慣が無いのだ。

だから、機能で選ぶのをやめて、「みんなが既に毎日開いている場所」で選んだ。それが自分の会社ではSlackだった。新しいツールを覚えてもらう必要がない。既存の行動を変えずに、そこに答えが降ってくるようにした。

これは今回作ったBotに限らず、社内向けに何かツールを作るときの一番大事な判断基準だと思っている。どれだけ高機能でも、開かれない場所に置いたら無いのと同じ。

どういう仕組みで動いているか

図にするとこうなる。

社内向け質問対応Botの仕組み図

流れを文章でも説明する。

  • Slackで `@Bot名` にメンションして質問を送る
  • 自動化ツール(Make)がその場で起動する。待ち時間はゼロ
  • AI(GPT-5)が「何を聞かれているか」を判定する。商材名・行為・文書の種類・店舗名など、手がかりになる語を5つ抽出する
  • その手がかりをもとに、8か所の情報源を同時に検索する。社内のドキュメント、過去のチャット履歴、公開FAQ、業務システムの情報、受注データ、売上関連の指標データなど
  • 集めた材料をもとに、AIが回答を組み立てる。ここが一番苦労したところ(後述)
  • 出典リンク付きの回答が、投稿から約30秒でスレッドに返る
  • 回答に「良かった/伸び代ですね」の2択ボタンが付いていて、フィードバックできる
  • 答えられなかった場合は、自動で担当者にエスカレーションされる
  • 担当者が正しい回答をスレッドに書くと、AIがそれを「ナレッジとして残す価値があるか」判定し、社内の知識ベースに1行追記する
  • 次に同じような質問が来たとき、その内容が最優先で使われる

つまり、使えば使うほど回答の精度が上がっていく設計にした。最初から完璧な回答は出せない。でも、聞かれるたびに賢くなる。

一番苦労したところ:嘘をつかせないこと

正直、検索して回答を組み立てるところまでは、そこまで大変ではなかった。一番時間を使ったのは、AIに嘘をつかせないための調整だった。

社内向けの情報Botで一番怖いのは、それらしい嘘の回答を自信満々に返すことだ。特に金額や件数のような数字は、間違った答えが独り歩きすると実害が出る。

実装したルールはこの7つ。

  • 資料に無いことは書かない
  • URLを勝手に組み立てない(それらしいURLをでっち上げない)
  • ID・パスワードの類は絶対に出さない
  • 商材・案件を混ぜて答えない
  • 空欄を「0件」と書かない(データが無いのか、そもそも計測していないのかを区別する)
  • 古い資料を参照した場合は、その旨の注記を添える
  • 根拠となるデータが無い金額は答えない

特に「0件」と「未計測」の区別は見落としがちだった。最初のテストで、本当は計測していないだけの項目を「0件です」と自信満々に答えてしまい、慌てて直した。これをそのまま出していたら、社内の信頼を一発で失うところだった。

実際にかかった時間

全体設計から運用開始まで、実働で1週間ほど。

これまでエンジニアやDXチームが本格的にやれば3ヶ月規模の見積もりだったと聞いている。差が出た理由は、自分が優秀だからというより、Claude Codeに「作りながら直す」やり方が向いていたからだと思う。要件を全部固めてから作り始めるのではなく、小さく動かして、ズレたら直す。これを高速で回せたのが大きい。

今のところ答えられないこと

正直に書いておく。

  • 請求関連の質問(「この会社に請求書は発行されてる?」等)はまだ答えられない
  • 売上ランキング系の質問(「上位◯件を教えて」等)も、まだ元データとの連携が完成していないので答えられない

「わかりません」と正直に言わせる設計にしているので、嘘の回答は返らない。ただ、答えられる範囲はまだ発展途上だ。ここは今後、元データ側の整備が進めば解消していく見込み。

これから同じことをやる人へ

非エンジニアが業務用のBotを作るなら、技術力より先に考えるべきことが2つあると思っている。

  • どこに置けば、みんなが実際に使うか(機能ではなく、行動習慣で選ぶ)
  • AIに何を「言わせない」か(何を答えられるかより先に決める)

技術的な実装は、今の時代なら意外とどうにかなる。難しいのは、使われる場所を選ぶことと、嘘をつかせない仕組みを作ることだった。


このブログでは、こういう「非エンジニアが実務でAIを使い倒す」過程を、実際にやったこと・つまずいたことベースで書いていく。次は、まだ日本語の紹介記事がほとんど無い海外ツールを実際に触ってみた記録を予定している。

タイトルとURLをコピーしました