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

86

Quality

82%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

SKILL.md
Quality
Evals
Security

Quality

Discovery

100%

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 an excellent skill description that clearly defines its scope (interactive voice agent via the converse API), provides explicit trigger terms, and proactively distinguishes itself from related skills with concrete negative guidance. The description is information-dense without being verbose, and it addresses all key dimensions thoroughly.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions: createConnection/connect, sendSettings, sendMedia, runtime updates, event handling, function-call responses. Also names the specific API endpoint and distinguishes from related skills with concrete alternatives.

3 / 3

Completeness

Clearly answers 'what' (building interactive voice agents via the converse API with specific operations) and 'when' (explicit 'Use when' clause at the start, plus explicit trigger terms at the end, plus negative guidance on when to use other skills instead).

3 / 3

Trigger Term Quality

Explicitly lists natural trigger terms ('voice agent', 'agent converse', 'full duplex', 'barge-in', 'function calling', 'agent.v1') and includes technical identifiers users would reference like the API path and method names. Good coverage of both natural and technical terms.

3 / 3

Distinctiveness Conflict Risk

Exceptionally distinctive — explicitly delineates boundaries against four other related skills (text-to-speech, speech-to-text, conversational STT, management API), making it very unlikely to conflict with similar Deepgram skills.

3 / 3

Total

12

/

12

Passed

Implementation

64%

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

This is a solid, actionable skill with a complete quick-start example and well-documented gotchas that add genuine value. Its main weaknesses are the lack of an explicit step-by-step workflow with validation checkpoints for the multi-step WebSocket connection process, and some verbosity in sections like 'When to use this product' and 'Central product skills' that don't add much for Claude. The layered API reference section is a strength for discoverability.

Suggestions

Add an explicit numbered workflow (create → connect → waitForOpen → sendSettings → verify SettingsApplied → sendMedia → handle events) with validation checkpoints, especially error handling if SettingsApplied is not received or an Error event arrives.

Trim the 'When to use this product' section to a single line or bullet list since Claude can infer product boundaries from the skill description and the 'Use a different skill when' bullets alone.

DimensionReasoningScore

Conciseness

Generally efficient but includes some unnecessary explanation (e.g., 'When to use this product' section explains concepts Claude can infer, the 'Central product skills' section at the end is tangential, and some prose like 'The websocket itself is routed to the agent host by src/CustomClient.ts' adds marginal value). The gotchas section is valuable but could be tighter.

2 / 3

Actionability

Provides fully executable, copy-paste-ready code for authentication, connection setup, and settings configuration. The quick start example is complete with real method calls, event handling, and concrete parameter values. Function call response format and runtime update methods are specifically named.

3 / 3

Workflow Clarity

The implicit workflow (create connection → connect → waitForOpen → sendSettings → handle events → send media) is discernible from the quick start code but is never explicitly sequenced as numbered steps with validation checkpoints. Gotcha #1 hints at ordering but there's no explicit 'if settings fail, do X' feedback loop. For a WebSocket-based multi-step process, explicit validation/error recovery steps are missing.

2 / 3

Progressive Disclosure

References to external docs, OpenAPI/AsyncAPI specs, and example files are well-signaled. However, no bundle files are provided, so references to 'reference.md' and source files like 'src/CustomClient.ts' cannot be verified. The API reference section lists 5 layers of references which is good navigation, but the skill itself is somewhat long with inline content (gotchas, limitations, key parameters) that could potentially be split out.

2 / 3

Total

9

/

12

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.

Validation11 / 11 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.