アシスタント

Get assistant details

Retrieve the full configuration of a single AI voice assistant by assistant ID, including version config, speech synthesis/recognition settings and AI model configuration.

GET/openapi/assistants/{id}

リクエスト

パラメータ

idinteger必須

パスパラメータ · Assistant ID

レスポンス

200 成功返回助手详情
idinteger

Unique assistant ID

projectIdinteger

Owning project ID

namestring

Assistant name

versionIdinteger

Currently active version ID

scenestring

Assistant scene type, e.g. inbound_knowledge (inbound knowledge base) or outbound_collect (outbound collection)

objectivestring

Assistant objective description

speakerIdinteger

Text-to-speech (TTS) voice ID

speakerNamestring

Text-to-speech (TTS) voice name

websocketUrlstring

WebSocket connection URL

websocketTokenstring

WebSocket authentication token

listenerIdinteger

Speech recognition (ASR) model ID

listenerNamestring

Speech recognition (ASR) model name

welcomestring

Greeting/opening line; the first text the assistant plays once the call is connected

promptstring

System prompt defining the assistant's role, behavior and conversation strategy

collectobject[]

Data collection config; defines the list of questions the assistant collects during the conversation

[].questionstring

Question to collect

[].answersstring[]

Preset answer options (optional)

knowledgestring

Associated knowledge base code (RAG knowledge base identifier)

hotWordsobject[]

Hot word list used to improve ASR accuracy

[].wordstring

Hot word text

[].weightinteger

Hot word weight; higher values take priority

[].replacedWordsstring[]

Homophones/near-homophones this hot word can replace

[].enableFuzzyMatchboolean

Whether fuzzy matching is enabled for this hot word

usageCountinteger

Total number of calls made by the assistant

creatorIdinteger

Creator user ID

creatorobject

创建者用户信息

idinteger

User ID

emailstring

User email

usernamestring

Username

idOldVersionboolean

Whether the record uses the legacy format (compatibility flag)

llmIdinteger

Associated custom LLM configuration ID

enableFuzzyMatchboolean

Whether fuzzy matching is enabled (for ASR error correction)

featureFlagsstring

Feature flags (comma-separated identifiers)

timeZonestring

Time zone used by the assistant, e.g. Asia/Shanghai

flowstring

Conversation flow definition (flow chart config in JSON)

interruptionConfigobject

打断配置,控制用户在助手说话时如何打断

methodstring

Interruption method

unInterruptableAfterPlayStartinteger

Uninterruptible duration after playback starts (ms); user speech within this window does not trigger an interruption

talkOverThresholdinteger

Talk-over detection threshold (ms); an interruption triggers only after the user speaks longer than this

resumePlayboolean

Whether to resume the interrupted playback after an interruption

eouConfigobject

端点检测配置(End of Utterance),用于判断用户是否说完

eouEnabledboolean

Whether smart end-of-utterance detection is enabled

waitTimeoutinteger

Wait timeout (ms); the utterance is considered finished if no speech is detected within this time

unfinishedTimeoutinteger

Unfinished utterance timeout (ms); extra wait time when an unfinished utterance is detected

vadConfigobject

VAD(Voice Activity Detection)语音活动检测配置

paddingDurationinteger

Silence padding duration (ms); extra wait time after speech ends

rationumber

Speech detection sensitivity ratio

vadModeinteger

VAD mode (0-3); higher values are stricter

positiveSpeechThresholdnumber

Positive speech threshold; values above it are judged as speech

negativeSpeechThresholdnumber

Negative speech threshold; values below it are judged as no speech

redemptionFramesinteger

Redemption frames; extra frames checked before declaring speech ended

minSpeechFramesinteger

Minimum speech frames; segments shorter than this are ignored

energyThresholdinteger

Energy threshold; audio below this energy is judged as silence

speechStartMsinteger

Speech start detection duration (ms)

speechEndMsinteger

Speech end detection duration (ms)

agentConfigobject

AI Agent 核心配置,包括对话策略和LLM模型参数

sliceTimeinteger

Slice time (ms); interval used to split long speech for processing

interruptionSilentTimeinteger

Silent wait time after an interruption (ms)

maxSilentAskTimesinteger

Maximum number of follow-up prompts when the user stays silent

maxDialogueGapTimesinteger

Maximum number of dialogue gaps; the call ends automatically once exceeded

maxSessionDurationinteger

Maximum session duration (seconds); the call ends automatically once exceeded

startCanBreakboolean

Whether the opening line can be interrupted

speechIntervalThresholdinteger

Speech interval threshold (ms); two utterances closer than this are treated as continuous speech

keepSilentWhenVADIsActiveboolean

