🎤 Micdrop

Mistral

Mistral AI implementation for @micdrop/server.

This package provides an AI agent implementation using Mistral AI’s API and a real-time speech-to-text implementation using Mistral’s Voxtral realtime transcription.

Installation

Terminal window
npm install @micdrop/mistral

Mistral Agent

Usage

import { MistralAgent } from '@micdrop/mistral'
import { MicdropServer } from '@micdrop/server'
const agent = new MistralAgent({
apiKey: process.env.MISTRAL_API_KEY || '',
model: 'mistral-large-latest',
systemPrompt: 'You are a helpful assistant',
})
// Use with MicdropServer
new MicdropServer(socket, {
agent,
// ... other options
})

Options

OptionTypeDefaultDescription
apiKeystringRequiredYour Mistral AI API key
modelstring'mistral-large-latest'Mistral AI model to use
systemPromptstringRequiredSystem prompt for the agent
maxRetrynumber3Maximum number of retries on API failures
retryDelaynumber500Delay in milliseconds between retries
maxStepsnumber5Maximum number of steps (for tool calls)
autoEndCallboolean | stringfalseAuto-detect when user wants to end call
autoSemanticTurnboolean | stringfalseHandle incomplete user sentences
autoIgnoreUserNoiseboolean | stringfalseFilter meaningless user sounds
extractExtractJsonOptions | ExtractTagOptionsundefinedExtract structured data from responses
onBeforeAnswerfunctionundefinedHook called before answer generation - return true to skip generation
settingsobject{}Additional Mistral AI API parameters

Available Models

Mistral AI offers several models you can choose from:

  • ministral-8b-latest - Fast and efficient 8B parameter model (default)
  • mistral-large-latest - Most capable model for complex tasks
  • mistral-small-latest - Balanced performance and cost
  • codestral-latest - Specialized for code generation

Settings Object

The settings parameter accepts any additional options from the Mistral AI Chat Completions API:

const agent = new MistralAgent({
apiKey: process.env.MISTRAL_API_KEY || '',
systemPrompt: 'You are a helpful assistant',
settings: {
temperature: 0.7, // Controls randomness (0-1)
max_tokens: 1000, // Maximum tokens in response
top_p: 0.9, // Nucleus sampling parameter
random_seed: 42, // For reproducible outputs
safe_prompt: false, // Enable/disable safety filtering
},
})

Advanced Features

The Mistral Agent supports advanced features for improved conversation handling:

Mistral STT (Speech-to-Text)

Real-time transcription using Mistral’s Voxtral realtime models.

Usage

import { MistralSTT } from '@micdrop/mistral'
import { MicdropServer } from '@micdrop/server'
const stt = new MistralSTT({
apiKey: process.env.MISTRAL_API_KEY || '',
})
// Use with MicdropServer
new MicdropServer(socket, {
stt,
// ... other options
})

Options

OptionTypeDefaultDescription
apiKeystringRequiredYour Mistral AI API key
modelstring'voxtral-mini-transcribe-realtime-2602'Realtime transcription model to use
encodingMistralAudioEncoding'pcm_s16le'Audio encoding of the incoming stream
targetStreamingDelayMsnumberOptionalTarget streaming delay in milliseconds
connectionTimeoutnumber5000Timeout in milliseconds for WebSocket connection
transcriptionTimeoutnumber4000Timeout in milliseconds to wait for transcription
retryDelaynumber1000Delay in milliseconds between reconnection attempts
maxRetrynumber3Maximum number of reconnection attempts before failing

The Micdrop client streams 16kHz PCM16 mono audio, which matches Voxtral’s default input format, so no resampling is required.