deepgram-go-voice-agent

द्वारा deepgram

इस रिपॉजिटरी में Go कोड लिखते या समीक्षा करते समय उपयोग करें जो WebSockets पर Deepgram Voice Agent सत्र चलाता है, जिसमें रनटाइम सेटिंग्स, प्रॉम्प्ट अपडेट, स्पीक... शामिल हैं।

npx skills add https://github.com/deepgram/deepgram-go-sdk --skill deepgram-go-voice-agent

Using Deepgram Voice Agent from the Go SDK

When to use this product

Use this skill for live Voice Agent runtime flows in pkg/client/agent.

  • open an agent WebSocket session
  • send initial settings
  • stream audio
  • react to agent events and function-call messages
  • update prompt/speak settings during the session

Use a different skill when:

  • you only need STT (deepgram-go-speech-to-text)
  • you only need TTS (deepgram-go-text-to-speech)
  • you need management/admin endpoints (deepgram-go-management-api)

Authentication

Set DEEPGRAM_API_KEY before opening the agent connection.

export DEEPGRAM_API_KEY="your_api_key"

Quick start

package main

import (
	"context"
	"fmt"
	"log"

	agentws "github.com/deepgram/deepgram-go-sdk/v3/pkg/api/agent/v1/websocket"
	agent "github.com/deepgram/deepgram-go-sdk/v3/pkg/client/agent"
)

func main() {
	if err := run(); err != nil {
		log.Fatal(err)
	}
}

func run() error {
	ctx := context.Background()
	settings := agent.NewSettingsConfigurationOptions()
	handler := agentws.NewDefaultChanHandler()

	conn, err := agent.NewWSUsingChanWithDefaults(ctx, settings, handler)
	if err != nil {
		return err
	}
	defer conn.Stop()

	if ok := conn.Connect(); !ok {
		return fmt.Errorf("connect failed")
	}

	conn.Start()

	// The handler receives Welcome, ConversationText, FunctionCallRequest, and audio events.
	// Stream audio frames, watch agent events, and respond to function calls as needed.
	return nil
}

Key parameters

  • constructors
    • agent.NewSettingsConfigurationOptions()
    • agent.NewWSUsingChanWithDefaults(...)
    • agent.NewWSUsingChan(...)
  • runtime methods
    • Connect, Start, ProcessMessage, Stream, Write, KeepAlive
    • reconnect helpers like AttemptReconnect and error handling helpers in the WS client
  • message and event payloads in pkg/api/agent/v1/websocket/interfaces/types.go
    • UpdatePrompt
    • UpdateSpeak
    • InjectAgentMessage
    • InjectUserMessage
    • FunctionCallResponse
    • server events such as WelcomeResponse, ConversationTextResponse, FunctionCallRequestResponse, AgentStartedSpeakingResponse, AgentAudioDoneResponse

API reference (layered)

  1. In-repo reference
    • README.md
    • pkg/client/agent/client.go
    • pkg/client/agent/v1/websocket/client_channel.go
    • pkg/client/agent/v1/websocket/new_using_chan.go
    • pkg/client/interfaces/v1/types-agent.go
    • pkg/api/agent/v1/websocket/interfaces/types.go
  2. OpenAPI
    • https://developers.deepgram.com/openapi.yaml
  3. AsyncAPI
    • https://developers.deepgram.com/asyncapi.yaml
  4. Context7
    • /llmstxt/developers_deepgram_llms_txt
  5. Product docs
    • https://developers.deepgram.com/reference/voice-agent/voice-agent
    • https://developers.deepgram.com/docs/voice-agent
    • https://developers.deepgram.com/docs/configure-voice-agent
    • https://developers.deepgram.com/docs/voice-agent-message-flow

Gotchas

  1. This repo exposes live Voice Agent runtime over WebSockets, not a persisted configuration-management surface.
  2. Keep audio streaming, event handling, and any function-call response loop running concurrently.
  3. Follow the example session setup instead of inventing your own event names; the repo already defines concrete message structs.
  4. Channel-based constructors require an AgentMessageChan handler; events are routed there rather than pulled from the client.
  5. Use defer conn.Stop(), and remember that Connect() returns bool rather than error.

Example files in this repo

  • examples/agent/websocket/simple/main.go
  • examples/agent/websocket/no_mic/main.go
  • examples/agent/websocket/arbitrary_keys/main.go
  • tests/unit_test/agent/agent_speak_test.go

Central product skills

For cross-language Deepgram product knowledge — the consolidated API reference, documentation finder, focused runnable recipes, third-party integration examples, and MCP setup — install the central skills:

npx skills add deepgram/skills

This SDK ships language-idiomatic code skills; deepgram/skills ships cross-language product knowledge (see api, docs, recipes, examples, starters, setup-mcp).

deepgram की और Skills

deepclaw-voice
deepgram
OpenClaw पर Deepgram Voice Agent API का उपयोग करके फोन
apple-notes
deepgram
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list…
bear-notes
deepgram
grizzly CLI के माध्यम से Bear नोट्स बनाएं, खोजें और प्रबंधित करें।
github
deepgram
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
setup-mcp
deepgram
आप उपयोगकर्ता के लिए Deepgram MCP एकीकरण सेट कर रहे हैं। इन चरणों का पालन करें:
starters
deepgram
एक कार्यशील डेमो क्लोन करें और निर्माण शुरू करें। हर स्टार्टर एक न्यूनतम, चलाने योग्य ऐप है जिसे आप विस्तारित कर सकते हैं।
deepgram-js-audio-intelligence
deepgram
Use when writing or reviewing JavaScript/TypeScript in this repo that calls Deepgram audio analytics overlays on `/v1/listen` - summarize, topics, intents,…
apple-reminders
deepgram
Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.