🎉 vox.ai 디스코드 커뮤니티가 새로 열렸어요! 참여하기 →
에이전트를 생성합니다. single_prompt는 name만으로 생성할 수 있고, flow는 생성 시 flow_data가 필요합니다.
curl --request POST \
--url https://client-api.tryvox.co/v3/agents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Customer support agent"
}
'{
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "single_prompt",
"created_at": 123,
"updated_at": 123,
"production_version": "<string>",
"data": {
"prompt": {
"prompt": "",
"firstLine": "",
"firstLineType": "aiFirstDynamic",
"pauseBeforeSpeakingSeconds": 0,
"isFirstMessageInterruptible": true
},
"stt": {
"languages": [
"<string>"
],
"speed": "high"
},
"llm": {
"model": "<string>",
"temperature": 1,
"thinkingBudget": 123,
"reasoningEffort": "none"
},
"voice": {
"id": "<string>",
"provider": "<string>",
"model": "<string>",
"speed": 1,
"volume": 1,
"language": "<string>",
"temperature": 0.9
},
"speech": {
"responsiveness": 1,
"boostedKeywords": "<string>"
},
"callSettings": {
"backgroundMusic": "none",
"backgroundMusicVolume": 0.5,
"noiseCancellation": "bvc",
"activationThreshold": 0.55,
"callTimeoutInSeconds": 900,
"silenceCallTimeoutInSeconds": 30,
"ringDurationInSeconds": 30,
"dtmfTerminationEnabled": false,
"dtmfTerminationKey": "#",
"dtmfTimeoutSeconds": 3
},
"postCall": {
"actions": [
{
"name": "<string>",
"type": "string",
"isNullable": false,
"description": "<string>",
"enumOptions": [
"<string>"
]
}
]
},
"security": {
"optOutSensitiveDataStorage": false
},
"webhookSettings": {
"callDataWebhookUrl": "<string>",
"inboundCallWebhookUrl": "<string>",
"webhookVersion": "v1"
},
"knowledge": {
"ragEnabled": false,
"knowledgeIds": [
123
]
},
"presetDynamicVariables": {},
"toolIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"builtInTools": [
{
"toolType": "<string>",
"name": "end_call",
"description": "<string>",
"speakDuringExecution": {
"enabled": false,
"messages": [
"<string>"
]
}
}
]
},
"flow_data": {
"nodes": [
{
"id": "<string>",
"type": "<string>",
"position": {
"x": 123,
"y": 123
},
"data": {
"name": "<string>",
"promptType": "static",
"prompt": "<string>",
"staticSentence": "<string>",
"loopCondition": "<string>",
"isAllowInterruption": true,
"isSkipUserResponse": true,
"globalNodeSettings": {
"isGlobalNode": false,
"transitionCondition": "<string>"
},
"transitions": [
{
"id": "<string>",
"condition": "<string>",
"isSkipUserResponse": true,
"isFallback": true,
"isGlobalTransition": true
}
],
"logicalTransitions": [
{
"id": "<string>",
"condition": {
"conditions": [
{
"variable": "<string>",
"operator": "equals",
"value": "<unknown>"
}
],
"logicalOperator": "or"
},
"isSkipUserResponse": true,
"isGlobalTransition": true
}
],
"fineTuningExamples": [
{}
],
"firstLineType": "aiFirst",
"pauseBeforeSpeakingSeconds": 2.5
}
}
],
"edges": [
{
"id": "<string>",
"source": "<string>",
"target": "<string>",
"type": "custom",
"sourceHandle": "<string>",
"targetHandle": "<string>",
"animated": true,
"selected": true
}
],
"viewport": {}
},
"version": {
"version": "<string>",
"is_production": true,
"created_at": 123,
"description": "<string>"
},
"validation_message": ""
}Documentation Index
Fetch the complete documentation index at: https://docs.tryvox.co/llms.txt
Use this file to discover all available pages before exploring further.
조직 API 키를 Authorization: Bearer <token> 형식으로 보냅니다.
에이전트 생성 요청입니다. 에이전트 설정은 data, flow 그래프는 flow_data로 보냅니다.
에이전트 생성 요청입니다.
single_prompt는 name만 필수입니다. data를 보내지 않거나 일부만 보내면 서버 기본값으로 채웁니다. flow는 생성 시점부터 flow_data가 필요합니다.
대시보드와 목록 응답에 표시되는 에이전트 이름입니다.
1 - 255에이전트 유형입니다. single_prompt는 data를 사용하고, flow는 생성 시 flow_data 그래프가 필요합니다.
single_prompt, flow 에이전트 설정 요청입니다. 구조는 agent-schema/agent-data-create에 공개되어 있으며, 누락되거나 일부만 전달된 값은 서버 기본값과 병합됩니다.
Show child attributes
flow 에이전트의 그래프입니다. 구조는 flow-schema/flow-data에 공개되어 있으며, type이 flow이면 필수입니다.
성공 응답
create/update 응답입니다. AgentResponse와 flow validator 메시지를 함께 반환합니다.
validation_message는 schema 검증을 통과해 200/201로 저장된 요청의 flow_data validator warning을 줄바꿈으로 합친 요약 문자열입니다. warning이 없거나 single_prompt 에이전트이면 빈 문자열입니다. Tier 3 reject 케이스는 400으로 처리하므로 이 필드에는 포함되지 않습니다.
에이전트 UUID입니다.
에이전트 이름입니다. 버전 스냅샷을 조회하더라도 현재 최상위 이름을 반환합니다.
에이전트 유형입니다. single_prompt 또는 flow 값을 사용합니다.
single_prompt, flow 리소스 생성 시각입니다. unix milliseconds 형식입니다.
리소스 마지막 수정 시각입니다. unix milliseconds 형식입니다.
현재 게시된 production 버전입니다. 없으면 null입니다.
선택된 에이전트 설정 스냅샷입니다. 구조는 agent-schema/agent-data-response에 공개되어 있습니다.
Show child attributes
선택된 flow 그래프 스냅샷입니다. flow 에이전트에는 값이 있고, single_prompt 에이전트는 null입니다.
Show child attributes
스냅샷 조회 시에만 populated (version=v{n} 또는 production).
Show child attributes
flow_data validator 가 발견한 warning 들의 줄바꿈 구분 요약. warning 이 없거나 single_prompt 에이전트면 빈 문자열.
Was this page helpful?
curl --request POST \
--url https://client-api.tryvox.co/v3/agents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Customer support agent"
}
'{
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "single_prompt",
"created_at": 123,
"updated_at": 123,
"production_version": "<string>",
"data": {
"prompt": {
"prompt": "",
"firstLine": "",
"firstLineType": "aiFirstDynamic",
"pauseBeforeSpeakingSeconds": 0,
"isFirstMessageInterruptible": true
},
"stt": {
"languages": [
"<string>"
],
"speed": "high"
},
"llm": {
"model": "<string>",
"temperature": 1,
"thinkingBudget": 123,
"reasoningEffort": "none"
},
"voice": {
"id": "<string>",
"provider": "<string>",
"model": "<string>",
"speed": 1,
"volume": 1,
"language": "<string>",
"temperature": 0.9
},
"speech": {
"responsiveness": 1,
"boostedKeywords": "<string>"
},
"callSettings": {
"backgroundMusic": "none",
"backgroundMusicVolume": 0.5,
"noiseCancellation": "bvc",
"activationThreshold": 0.55,
"callTimeoutInSeconds": 900,
"silenceCallTimeoutInSeconds": 30,
"ringDurationInSeconds": 30,
"dtmfTerminationEnabled": false,
"dtmfTerminationKey": "#",
"dtmfTimeoutSeconds": 3
},
"postCall": {
"actions": [
{
"name": "<string>",
"type": "string",
"isNullable": false,
"description": "<string>",
"enumOptions": [
"<string>"
]
}
]
},
"security": {
"optOutSensitiveDataStorage": false
},
"webhookSettings": {
"callDataWebhookUrl": "<string>",
"inboundCallWebhookUrl": "<string>",
"webhookVersion": "v1"
},
"knowledge": {
"ragEnabled": false,
"knowledgeIds": [
123
]
},
"presetDynamicVariables": {},
"toolIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"builtInTools": [
{
"toolType": "<string>",
"name": "end_call",
"description": "<string>",
"speakDuringExecution": {
"enabled": false,
"messages": [
"<string>"
]
}
}
]
},
"flow_data": {
"nodes": [
{
"id": "<string>",
"type": "<string>",
"position": {
"x": 123,
"y": 123
},
"data": {
"name": "<string>",
"promptType": "static",
"prompt": "<string>",
"staticSentence": "<string>",
"loopCondition": "<string>",
"isAllowInterruption": true,
"isSkipUserResponse": true,
"globalNodeSettings": {
"isGlobalNode": false,
"transitionCondition": "<string>"
},
"transitions": [
{
"id": "<string>",
"condition": "<string>",
"isSkipUserResponse": true,
"isFallback": true,
"isGlobalTransition": true
}
],
"logicalTransitions": [
{
"id": "<string>",
"condition": {
"conditions": [
{
"variable": "<string>",
"operator": "equals",
"value": "<unknown>"
}
],
"logicalOperator": "or"
},
"isSkipUserResponse": true,
"isGlobalTransition": true
}
],
"fineTuningExamples": [
{}
],
"firstLineType": "aiFirst",
"pauseBeforeSpeakingSeconds": 2.5
}
}
],
"edges": [
{
"id": "<string>",
"source": "<string>",
"target": "<string>",
"type": "custom",
"sourceHandle": "<string>",
"targetHandle": "<string>",
"animated": true,
"selected": true
}
],
"viewport": {}
},
"version": {
"version": "<string>",
"is_production": true,
"created_at": 123,
"description": "<string>"
},
"validation_message": ""
}