はじめに
近年、Perplexity や NotebookLM のような「AIリサーチエージェント」が注目を集めています。
これらのツールは、Webやドキュメントから情報を収集し、AIが要約・分析・回答してくれる便利なサービスです。
しかし、その一方で次のような課題を感じたことはないでしょうか?
- 情報ソースがブラックボックス化されている
- 自社や個人のナレッジを統合できない
- クラウド上のサービスに依存し、データプライバシーを担保しにくい
そんな課題を解決するのが、今回紹介する 「SurfSense」 です。
SurfSenseとは何か
SurfSense は、
NotebookLM や Perplexity のオープンソース代替として開発されたAIリサーチエージェントです。
特徴を一言でまとめると、
外部ソース連携 × 個人ナレッジ統合 × 引用付き回答 × ローカルLLM対応
という構成を、すべて自分の手で構築・カスタマイズできる点にあります。
主な機能は以下の通りです。
- 🔗 検索エンジン・Slack・Jira・YouTube などの外部ソースと連携
- 🧠 個人のナレッジベース(ローカル・クラウド両対応)を検索対象に
- 📎 50種類以上のファイル拡張子をサポート(PDF, Markdown, HTMLなど)
- 🧩 cited(出典付き)回答を生成
- ⚙️ ローカルLLM(例:Ollama)またはOpenAI APIと連携
- 🚀 Docker / Node.js で簡単デプロイ可能
主要機能とユースケース紹介
SurfSenseがどんな場面で力を発揮するのか、代表的な4つのユースケースを紹介します。
1. Web/YouTubeリサーチ
NotebookLMと同様に、Web記事やYouTubeのトランスクリプトを知識源として要約・分析が可能です。
ただしSurfSenseでは、OSSゆえにデータソースや処理ロジックを自分でカスタマイズできるという強みがあります。
たとえば次のような拡張も可能です。
- 社内Wiki・Slack・Gitリポジトリを横断的に検索
- 限定公開YouTubeや社内研修動画の自動要約
- セキュリティ文書(ISO, SOC報告書など)の自然言語検索
- 自社APIや監視基盤(例:Prometheus)をConnector経由で連携し、
取得したメトリクスを自然言語で要約・レポート生成
(例:「今週のCPU使用率の傾向を教えて」など)
🔧 NotebookLMでは不可能な「自前インフラへの統合」こそが、SurfSense最大の魅力です。
2. エンジニアリング情報収集
Perplexityのように、検索結果をAIが要約してくれるリサーチエージェントとして使えます。
ただしSurfSenseでは、使用する検索APIや要約モデルを差し替え可能。
OpenAI APIを使ってもよし、ローカルでOllama + Mistralモデルを動かしてもよしです。
3. 社内ナレッジ統合(Slack / Jira連携)
SlackやJiraの履歴、ドキュメントをAIが横断検索できるようになります。
これにより、日々のナレッジが「対話型検索エンジン」として再利用可能になります。
💡 クラウド依存のAIエージェントとは異なり、SurfSenseなら社内閉域環境でも運用可能です。
4. ローカルLLM連携(Ollamaなど)
OllamaやLM StudioなどのローカルLLMと接続できるため、
「クラウドにデータを送らないAIリサーチエージェント」を構築可能です。
🔐 プライバシーやコンプライアンスが重視される環境で特に有効です。
アーキテクチャと仕組み
SurfSenseはモジュール化された設計になっており、柔軟な拡張が可能です。
┌──────────────────────────────┐
│ Frontend (Next.js) │
└─────────────┬────────────────────────┘
│ REST / GraphQL API
┌─────────────┴────────────────────────┐
│ Backend (Node.js) │
│ ├─ Connectors (Slack, Jira, Web, YT)│
│ ├─ LLM Engine (Ollama, OpenAI etc.) │
│ └─ Knowledge Base (Vector Store) │
└───────────────────────────────────────┘
- Frontend:ブラウザUIを提供(チャット形式でリサーチ可能)
- Backend:外部APIコネクタ・モデル呼び出し・検索制御を担当
- Vector Store:各ソースをEmbedding化し、高速類似検索を実現
- LLM Engine:OpenAI APIやOllamaモデルを選択可能
外部API連携の流れ(例:Slack)は以下の通りです。
Slack API → Connector → Embedding DB → Query → LLM → Cited Answer
この構成により、**検索結果の根拠付き回答(Cited Answer)**が生成されます。
セットアップ手順(Windows + WSL環境)
SurfSenseはDocker対応しており、環境構築は非常にシンプルです。
Windows環境では WSL2 + Docker Desktop を利用するのがおすすめです。
手順
# 1. リポジトリを取得
git clone https://github.com/MODSetter/SurfSense.git
cd SurfSense
# 2. Docker Composeで起動
docker compose up -d
初回起動時に必要なイメージが自動的に取得され、
http://localhost:3000 にアクセスするとブラウザUIが利用可能になります。
💡
.envファイルにAPIキーやLLM設定(例:Ollama / OpenAI)を記載することで、
外部連携やローカルモデル利用を簡単に切り替えられます。
クラウドアーキテクト視点での考察
SurfSenseは、単なる「Perplexityの代替」ではありません。
OSSとしての柔軟性を活かすことで、次のような価値を提供します。
1. データ制御性と可観測性
自分のインフラ上で実行できるため、扱うデータの流れを完全に可視化・制御できます。
2. 外部APIの自由な統合
SlackやNotion、Confluenceなど、必要なAPIコネクタを自作して追加可能。
拡張性が非常に高く、組織固有のワークフローに合わせて最適化できます。
3. デプロイの柔軟性
ローカル環境・オンプレ・クラウド問わずデプロイ可能。
Docker Composeで容易に構築でき、マイクロサービスアーキテクチャとも親和性が高いです。
まとめ
SurfSenseは、「Perplexityを自分の環境で再構築できる」オープンソースプロジェクトです。
その柔軟な構成と外部連携力は、AIリサーチエージェントの新たな可能性を感じさせます。
NotebookLMやPerplexityが提供する便利さを維持しつつ、
OSSならではの「透明性・拡張性・自由度」を得られるのがSurfSenseの最大の魅力です。
💡 AIリサーチの自動化を自社や個人環境で実現したい方は、
まずこのSurfSenseを一度触ってみる価値があります。