Whether the assistant stays silent while VAD detects the user speaking

modelNamestring

LLM model name, e.g. gpt-4o, claude-sonnet-4.5

baseUrlstring

LLM API base URL

authTokenstring

LLM API authentication token

vendorstring

LLM vendor identifier, e.g. openai, azure, volcengine

apiVersionstring

API version (mainly for Azure OpenAI)

temperaturenumber

LLM temperature (0-2); higher values produce more random output

topPnumber

LLM Top-P sampling parameter (0-1)

promptModestring

Prompt mode, e.g. system (system prompt)

thresholdnumber

Agent decision threshold

agentModestring

Agent run mode

useFillerboolean

Whether to play filler words (e.g. 'hmm', 'okay') while the AI is thinking

fillerWordsstring[]

Filler word list

functionsobject[]

Function calling definitions (OpenAI format)

functionHooksobject[]

Function call hooks; run extra logic before/after a tool call

[].toolNamestring

Target tool name

[].hookPromptstring

Hook prompt; extra instructions injected when the tool is called

knowledgeCodestring

Knowledge base code (for RAG retrieval)

topKinteger

Number of top-K entries returned by knowledge base retrieval

scrmConfigobject

SCRM(社交化客户关系管理)集成配置

robotIdstring

SCRM bot ID

appKeystring

SCRM app key

appSecretstring

SCRM app secret

skillsConfigobject

技能配置

pressKeyobject

按键技能配置(DTMF按键检测)

maxInactiveSecondinteger

Maximum idle wait time (seconds); key-press listening stops once exceeded

shortMemoobject

短时记忆配置,用于对话中的上下文摘要

pointsstring[]

Points of interest to remember

llmConfigobject

LLM模型配置(通用)

vendorstring

Model vendor, e.g. openai, azure, volcengine

modelNamestring

Model name

baseUrlstring

API base URL

authTokenstring

API authentication token

temperaturenumber

Temperature parameter

apiVersionstring

API version

topPnumber

Top-P sampling parameter

knowledgeConfigobject

知识库检索配置

usePreviousRoundsSliceinteger

Use the previous N dialogue rounds as retrieval context

sliceMinimumScorenumber

Minimum match score for knowledge base chunks; results below this score are filtered out

useMemoEnhanceQueryboolean

Whether to use memory-enhanced retrieval queries

disableQueryOnNewDialogboolean

Whether knowledge base retrieval is disabled at the start of a new dialogue round

speechScriptsobject

Preset speech scripts; key is the scene identifier, value is the script content

audioProcessConfigobject

音频处理配置(降噪、增益等)

vadTypestring

VAD engine type

noiseSuppressionEnabledboolean

Whether noise suppression is enabled

noiseSuppressionTypestring

Noise suppression algorithm: rnnoise or dfn

noiseSuppressionIntensityinteger

Noise suppression intensity level

agcEnabledboolean

Whether automatic gain control (AGC) is enabled

closeAllAudioProcessboolean

Whether all audio processing is disabled (noise suppression + AGC)

speakerConfigobject

语音合成(TTS)播报配置

speakRationumber

Speech rate multiplier; 1.0 is normal, above 1 is faster, below 1 is slower

ttsNamestring

TTS engine name

ttsOptionsobject

Extra TTS engine options

ssmlboolean

Whether SSML (Speech Synthesis Markup Language) is enabled

ssmlReplacesobject[]

SSML text replacement rules

[].keystring

Original text to replace

[].valuestring

Replacement SSML markup text

globalConfigobject

全局配置

welcomestring

Global greeting

promptstring

Global prompt

scenestring

Scene type

languagestring

Primary language, e.g. zh-CN, en-US, ja-JP

languageConfigobject

多语言配置

additionalLanguagesobject[]

Additional supported languages

[].languagestring

Language code, e.g. en-US, ja-JP

debugModestring

Debug mode flag

directionstring

Call direction: inbound or outbound

dialogUnInterruptableboolean

Whether the dialog cannot be interrupted

promptModestring

Prompt mode

workTimeConfigobject

工作时间配置

workTimeIdinteger

Work time rule ID

workTimeoneOf
calendaroneOf
subgoaloneOf
analysisobject

通话分析配置

realTimeCollectboolean

Whether real-time data collection is enabled (extracts key information during the call)

collectTargetsobject[]

Collection target definitions

[].namestring

Target name

[].enumstring[]

Enum value list (restricts allowed values)

[].branchstring

Owning branch identifier

[].summarystring

Target summary

[].uuidstring

Unique identifier

conversationAnalysisobject[]

Conversation analysis dimensions

[].targetstring

