AGTCloud API Docs
GuidesAPI ReferenceIntegrations and resourcesUpdate and help
Vendor parameter differences

Muse parameter and protocol differences

Understand Muse parameter differences and usage across compatible protocols.

For Muse models, adjust thinking, tools and caching using this page. See Chat Completions, Responses and Messages for full structures.

Applicable models

ModelUsage notes
muse-wonder-1.0Supports three protocols; thinking cannot be disabled. max is an effort level and does not switch to Muse Wonder Full
muse-spark-1.3Uses the same request format and also supports max; see media limits for model-specific audio support

Chat Completions differences

FieldDifference
reasoning_effortBoth use minimal/low/medium/high/xhigh/max; thinking remains enabled when omitted. none returns 400
max_completion_tokensThinking and visible answers share the budget; the old max_tokens alias is accepted, not Responses max_output_tokens
temperature/top_pRanges: 0~2 and (0,1]; both default to 1. Usually keep defaults or adjust just one; top_p: 0 returns 400
nOnly 1 is supported; above 1 returns 400
Incompatible settingsstop, verbosity, logit_bias, prediction, modalities, audio and web_search_options are unsupported; do not reuse these from general examples
Penalties and Logprobsfrequency_penalty/presence_penalty is unsupported and may return an error; logprobs: true returns 400
tool_choiceOnly auto is supported; none, required and named functions return 400. Function names may contain at most one period
reasoning_contentThe vendor's external API does not return readable original thinking; this field cannot preserve it across turns. Use Responses or Messages for continuity
strictFunction tools and structured output both default to false. When enabled, every object needs additionalProperties: false and all properties listed in required; the root must be a plain object, without oneOf/allOf

Responses differences

FieldDifference
reasoning.effortUses Chat's six levels; none is unsupported. reasoning.summary requests a summary, which cannot replace encrypted history
max_output_tokensMinimum: 16; includes thinking and visible answers. Input plus requested output budget must fit the model's context window
includeRequest encrypted thinking with reasoning.encrypted_content; omitted by default. With store: false, manually replay complete output items without modifying encrypted content
previous_response_idContinues saved history and thinking server-side; choose this or manual replay, not final-text-only history as a substitute for thinking replay
truncationOnly default disabled is supported; auto returns 400. Manage long histories yourself
background/streamA create request cannot set both to true, or it returns 400. After creation, background jobs can be polled or streamed
tool_choiceAlso only auto; web_search and tool_search provide server-side search and tool discovery, unavailable in Chat
text.format/strictUse Responses' own structured-output settings; top-level response_format, even if accepted for compatibility, does not configure the output format. Strict-mode defaults and constraints are as above
Logprobs and streaming usageRequesting message.output_text.logprobs returns 400. Final streamed responses include usage; Chat's stream_options.include_usage has no effect here

Messages differences

FieldDifference
max_tokensRequired; minimum: 1. Budget for thinking and answers; do not reuse Responses' field name or minimum
thinking/output_config.effortPrefer thinking.type: adaptive with low/medium/high/xhigh/max; neither minimal nor disabled can disable thinking
thinking.budget_tokensOld enabled is accepted but does not map to effort levels. Budget must be at least 1024 and less than max_tokens; adjust depth through output_config.effort
thinking.displaysummarized returns a summary; omitted retains only encrypted thinking. Replay returned thinking blocks unchanged, especially redacted_thinking
temperatureRange: 0~1, unlike Chat / Responses; usually omit sampling settings
Incompatible fieldstop_k, stop_sequences and inference_geo are explicitly unsupported and rejected
tool_choiceAccepts auto/any/none, but not {type: "tool"} to select a named tool; disable_parallel_tool_use: true limits parallel calls
output_config.formatUse {type: "json_schema", schema: ...} for structured output; document-block citations.enabled: true is unsupported
Search and historySearch uses web_search; allowed_domains/blocked_domains/max_uses returns 400. Native Messages stores no conversation; replay full messages and tool results each turn. There is no equivalent to previous_response_id

Cache differences

FieldDifference
Automatic prefix cachingNo switch needed; put stable instructions, examples and reference material first, variable content last, and keep reusable prefixes identical
prompt_cache_keyOptional grouping identifier for Chat / Responses; set by shared prompt prefix rather than generating one per user or request, which would scatter identical-prefix routing
prompt_cache_retentionResponses uses in_memory/24h as a retention hint, managed by the server. Do not reuse newer OpenAI cache fields or assume this setting is deprecated
cache_controlMessages accepts cache markers at request level, on content blocks and on tools; ttl only supports 5m, not Claude's 1h
Cache usageChat: inspect usage.prompt_tokens_details.cached_tokens; Responses: usage.input_tokens_details.cached_tokens; Messages: usage.cache_read_input_tokens. Setting an identifier does not prove a hit

Media input differences

InputProtocol content blockDifference
Imageimage_urlChat uses image_url.url; Responses uses input_image with a string image_url. Public URLs and Base64 are supported; native file references require the corresponding Files service
Videoinput_videoResponses uses video_url or file_id; uploaded videos can also use input_file. Chat uses its own video_url block; do not mix the structures
Audioinput_audioChat / Responses: pass raw Base64 in input_audio.data and fill in input_audio.format. Responses also accepts an audio_url Base64 Data URL or native file_id
PDFfileChat uses file.file_data/file_id, Responses input_file, and Messages document; do not reuse image fields
Mediaimage/videoMessages uses base64/url/file sources inside source; video is a Meta extension
LimitDescription
ImageInline images: maximum 50 MB (50000000 bytes) each, at most 50 per request, also subject to body and context limits. Put images in user messages
Spark 1.3 audioAudio understanding is not fully supported; audio input may reduce quality
OutputBoth output text; accepting images, audio or video does not imply media generation support

Request examples

Replace MODEL_ID with the full platform model ID. Group cache identifiers by shared application prompt prefix. All three examples use low effort and an explicit budget.

curl 'https://api.agtcloud.cn/v1/chat/completions' \
  -H 'Authorization: Bearer your-api-key' \
  -H 'Content-Type: application/json' \
  --data '{
    "model": "MODEL_ID",
    "messages": [{"role": "user", "content": "Explain how to troubleshoot an API timeout in three points"}],
    "reasoning_effort": "low",
    "max_completion_tokens": 4096,
    "prompt_cache_key": "YOUR_SHARED_PREFIX"
  }'

Official references

On this page