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잠금으로 행을 확보하여 두 디스패처가 이중 작업을 하지 않으며, 실패한 실행은 리스가 만료되면 행이 해제됩니다. - 재검사를 예약하고 돌아올 이유를 알려줍니다. 기본값이 아니라 이유입니다.
- 외부 소스는 필요 없습니다. API 키 없이도 자신의 스레드, 회의, 서명 블록을 읽습니다. 무료이고 안정적입니다. 각 선택 키(웹 검색용 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(원본 소스가 사라져도 유지되도록).
세 가지 설계 규칙이 강조됩니다. 지능은 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). 설정하지 않으면 아무도 로그인할 수 없습니다.- 하나 이상의 OAuth 쌍(Google 및/또는 Microsoft). 자세한 설정은 README를 참조하세요.
DATABASE_URL은docker compose의 Postgres와 이미 일치하므로 직접 소유하지 않는 한 그대로 두세요.
.env의 다른 모든 것은 선택 사항입니다. 없이도 실행할 수 있습니다.
구성 및 배포
- 저장소 루트의 하나의
.env는 세 프로세스(앱, API, 에이전트) 모두에서 읽습니다. 실제 환경 변수가 항상 우선합니다. - 세 개의 별도 서비스로 배포합니다: Next.js 앱, NestJS API, 에이전트.
DATABASE_URL과BETTER_AUTH_SECRET만 동의하면 됩니다.API_URL/APP_URL을 프로덕션 원본으로 설정하고 OAuth 제공자에 콜백 URL을 추가하세요.CRON_SECRET은 사서함 동기화 엔드포인트를 보호합니다.
전체 세부 사항은 README에 있습니다 — 이것은 핵심만 요약한 것입니다.
관련
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트
- 프로젝트