Analysis target identifier

[].descriptionstring

Analysis dimension description

qualityAnalysisobject

通话质量分析配置

contentstring

Quality analysis prompt/rule content

mcpServersobject[]

MCP server configuration list, used to extend the assistant's tool capabilities

[].namestring

MCP server name

[].descriptionstring

Server description

[].typestring

Server type, e.g. stdio or sse

[].commandstring

Start command

[].argsstring

Start arguments

[].envsstring

Environment variables

[].timeoutinteger

Timeout (seconds)

[].selectToolsobject[]

Selected tools

[].toolNamestring

Tool name

[].isAsyncboolean

Whether the tool runs asynchronously

audioTrackConfigobject

音轨配置(背景音、音量控制)

masterVolumenumber

Master volume (default 1.0)

mainTrackVolumenumber

Main track volume (default 0.8), i.e. the volume of the TTS voice

effectAudioTracksobject[]

Effect audio tracks (background music, etc.)

[].filenamestring

Audio file name/path

[].volumenumber

Volume (default 0.8)

[].isActiveboolean

Whether the track is enabled

[].modestring

Playback mode, e.g. loop or once

queryRewriterobject

查询重写配置,用于优化知识库检索的查询语句

useRewriterboolean

Whether query rewriting is enabled

rewritePromptstring

Rewrite prompt

llmConfigobject

LLM模型配置(通用)

vendorstring

Model vendor, e.g. openai, azure, volcengine

modelNamestring

Model name

baseUrlstring

API base URL

authTokenstring

API authentication token

temperaturenumber

Temperature parameter

apiVersionstring

API version

topPnumber

Top-P sampling parameter

listenerConfigobject

语音识别(ASR)高级配置

providersobject[]

ASR provider list (multiple providers can recognize in parallel)

[].listenerIdinteger

ASR model ID

[].namestring

Provider name

[].optionsobject

Extra provider configuration options

submitModestring

ASR result submission mode

transferASRboolean

Whether transcription ASR is enabled (transcribes the entire call)

fuzzyOptionsobject

Fuzzy matching options

directionstring

Recognition direction

createdAtstring

Creation time

updatedAtstring

Last update time

deletedAtstring

Soft-delete time; null if not deleted

サンプルコード

curl -X GET 'https://openapi.voicefox.ai/openapi/assistants/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN>' \
  -H 'Content-Type: application/json'

レスポンス例

{
  "id": 0,
  "projectId": 0,
  "name": "string",
  "versionId": 0,
  "scene": "string",
  "objective": "string",
  "speakerId": 0,
  "speakerName": "string",
  "websocketUrl": "string",
  "websocketToken": "string",
  "listenerId": 0,
  "listenerName": "string",
  "welcome": "string",
  "prompt": "string",
  "collect": [
    {
      "question": "string",
      "answers": [
        "string"
      ]
    }
  ],
  "knowledge": "string",
  "hotWords": [
    {
      "word": "string",
      "weight": 0,
      "replacedWords": [
        "string"
      ],
      "enableFuzzyMatch": false
    }
  ],
  "usageCount": 0,
  "creatorId": 0,
  "creator": {
    "id": 0,
    "email": "string",
    "username": "string"
  },
  "idOldVersion": false,
  "llmId": 0,
  "enableFuzzyMatch": false,
  "featureFlags": "string",
  "timeZone": "string",
  "flow": "string",
  "interruptionConfig": {
    "method": "string",
    "unInterruptableAfterPlayStart": 0,
    "talkOverThreshold": 0,
    "resumePlay": false
  },
  "eouConfig": {
    "eouEnabled": false,
    "waitTimeout": 0,
    "unfinishedTimeout": 0
  },
  "vadConfig": {
    "paddingDuration": 0,
    "ratio": 0,
    "vadMode": 0,
    "positiveSpeechThreshold": 0,
    "negativeSpeechThreshold": 0,
    "redemptionFrames": 0,
    "minSpeechFrames": 0,
    "energyThreshold": 0,
    "speechStartMs": 0,
    "speechEndMs": 0
  },
  "agentConfig": {
    "sliceTime": 0,
    "interruptionSilentTime": 0,
    "maxSilentAskTimes": 0,
    "maxDialogueGapTimes": 0,
    "maxSessionDuration": 0,
    "startCanBreak": false,
    "speechIntervalThreshold": 0,
    "keepSilentWhenVADIsActive": false,
    "modelName": "string",
    "baseUrl": "string",
    "authToken": "string",
    "vendor": "string",
    "apiVersion": "string",
    "temperature": 0,
    "topP": 0,
    "promptMode": "string",
    "threshold": 0,
    "agentMode": "string",
    "useFiller": false,
    "fillerWords": [
      "string"
    ],
    "functions": [
      {}
    ],
    "functionHooks": [
      {
        "toolName": "string",
        "hookPrompt": "string"
      }
    ],
    "knowledgeCode": "string",
    "topK": 0,
    "scrmConfig": {
      "robotId": "string",
      "appKey": "string",
      "appSecret": "string"
    },
    "skillsConfig": {
      "pressKey": {
        "maxInactiveSecond": 0
      },
      "shortMemo": {
        "points": [
          "string"
        ],
        "llmConfig": {
          "vendor": "string",
          "modelName": "string",
          "baseUrl": "string",
          "authToken": "string",
          "temperature": 0,
          "apiVersion": "string",
          "topP": 0
        }
      }
    },
    "knowledgeConfig": {
      "usePreviousRoundsSlice": 0,
      "sliceMinimumScore": 0,
      "useMemoEnhanceQuery": false,
      "disableQueryOnNewDialog": false
    },
    "speechScripts": {}
  },
  "audioProcessConfig": {
    "vadType": "string",
    "noiseSuppressionEnabled": false,
    "noiseSuppressionType": "string",
    "noiseSuppressionIntensity": 0,
    "agcEnabled": false,
    "closeAllAudioProcess": false
  },
  "speakerConfig": {
    "speakRatio": 0,
    "ttsName": "string",
    "ttsOptions": {},
    "ssml": false,
    "ssmlReplaces": [
      {
        "key": "string",
        "value": "string"
      }
    ]
  },
  "globalConfig": {
    "welcome": "string",
    "prompt": "string",
    "scene": "string",
    "language": "string",
    "languageConfig": {
      "additionalLanguages": [
        {
          "language": "string"
        }
      ]
    },
    "debugMode": "string",
    "direction": "string",
    "dialogUnInterruptable": false,
    "promptMode": "string",
    "workTimeConfig": {
      "workTimeId": 0,
      "workTime": {
        "id": 0,
        "name": "string",
        "projectId": 0,
        "workdayOption": "string",
        "workdayData": "string",
        "holidayPolicy": "string",
        "worktimeOption": "string",
        "worktimeData": "string"
      },
      "calendar": {
        "id": 0,
        "holidays": "string",
        "workdays": "string",
        "country": "string",
        "year": 0
      }
    }
  },
  "subgoal": {
    "condition": {
      "target": "string",
      "value": "string"
    },
    "type": "string",
    "target": "string",
    "description": "string",
    "collectTargets": {},
    "subgoal": [
      {
        "condition": {
          "target": "string",
          "value": "string"
        },
        "type": "string",
        "target": "string",
        "description": "string",
        "collectTargets": {},
        "subgoal": [
          {
            "condition": null,
            "type": null,
            "target": null,
            "description": null,
            "collectTargets": null,
            "subgoal": null
          }
        ]
      }
    ]
  },
  "analysis": {
    "realTimeCollect": false,
    "collectTargets": [
      {
        "name": "string",
        "enum": [
          "string"
        ],
        "branch": "string",
        "summary": "string",
        "uuid": "string"
      }
    ],
    "conversationAnalysis": [
      {
        "target": "string",
        "description": "string"
      }
    ],
    "qualityAnalysis": {
      "content": "string"
    }
  },
  "mcpServers": [
    {
      "name": "string",
      "description": "string",
      "type": "string",
      "command": "string",
      "args": "string",
      "envs": "string",
      "timeout": 0,
      "selectTools": [
        {
          "toolName": "string",
          "isAsync": false
        }
      ]
    }
  ],
  "audioTrackConfig": {
    "masterVolume": 0,
    "mainTrackVolume": 0,
    "effectAudioTracks": [
      {
        "filename": "string",
        "volume": 0,
        "isActive": false,
        "mode": "string"
      }
    ]
  },
  "queryRewriter": {
    "useRewriter": false,
    "rewritePrompt": "string",
    "llmConfig": {
      "vendor": "string",
      "modelName": "string",
      "baseUrl": "string",
      "authToken": "string",
      "temperature": 0,
      "apiVersion": "string",
      "topP": 0
    }
  },
  "listenerConfig": {
    "providers": [
      {
        "listenerId": 0,
        "name": "string",
        "options": {}
      }
    ],
    "submitMode": "string",
    "transferASR": false,
    "fuzzyOptions": {},
    "direction": "string"
  },
  "createdAt": "2026-01-01T00:00:00Z",
  "updatedAt": "2026-01-01T00:00:00Z",
  "deletedAt": "2026-01-01T00:00:00Z"
}