trycompai/crm

Comp AI CRM is an open source, CRM designed for AI agents. Agentic-first CRM.

概要

Comp AI CRM は、AI エージェントのために作られたオープンソースの顧客関係管理(CRM)です。AI をデータベースに貼り付けたチャットボックスとして扱うのではなく、エージェントをシステムの中核としています。つまり、エージェントがメモを取る場所が CRM なのです。

核となるアイデア

エージェントは、独自のスケジュールと作業キューで動作します。次に何を見るかを決定し、フォローアップアクションを予約し、調査予算が尽きるまでそれを使います。重要なのは、人物について決して推測しないことです。ツールは実際に観察したもの(例:署名ブロック、GitHub アカウント)だけを報告します。強い証拠は記録に書き込まれ、弱い証拠は人間が確認または拒否できる提案になります。自信を持って間違った事実は、空のフィールドよりも悪いと考えられます。

エージェントの仕組み

  • eve と呼ばれるフレームワーク(ファイルシステム優先の耐久性のあるエージェント)を使用します。各ツールはファイル、各スキルはマークダウンドキュメント、スケジュールもファイルです。
  • 18 の組み込みツール(CRM 検索、連絡先特定、人物調査、会社エンリッチ、事実記録など)と 4 つのスキル(証拠ルール、ID マッチング、データ境界、ブリーフ作成)が付属しています。
  • エージェントはリース付きの作業キューを処理します。FOR UPDATE SKIP LOCKED ロックで行を取得するため、2 つのディスパッチャーが二重作業をすることはなく、失敗した実行はリースが切れると行が解放されます。
  • 再チェックをスケジュールし、戻る理由を伝えます。デフォルトではなく、理由です。
  • 外部ソースは不要です。 API キーがなくても、自分のスレッド、会議、署名ブロックを読み取ります。無料で信頼性があります。各オプションキー(Web 検索用の Perplexity、会社ブランドデータと LinkedIn 用の Context)は、別の調査場所を開きます。
  • エージェントは、ネットワークもデータベースもないサンドボックスで実行されます。テキストを処理できるだけで、bash、grep、ファイル操作を使用します。これにより、シェルコマンドが顧客データを外部に持ち出すことを防ぎます。データベース URL はサンドボックスに渡されません。
  • 対話できます。すべての連絡先、会社、取引にはエージェントタブがあり、ステップ、破棄されたリードを確認し、質問に答えることができます。会話はリロードしても保持されます。

接続とアクセス

  • 設定 → 接続を開いて、外部サービス(Gmail、Microsoft など)を接続します。接続を管理できるのは所有者/管理者のみです。
  • 各サービスは、読み取り専用または読み取り/書き込みにできます。接続ページには、検出されたすべてのツールとそのアクセスタイプがリストされます。新しいツールや変更されたツールは、エージェントが使用する前にレビューが必要です。
  • サービスを切断すると、エージェントの次の呼び出しがブロックされ、すべてのツールが削除されます。再度使用するには、再接続してレビューする必要があります。

技術スタック

  • Bun と Turborepo 上のモノレポで、Vercel にデプロイ可能です。
  • フロントエンド: Next.js(App Router)+ shadcn/ui。
  • API: NestJS と tRPC を使用して、ブラウザからデータベースへの型安全な RPC を実現。
  • データ: Postgres(Neon)と Prisma ORM、オプションの Redis キャッシュ。
  • 認証: Better Auth — Google、Microsoft、またはカスタム IdP。単一の許可リストでサインインできるユーザーを制御します。
  • ファイル: プロフィール画像用の Vercel Blob(元のソースが消えても生き残るように)。

3 つの設計ルールが強調されています。インテリジェンスは API には決して存在しない(エージェントがイベントの意味を決定する)、packages/ui が UI スタイルの唯一のソースである、組織はない(意図的にシングルテナント)。

クイックスタート

Bun と Docker が必要です。リポジトリをクローンし、.env.example をコピーし、いくつかの必須値を設定してから実行します:

bun install
docker compose up -d   # Postgres
bun run db:deploy
bun run db:seed        # オプションのデモデータ
bun run dev

アプリは localhost:3000 で実行され、API は localhost:3001 で実行されます。デフォルトブランチは release(安定版)です。main は未リリースの作業用です。

必須の .env 値

  • BETTER_AUTH_SECRET – openssl rand -base64 32 で生成します。
  • ALLOWED_SIGN_IN – メールドメインまたは個々のアドレス(例:acme.com)。未設定の場合、誰もサインインできません。
  • 少なくとも 1 つの OAuth ペア(Google および/または Microsoft)。詳細なセットアップは README を参照してください。
  • DATABASE_URL は docker compose の Postgres と一致しているので、独自のものがない限り変更しないでください。

.env の他のすべてはオプションです。何もなくても実行できます。

設定とデプロイ

  • リポジトリルートの 1 つの .env は、3 つのプロセス(アプリ、API、エージェント)すべてで読み取られます。実際の環境変数が常に優先されます。
  • 3 つの別々のサービスとしてデプロイします:Next.js アプリ、NestJS API、エージェント。DATABASE_URL と BETTER_AUTH_SECRET にのみ同意する必要があります。API_URL/APP_URL を本番オリジンに設定し、OAuth プロバイダーにコールバック URL を追加します。CRON_SECRET がメールボックス同期エンドポイントを保護します。

詳細は README にあります — これは要点だけです。

関連

  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト