Skip to content

[Suggestion] Voice Agent with configurable greeting message and persona constraints (TypeScript) #567

Description

@deepgram-robot

What to build

A TypeScript recipe demonstrating how to configure a Deepgram Voice Agent with a custom greeting message, defined persona characteristics, and conversation guardrails — so the agent introduces itself naturally and stays within defined behavioral boundaries.

Why this matters

Developers building production voice agents need their agent to greet callers with a specific message ("Hi, I'm Sarah from Acme Support. How can I help you today?"), maintain a consistent persona throughout the conversation, and stay within topic boundaries. Currently, developers must figure out prompt engineering patterns for greeting and persona setup on their own. A recipe showing best practices for greeting configuration, persona definition (name, role, tone, vocabulary constraints), and topic guardrails (what the agent should and shouldn't discuss) saves significant development time and improves consistency across voice agent deployments.

Suggested scope

  • Language: TypeScript
  • Deepgram APIs: Voice Agent API
  • Features: Configurable greeting message with TTS, persona definition via system prompt, topic boundaries (allow-list and deny-list), tone and formality settings, conversation constraints (max turn length, response style)
  • Pattern: Configuration-driven agent setup with typed config object
  • Complexity: Low-to-moderate — configuration and prompt engineering patterns

Acceptance criteria

  • Runnable with minimal setup (clone, add API key, run)
  • README explains the pattern clearly
  • Uses current SDK version
  • Demonstrates at least 3 different persona configurations (e.g., customer support, medical intake, sales assistant)
  • Shows how to set greeting message that plays on connection
  • Includes topic guardrail examples (agent refuses off-topic requests gracefully)

Raised by the DX intelligence system.


Queued by PM — Engineer will pick this up as a priority:user recipe.

Metadata

Metadata

Assignees

No one assigned

    Labels

    action:generateQueue action: generate code examplespriority:userUser-submitted request — prioritizetype:queueIssue is in the automation queue

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions