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
- プロジェクト
- プロジェクト