CtrlK
BlogDocsLog inGet started
Tessl Logo

deepgram-js-voice-agent

Use when writing or reviewing JavaScript/TypeScript in this repo that builds an interactive voice agent via `agent.deepgram.com/v1/agent/converse`. Covers `client.agent.v1.createConnection()` / `connect()`, `sendSettings`, `sendMedia`, runtime updates, event handling, and function-call responses. Use `deepgram-js-text-to-speech` for one-way synthesis, `deepgram-js-speech-to-text` or `deepgram-js-conversational-stt` for transcription only, and `deepgram-js-management-api` for project/model admin rather than live agent runtime. Triggers include "voice agent", "agent converse", "full duplex", "barge-in", "function calling", and "agent.v1".

70

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

71%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The content is highly actionable with executable examples and specific gotchas, but it lacks an explicit sequenced workflow with validation checkpoints for the live socket and over-inlines reference-style API surface; it also points to a reference.md bundle file that is not present.

Suggestions

Add an explicit ordered connection workflow (createConnection -> on('message') -> connect -> waitForOpen -> sendSettings -> wait for SettingsApplied -> sendMedia) with a verification checkpoint confirming SettingsApplied before streaming audio.

Move the inbound-events enumeration and the runtime-update method list out of the body into a separate reference file (e.g. references/reference.md) and link to it, keeping SKILL.md an overview.

Either ship the referenced reference.md bundle file or remove the 'reference.md -> Agent V1 Settings Think Models' pointer so navigation links resolve to real files.

DimensionReasoningScore

Conciseness

The body is largely lean and assumes competence (skips generic explanations of what a websocket or LLM is), but the Quick start block repeats a long sendSettings object that could be trimmed and the API surface / events list borders on reference-inlining rather than tight overview.

4 / 5

Actionability

It provides a fully copy-paste-ready Quick start with executable connection, listener, and sendSettings code, plus a concrete Gotchas section with exact method signatures and event names for function-call responses, keepalives, and encoding alignment.

5 / 5

Workflow Clarity

The connection lifecycle is implied (createConnection -> on message -> connect -> waitForOpen -> sendSettings) and Gotcha #1 stresses settings-first ordering, but there is no explicit sequenced workflow and no validation/verification checkpoints for the live socket (e.g., confirm SettingsApplied before sending media).

3 / 5

Progressive Disclosure

The API reference section signals layered external references (reference.md, OpenAPI/AsyncAPI URLs, Context7, product docs), but the in-body 'reference.md' is referenced as a bundle file that does not exist in this skill, and the body inlines a sizeable API-surface/events enumeration that reads as reference material better placed in a separate file.

3 / 5

Total

15

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

This is a strong, well-targeted description: it states concrete capabilities with specific API method names, gives explicit natural trigger phrases, and clearly disambiguates itself from sibling Deepgram skills via named redirects.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions tied to specific API methods — createConnection()/connect(), sendSettings, sendMedia, runtime updates, event handling, and function-call responses — giving comprehensive coverage of the skill's capability surface.

5 / 5

Completeness

It explicitly answers both 'what' (interactive voice agent over agent.deepgram.com/v1/agent/converse covering connect, settings, media, updates, events, function-call responses) and 'when' (an explicit 'Use when writing or reviewing JavaScript/TypeScript...' clause plus concrete trigger terms).

5 / 5

Trigger Term Quality

It includes explicit, natural trigger phrases users would actually say ("voice agent", "agent converse", "full duplex", "barge-in", "function calling", "agent.v1") alongside technical method names, covering synonyms and natural variations.

5 / 5

Distinctiveness Conflict Risk

The description carves a clear niche — live voice-agent runtime — and explicitly redirects adjacent needs to four named sibling skills (text-to-speech, speech-to-text/conversational-stt, management-api), minimizing wrong-skill conflict risk.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
deepgram/deepgram-js-sdk
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.