社内用 Slack Agent 作ってみた
はじめに
Bizibl で開発グループ長をしている中尾です。
今回は、Slack から誰でも呼び出せる AI Agent が応答する Slack Bot を作ってみたのでその紹介です。
はじめに、社内用 Agent を作るモチベーションとなったのは以下の2点です
① 面倒な定型タスクは全てAgentに任せたい
弊社には「お客様返答の一次チェック」や「プロダクト仕様に関する質問回答」など、人がやらなくてもいい仕事はまだまだあります。
社内用 AI Agent の導入によってこうした作業を自動化し、本来やるべき仕事に集中できる環境を目指したいと考えました。
② 社内全員に当たり前のようにAgentを使えるようになって欲しい
近年 AI や Agent を使って仕事をすることは当たり前の時代になっています。
職種問わず、普段から Agent に慣れ親しんでもらうことで「これも Agent で効率化できるのでは?」という発想をよびおこしやすくなってほしいなと考えました。
要件
今回 Slack Bot を作るに当たって、特に以下の2点を意識しました
① 高額になりすぎない
コストが高すぎると導入ハードルが上がります。
今回は月1,000円以内で運用できる構成を目指しました。
② 誰でも知識を注入できる
Agentがどれだけ業務を減らせても、メンテが大変だと意味がありません。
ITに詳しくない人でも、簡単に知見を追加できる仕組みにしました。
構成
実際に作った Slack Bot の構成が以下です
Slack の Events API を利用し、Slack Bot へのメンションを検知。
そのイベントをトリガーに AWS API Gateway 経由で Lambda 関数を実行し、Lambda で OpenAI の Assistant API を呼び出して回答を生成します。
生成した回答は、Slack の該当スレッドに返信として投稿します。
知見の追加は、Google Drive にドキュメントをアップロードしてもらい、それを定期的に OpenAI の Vector Store に同期します。
OpenAIのVector Store は 1GB までは無料で、Lambda と API Gateway も月100万リクエストまでは無料枠が適用されるため、社内規模であればほぼ無料で運用可能です。
結果
今回の社内導入により、たとえば長いスレッドを要約して途中参加のメンバーに共有するなど、一般的な Agent で可能な機能をSlack上から使う体験は格段に向上したと感じています。
一方で、「CSの返答が元の質問意図に沿っているかを確認する」といった抽象度の高いタスクでは、まだ期待どおりの結果が得られないことも多く、モデル選定とプロンプトチューニングの両面から改善の余地があると考えています。
また、プロダクト仕様に関する回答については、Agentが参照するドキュメントを整備する工数が膨大であるという課題もあります。今後は、このドキュメント自体もAgentが自動的に整備・更新できるような仕組みを構築していく必要がありそうです。
今後の展望
現状の Slack Bot は、あくまで決められた情報を参照して回答するだけですが、今後は必要に応じてチケットを起票したり、自ら情報収集を行い、ドキュメントとして整理するなど、「Bizibl の一員として」より自律的に行動できる Agent を目指していきたいと考えています。
Bizibl では開発エンジニアを絶賛採用しています!カジュアル面談に興味がある方はこちらから!
Discussion