Skip to main content
Glama

CallLens

Inteligencia de conversación y evaluación conductual de código abierto impulsada por LangGraph.

Sube una llamada. CallLens la transcribe, reconstruye la conversación, mide métricas de comunicación deterministas, evalúa comportamientos semánticos según rúbricas configurables, verifica la evidencia de apoyo y produce inteligencia de conversación explicable.

CallLens convierte conversaciones en bruto (grabaciones o transcripciones) en inteligencia conductual estructurada y respaldada por evidencia: transcripciones diarizadas, métricas de tiempo de habla y ritmo, sentimiento longitudinal, temas, detección de oportunidades/riesgos y análisis por representante, todo puntuado según rúbricas declarativas y versionadas.

Cada puntuación semántica está respaldada por evidencia. Nunca solo Discovery: 8/10. En su lugar:

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.

Los usuarios hacen clic en una marca de tiempo y el reproductor de audio salta a ese momento exacto.


Por qué existe

La mayoría de las herramientas de puntuación de llamadas o bien (a) envían la transcripción completa a un LLM y piden un número, o (b) cuentan palabras clave. CallLens no hace ninguna de las dos cosas:

  • Puntuación en varias etapas — extracción de evidencia candidata → verificación determinista → puntuación por rúbrica → comprobación de consistencia → puerta de confianza → re-evaluación acotada. Nunca un único prompt de "puntúa esta transcripción".

  • Determinista cuando es posible, semántico solo cuando es necesario — tiempo de habla, palabras por minuto, interrupciones, turnos y silencios son Python puro. Los LLM se usan para razonamiento: sentimiento, temas, intención, comportamiento, coaching.

  • Aislamiento de proveedores — una abstracción de voz (ElevenLabs hoy) y una abstracción de LLM (OpenAI / Anthropic / cualquier endpoint compatible con OpenAI), de modo que nada está cableado a un solo proveedor.

  • Auditable por diseño — cada análisis registra las versiones del modelo, prompt, rúbrica y pipeline.

Related MCP server: Trustwise MCP Server

Arquitectura

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

Ver docs/ARCHITECTURE.md, docs/LANGGRAPH.md y docs/DATA_MODEL.md.

Inicio rápido

Docker (recomendado)

cp .env.example .env
docker compose up

No se requieren claves API para probarlo: sin ELEVENLABS_API_KEY, el proveedor de voz y el LLM de razonamiento recurren a mocks sin conexión deterministas, por lo que el pipeline completo (transcribir → métricas → puntuación por rúbrica respaldada por evidencia → coaching) se ejecuta de principio a fin.

Local (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

Frontend

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

SDK de Python

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())

API REST (subconjunto)

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

Documentación interactiva en /docs.

Rúbricas

Las rúbricas son documentos YAML declarativos y versionados. El motor en sí es genérico: ventas es solo la primera rúbrica incluida. Aporta la tuya: soporte al cliente, reclutamiento, cobros, seguros, bienes raíces, éxito del cliente, entrevistas, agentes de voz con IA.

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

Los pesos de las dimensiones deben sumar 1.0. Ver rubrics/ y docs/custom-rubrics.

Proveedores

Capa

Proveedor

Configuración

Voz (STT/TTS)

ElevenLabs Scribe v2

ELEVENLABS_API_KEY, ELEVENLABS_STT_MODEL

LLM de razonamiento

OpenAI

LLM_PROVIDER=openai, OPENAI_API_KEY, LLM_MODEL

LLM de razonamiento

Anthropic

LLM_PROVIDER=anthropic, ANTHROPIC_API_KEY, LLM_MODEL

LLM de razonamiento

Cualquier endpoint compatible con OpenAI

LLM_PROVIDER=compatible, COMPATIBLE_BASE_URL, COMPATIBLE_API_KEY

LLM de razonamiento

Mock sin conexión (predeterminado)

LLM_PROVIDER=mock

Todos los tests y CI se ejecutan contra mocks: sin llamadas API de pago.

Ejemplo: análisis en vivo con proveedores reales

Configura ambos proveedores en .env y analiza una grabación real:

# .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

Luego ejecuta el pipeline completo sobre una grabación: debe ser un archivo de llamada pregrabado (MP3/WAV), pero puedes sintetizar uno si no tienes una grabación a mano:

# 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.

El endpoint compatible debe soportar salidas estructuradas con JSON-schema de OpenAI (response_format: {type: "json_schema"}) — el structured_completion del pipeline depende de ello. No todos los modelos en todas las pasarelas lo hacen; por ejemplo, gpt-oss-120b en Melious funciona, mientras que varios otros (GLM, Kimi, DeepSeek v4 en Melious) rechazan el modo schema. Prueba con una llamada estructurada pequeña antes de comprometerte con un modelo.

MCP / MCPize

CallLens incluye un servidor MCP que expone analyze_transcript, score_dimension y list_rubrics, desplegable en MCPize:

mcpize analyze && mcpize doctor && mcpize deploy

stdio local:

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

Evaluación

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

El banco de pruebas (calllens.evals) ejecuta el pipeline completo sobre un conjunto de datos sintético de 13 escenarios (vendedor excelente, vendedor pobre, descubrimiento débil, cliente enfadado, multilingüe, …) e informa MAE, RMSE, correlación y precisión/recall de evidencia frente a etiquetas de calidad humana.

Hoja de ruta

Ver docs/ROADMAP.md. Destacados: autenticación/RLS de Supabase y almacenamiento de objetos, backends de trabajos asíncronos (Redis/SQS), consultas GraphQL para el panel, modo de llamada en vivo, modo de juego de roles con IA, tendencias por representante, monitoreo de deriva.

Seguridad y privacidad

  • Las claves API son solo de entorno; nunca se confirman, registran ni exponen al navegador.

  • Las grabaciones de llamadas se tratan como sensibles: aislamiento de inquilinos, almacenamiento privado/firmado, eliminación y retención configurable.

  • Las transcripciones completas nunca se registran por defecto.

  • Ver SECURITY.md y docs/ARCHITECTURE.md.

Licencia

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