CallLens
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 upAPI + документация OpenAPI: http://localhost:8000/docs
Дашборд: http://localhost:3000
Для запуска не требуются 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 devCLI
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 serverPython 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 |
|
LLM для рассуждений | OpenAI |
|
LLM для рассуждений | Anthropic |
|
LLM для рассуждений | Любая OpenAI-совместимая конечная точка |
|
LLM для рассуждений | Офлайн-заглушка (по умолчанию) |
|
Все тесты и 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
This server cannot be installed
Maintenance
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
- AlicenseAqualityFmaintenanceProvides 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.143824MIT

Trustwise MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceProvides 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.4Apache 2.0- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to query Ringba call analytics, including running EHG insights reports and listing available metrics and dimensions.

VerifyAX MCPofficial
AlicenseAqualityAmaintenanceEnables conversational access to the VerifyAX agent-evaluation platform, exposing tools for agent evaluation workflows through natural language.121Apache 2.0
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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