Skip to content

[Suggestion] NestJS voice agent with function calling and Deepgram Agent API (TypeScript) #256

@deepgram-robot

Description

@deepgram-robot

What to build

A NestJS application that implements a real-time voice agent using Deepgram's Voice Agent API, with function calling to interact with external services (e.g., looking up order status, checking weather, querying a database).

Why this matters

NestJS is the most popular enterprise TypeScript backend framework, widely used in teams building production APIs and microservices. Developers in NestJS-based organizations evaluating voice agent capabilities need an idiomatic integration pattern — NestJS modules, injectable services, WebSocket gateways, and decorators. The previous NestJS example covered basic STT only; voice agents with function calling represent the current developer need for building interactive, tool-using conversational AI.

Suggested scope

  • Language: TypeScript
  • Framework: NestJS (v10+) with WebSocket gateway
  • Deepgram APIs: Voice Agent API (WebSocket), STT (Nova-3), TTS (Aura)
  • What it should include:
    • NestJS module wrapping the Deepgram Agent SDK
    • WebSocket gateway for browser ↔ NestJS ↔ Deepgram Agent API
    • At least 2 function calling tools (e.g., order lookup, weather query)
    • Injectable Deepgram service with configuration via @nestjs/config
    • Simple frontend page for voice interaction
    • Unit tests for the Deepgram service
  • Complexity: Medium

Acceptance criteria

  • Runnable with minimal setup (clone, add API key, npm run start:dev)
  • README explains the NestJS architecture and voice agent setup
  • Uses current NestJS and Deepgram SDK versions
  • Demonstrates function calling with at least 2 tools
  • Follows NestJS conventions (modules, services, gateways, DTOs)

Raised by the DX intelligence system.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions