Skip to main content
Glama

CallLens

Открытый инструмент анализа разговоров и оценки поведения на базе LangGraph.

Загрузите звонок. CallLens расшифровывает его, реконструирует разговор, измеряет детерминированные метрики общения, оценивает семантическое поведение по настраиваемым рубрикам, проверяет подтверждающие доказательства и формирует объяснимую аналитику разговора.

CallLens превращает сырые разговоры — записи или транскрипты — в структурированную поведенческую аналитику с подтверждением доказательствами: диаризованные транскрипты, метрики времени речи и темпа, продольный анализ тональности, темы, обнаружение возможностей/рисков и аналитика по каждому представителю — всё оценивается по декларативным версионируемым рубрикам.

Каждая семантическая оценка подтверждена доказательствами. Никогда просто Discovery: 8/10. Вместо этого:

Discovery: 8.7/10
Confidence: 0.91

Evidence:
  04:32  Representative asks customer about their current operational bottleneck.
  05:17  Representative asks about business impact.
  07:02  Customer explains delivery delays.

Missing behavior:
  Representative never established urgency or implementation timeframe.

Пользователи нажимают на временную метку, и аудиоплеер переходит к этому точному моменту.


Зачем это существует

Большинство инструментов оценки звонков либо (a) отправляют весь транскрипт в LLM и просят дать оценку, либо (b) подсчитывают ключевые слова. CallLens не делает ни того, ни другого:

  • Многоэтапная оценка — извлечение кандидатных доказательств → детерминированная проверка → оценка по рубрикам → проверка согласованности → порог уверенности → ограниченная повторная оценка. Никогда не используется единый запрос «оцени этот транскрипт».

  • Детерминированно где возможно, семантически только где нужно — время речи, слова в минуту, перебивания, реплики и паузы — это чистый Python. LLM используются для рассуждений: тональность, темы, намерения, поведение, коучинг.

  • Изоляция провайдеров — абстракция речи (сегодня ElevenLabs) и абстракция LLM (OpenAI / Anthropic / любая OpenAI-совместимая конечная точка), так что ничего не привязано к одному вендору.

  • Аудируемость по дизайну — каждый анализ записывает версии модели, промпта, рубрики и конвейера.

Related MCP server: Trustwise MCP Server

Архитектура

flowchart TD
    A[Audio / Transcript] --> B[Ingestion]
    B --> C[ElevenLabs STT + Diarization]
    C --> D[Transcript Normalization]
    D --> E[LangGraph]
    E --> F[Deterministic Metrics]
    E --> G[Semantic Analysis]
    G --> H[Sentiment]
    G --> I[Topics]
    G --> J[Intents]
    F --> K[Evidence Verification]
    H --> K
    I --> K
    J --> K
    K --> L[Confidence Gate]
    L -->|sufficient| M[Report]
    L -->|insufficient| N[Bounded Re-score]
    N --> K

См. docs/ARCHITECTURE.md, docs/LANGGRAPH.md и docs/DATA_MODEL.md.

Быстрый старт

Docker (рекомендуется)

cp .env.example .env
docker compose up

Для запуска не требуются API-ключи: без ELEVENLABS_API_KEY речевой провайдер и LLM для рассуждений переключаются на детерминированные офлайн-заглушки, так что весь конвейер (транскрибация → метрики → оценка по рубрикам с подтверждением доказательствами → коучинг) работает от начала до конца.

Локально (Python)

python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

# Analyze a transcript (offline, deterministic)
calllens analyze sample.txt

# Start the API server
calllens server

# Run the evaluation harness
calllens eval run

Фронтенд

cd apps/web
npm install
NEXT_PUBLIC_API_URL=http://localhost:8000 npm run dev

CLI

calllens analyze call.mp3
calllens analyze call.mp3 --rubric consultative_sales --output report.json
calllens rubric list
calllens rubric validate ./my_rubric.yaml
calllens eval run
calllens server

Python SDK

import asyncio
from calllens import CallLens


async def main():
    async with CallLens(base_url="http://localhost:8000") as client:
        call = await client.calls.upload("sales-call.mp3")
        await call.analyze(rubric="consultative_sales")
        report = await call.report()
        print(report["overall_score"], report["confidence"])


asyncio.run(main())

REST API (подмножество)

POST   /api/v1/calls                     upload a recording or transcript
GET    /api/v1/calls
GET    /api/v1/calls/{id}
POST   /api/v1/calls/{id}/analyze
GET    /api/v1/calls/{id}/analysis       the evidence-backed CallReport
GET    /api/v1/calls/{id}/transcript
DELETE /api/v1/calls/{id}                privacy/retention deletion
POST   /api/v1/rubrics                   register a declarative rubric
GET    /api/v1/rubrics
POST   /api/v1/rubrics/validate
GET    /api/v1/reps/{id}/analytics
POST   /api/v1/evals/run

Интерактивная документация по адресу /docs.

Рубрики

Рубрики — это декларативные и версионируемые YAML-документы. Сам движок универсален — продажи это лишь первая встроенная рубрика. Приносите свои: поддержка клиентов, подбор персонала, взыскание задолженности, страхование, недвижимость, успех клиента, собеседования, AI-голосовые агенты.

name: consultative_sales
version: "1.0"
dimensions:
  rapport:
    label: Rapport
    weight: 0.08
  discovery:
    label: Problem Discovery
    weight: 0.16

