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

68

Quality

82%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

SKILL.md
Quality
Evals
Security

Quality

Content

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 good executable examples and useful gotchas that capture real pitfalls. Its main weaknesses are a lack of explicit multi-step workflow with validation checkpoints (especially for error handling and the full agent lifecycle), and moderate verbosity in sections that explain context rather than instruct. The progressive disclosure is reasonable but unverifiable without bundle files.

Suggestions

Add an explicit numbered workflow for the full agent lifecycle (connect → settings → media streaming → event handling → function calls → cleanup) with validation checkpoints, especially error/warning event handling.

Trim the 'When to use this product' section to a brief bullet list without explanatory prose, and consider removing or shortening the 'Central product skills' section which is tangential to the agent runtime skill.

Add a concrete function-calling example showing the full request→response cycle (receiving FunctionCallRequest, executing logic, sending FunctionCallResponse) rather than just describing the method signature in gotchas.

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 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 and runnable. Key API methods are enumerated concretely, and function-call response patterns are specified with exact method signatures and payload shapes.

3 / 3

Workflow Clarity

The quick start implicitly shows the sequence (create connection → register handlers → connect → waitForOpen → sendSettings), and gotcha #1 emphasizes settings-first ordering. However, there's no explicit numbered workflow for the full agent lifecycle (connect → settings → send media → handle events → function calls → cleanup), and no validation/error-recovery steps for when things go wrong (e.g., what to do on Error events or connection failures).

2 / 3

Progressive Disclosure

The 'API reference (layered)' section provides good external references and the example files are listed. However, there are no bundle files to support progressive disclosure, references to in-repo files like 'reference.md' and source files cannot be verified, and the skill is moderately long (~120 lines) with some content (like the full key parameters list and limitations) that could be split into referenced files.

2 / 3

Total

9

/

12

Passed

Description

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 hits all the marks. It provides specific concrete actions, explicit 'Use when' and trigger guidance, and notably includes negative boundaries that direct users to alternative skills for adjacent use cases. The description is detailed yet focused, making it highly effective for skill selection among many options.

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 SDK methods.

3 / 3

Completeness

Clearly answers both '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 and clear negative boundaries directing to other skills).

3 / 3

Trigger Term Quality

Includes excellent natural trigger terms explicitly listed: 'voice agent', 'agent converse', 'full duplex', 'barge-in', 'function calling', 'agent.v1'. Also includes technical terms users would naturally use like 'JavaScript/TypeScript', 'interactive voice agent'.

3 / 3

Distinctiveness Conflict Risk

Exceptionally distinctive — explicitly differentiates itself from related skills (text-to-speech, speech-to-text, conversational STT, management API) by naming them and explaining when to use those instead. This dramatically reduces conflict risk.

3 / 3

Total

12

/

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.