Веса измерений должны в сумме давать 1.0. См. rubrics/ и docs/custom-rubrics.

Провайдеры

Слой

Провайдер

Конфигурация

Речь (STT/TTS)

ElevenLabs Scribe v2

ELEVENLABS_API_KEY, ELEVENLABS_STT_MODEL

LLM для рассуждений

OpenAI

LLM_PROVIDER=openai, OPENAI_API_KEY, LLM_MODEL

LLM для рассуждений

Anthropic

LLM_PROVIDER=anthropic, ANTHROPIC_API_KEY, LLM_MODEL

LLM для рассуждений

Любая OpenAI-совместимая конечная точка

LLM_PROVIDER=compatible, COMPATIBLE_BASE_URL, COMPATIBLE_API_KEY

LLM для рассуждений

Офлайн-заглушка (по умолчанию)

LLM_PROVIDER=mock

Все тесты и CI выполняются с заглушками — никаких платных API-вызовов.

Пример: живой анализ с реальными провайдерами

Настройте оба провайдера в .env и проанализируйте реальную запись:

# .env — speech + reasoning
ELEVENLABS_API_KEY=sk_...
ELEVENLABS_STT_MODEL=scribe_v2

# Any OpenAI-compatible endpoint, e.g. Melious (https://api.melious.ai/v1)
LLM_PROVIDER=compatible
COMPATIBLE_BASE_URL=https://api.melious.ai/v1
COMPATIBLE_API_KEY=sk-mel-...
LLM_MODEL=gpt-oss-120b

Затем запустите полный конвейер на записи — это должен быть предварительно записанный файл звонка (MP3/WAV), но вы можете синтезировать его, если у вас нет под рукой записи:

# Option A — you have a recording: transcribe + analyze it live
# (Scribe v2 STT → metrics → evidence-backed scoring → coaching)
calllens analyze call.mp3 --rubric consultative_sales --output report.json

# Option B — no recording? Synthesize a two-speaker sample call with ElevenLabs TTS
python examples/generate_sample_call.py   # → sample_call.mp3
calllens analyze sample_call.mp3 --rubric consultative_sales --output report.json

# Both write the evidence-backed report (scores + timestamped evidence + coaching)
# to report.json; omit --output to print it to stdout.

Конечная точка compatible должна поддерживать структурированные выходные данные OpenAI JSON-schema (response_format: {type: "json_schema"}) — от этого зависит structured_completion конвейера. Не каждая модель на каждом шлюзе это поддерживает; например, gpt-oss-120b на Melious работает, а некоторые другие (GLM, Kimi, DeepSeek v4 на Melious) отклоняют режим схемы. Проверьте с помощью небольшого структурированного вызова, прежде чем остановиться на модели.

MCP / MCPize

CallLens поставляется с MCP-сервером, предоставляющим analyze_transcript, score_dimension и list_rubrics, развертываемым на MCPize:

mcpize analyze && mcpize doctor && mcpize deploy

Локальный stdio:

pip install -r requirements.txt
python mcp-server/server.py

Оценка

| Dimension | MAE | Correlation |
|-----------|-----|-------------|
| Discovery | .61 | .88         |
| Rapport   | .74 | .81         |

Тестовый стенд (calllens.evals) запускает полный конвейер на синтетическом наборе данных из 13 сценариев (отличный продавец, плохой продавец, слабое выявление потребностей, злой клиент, многоязычность, …) и сообщает MAE, RMSE, корреляцию и точность/полноту доказательств по сравнению с метками человеческого качества.

Дорожная карта

См. docs/ROADMAP.md. Основные моменты: аутентификация Supabase/RLS и объектное хранилище, асинхронные бэкенды заданий (Redis/SQS), запросы к дашборду GraphQL, режим живого звонка, режим ролевой игры с ИИ, тренды по каждому представителю, мониторинг дрейфа.

Безопасность и конфиденциальность

  • API-ключи существуют только в переменных окружения; они никогда не фиксируются в коде, не логируются и не передаются в браузер.

  • Записи звонков считаются чувствительными: изоляция арендаторов, приватное/подписанное хранилище, удаление и настраиваемый срок хранения.

  • Полные транскрипты по умолчанию никогда не логируются.

  • См. SECURITY.md и docs/ARCHITECTURE.md.

Лицензия

MIT © Yabloko Labs

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Provides advanced analysis of conversations from Limitless Pendant recordings, including intelligent meeting detection, action item extraction, natural language time queries, and comprehensive conversation analytics with smart pagination support.
    14
    38
    24
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides advanced evaluation tools for assessing AI safety, alignment, and performance of LLM outputs. Enables programmatic evaluation of quality, safety metrics like toxicity and PII detection, and operational metrics including carbon footprint and cost estimation.
    4
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to query Ringba call analytics, including running EHG insights reports and listing available metrics and dimensions.
  • A
    license
    A
    quality
    A
    maintenance
    Enables conversational access to the VerifyAX agent-evaluation platform, exposing tools for agent evaluation workflows through natural language.
    12
    1
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Simulation, evaluation and monitoring for voice agents.

  • Create voice-agent scenarios, pull session analytics, place SIP calls, schedule meeting bots.

  • Manage Voice Logica agents, calls, phones, workflows, messaging, and integrations.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yablokolabs/CallLens'

If you have feedback or need assistance with the MCP directory API, please join our Discord server