models

MoonshotAI: Kimi K3 (batch)

Markdown · JSON

MoonshotAI: Kimi K3 (batch)

Kimi K3 is het van oorsprong multimodale redeneermodel van Moonshot AI voor lange programmeertaken en kenniswerk. Het leest tekst, beelden en video, produceert tekst en ondersteunt workflows met tools, met een context van 1.048.576 tokens en behoud van de denkgeschiedenis over meerdere stappen.

Over het model

Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.

Kimi K3 is het multimodale agentmodel met open gewichten van Moonshot AI voor langdurige programmeertaken, kenniswerk en redeneren. Het combineert tekst met ingebouwd visueel begrip van beelden en video en produceert een tekstantwoord of toolverzoek. De fabrikant benadrukt uitgebreide engineeringsessies, grote repositories en taken die screenshots of visuele feedback naast code gebruiken. Een nuttige briefing bepaalt het gewenste artefact, het te gebruiken bewijsmateriaal en de voorwaarde die het werk als voltooid markeert.

Architectuur en lange context

De modelkaart beschrijft een sparse Mixture of Experts met in totaal 2,8 biljoen parameters en 104 miljard geactiveerde parameters. Het Stable LatentMoE-ontwerp selecteert per token 16 van 896 experts en gebruikt Kimi Delta Attention en Attention Residuals samen met gated attention. De exacte contextlengte bedraagt 1.048.576 tokens. Dat biedt ruimte voor een omvangrijke taakcontext en is geen reden om brongrenzen of de ruimte voor het resultaat te negeren.

Het gepubliceerde oorspronkelijke artefact gebruikt kwantisatiebewuste training met MXFP4-gewichten en MXFP8-activaties. Dat is het releaseformaat van de fabrikant, onderscheiden van een afzonderlijk aangeleverde gekwantiseerde editie of een claim over hoe een specifieke route het model aanbiedt. Open gewichten en een groot parameteraantal maken het aantal actieve parameters niet gelijk aan de totale opslag- of hardwarevereiste.

Bereid een omvangrijke programmeertaak voor

Geef het relevante repositorymateriaal, bestaande gedrag, de gevraagde wijziging en compatibiliteitsbeperkingen mee. Identificeer de bestanden of interface waarop het resultaat betrekking moet hebben, de controles die succes bepalen en elke aangeleverde fout of invoer die het probleem blootlegt. Een nuttig resultaat kan een gerichte codewijziging zijn met uitleg en bewijsmateriaal uit werkelijk uitgevoerde controles, in plaats van een beschrijving van nooit uitgevoerde acties.

Voeg voor een visuele ontwikkeltaak een screenshot of duidelijke weergave van het beoogde resultaat toe, samen met de relevante code en een specifieke afwijking. De maker beschrijft workflows voor frontendwerk, games en CAD die visuele feedback gebruiken. Vraag de wijziging die code met het waargenomen resultaat verbindt en bewaar de referentie, zodat het opgeleverde artefact ertegen kan worden gecontroleerd.

Beelden, video en kenniswerk voorbereiden

De snelstartgids van de producent gebruikt getypeerde content-objecten voor visuele berichten; content is een array en geen geserialiseerde weergave van die array. De beeldworkflow gebruikt gecodeerde beeldgegevens of een ondersteunde bestandsverwijzing in plaats van een publiek afbeeldingsadres. Het videovoorbeeld uploadt een videobestand en geeft de resulterende verwijzing mee met een vraag over de inhoud. Lever een leesbare bron aan en specificeer de relevante waarneming, het interval of de relatie. De beeldworkflow van de producent aanvaardt JPEG-, PNG-, GIF-, WebP-, BMP-, HEIC- en HEIF-beelden en MP4-, MPEG-, MOV-, AVI-, FLV-, MPG-, WebM-, WMV- en 3GPP-video. Geanimeerde GIF of WebP kan als video worden gedecodeerd. Lever SVG-broncode als tekst aan. De maker beveelt beelden tot 4096 × 2160 en video tot 1920 × 1080 aan; dat zijn resolutieaanbevelingen en geen afwijzingsdrempels. Houd de verzoekbody binnen de gedocumenteerde groottelimiet van 100M en upload grote of herhaald gebruikte media als bestanden.

Label voor onderzoek met veel documenten de bronnen en vermeld welke vragen het eindrapport moet beantwoorden. Benoem voor videouitleg de te analyseren gebeurtenissen of volgorde in plaats van onbeperkte commentaar te vragen. K3 gebruikt visuele inhoud als bewijsmateriaal voor redenering en retourneert tekst of toolverzoeken. Een toepassing kan die verzoeken doorgeven aan mediatools om afzonderlijke beeld- of videoartefacten te maken.

Denkwerk is altijd ingeschakeld

De producentinterface van K3 heeft thinking altijd ingeschakeld. De instelling reasoning_effort op het hoogste niveau aanvaardt low, high en max, met max als standaard. Deze keuzes zijn modelspecifiek; een instelling zonder denkwerk of een inspanningswaarde van een andere familie mag niet worden verondersteld. De migratierichtlijnen van de maker onderscheiden K3 van K2.x door reasoning_effort te gebruiken in plaats van de oudere thinking-configuratie over te nemen.

De producent documenteert afzonderlijke reasoning_content en inhoud voor het definitieve antwoord in gestreamde resultaten. Bij een conversatie over meerdere beurten of toolworkflow moet het volledige teruggegeven assistentbericht ongewijzigd worden teruggestuurd, inclusief reasoning_content en tool_calls. Wie alleen het zichtbare definitieve antwoord bewaart, verliest informatie die de workflow met behouden denkwerk in de volgende stap verwacht.

Gestructureerde eindantwoorden en gedeeltelijke voortzetting

De snelstartgids documenteert strikte JSON-schema-uitvoer voor de uiteindelijke berichtinhoud. Definieer de velden en hun betekenis rond het artefact dat de toepassing nodig heeft en parseer die definitieve inhoud in plaats van ze met het redeneerveld te combineren. Een gestructureerd resultaat kan geëxtraheerde informatie uit aangeleverd materiaal of een vastgelegd rapportformaat weergeven; het schema begrenst de vorm, terwijl bronbewijs bepaalt of de waarden correct zijn.

Partial-modus kan een aangeleverd tekstprefix voortzetten. Het producentvoorbeeld plaatst een gedeeltelijk assistentbericht aan het einde van de geschiedenis en combineert dat prefix met de teruggegeven voortzetting voor weergave. Gebruik dit wanneer het vereiste artefact een betekenisvol vast begin heeft en houd het prefix gescheiden van de gegenereerde rest.

Tools en continuïteit van hun resultaten

K3 ondersteunt aangepaste functietools. Het producentvoorbeeld vereist een tool in de eerste beurt, behoudt het volledige assistentbericht, voert elke teruggegeven aanroep uit en voegt een bijbehorend toolresultaat toe voordat het definitieve antwoord wordt gevraagd. Een voorgestelde aanroep is geen bewijs dat de bewerking is geslaagd; het werkelijk teruggegeven resultaat wordt het bewijsmateriaal voor de volgende stap.

De workflow voor dynamisch laden introduceert op een specifiek punt in de berichtgeschiedenis een volledige tooldefinitie. Die definitie heeft naam, doel en parameters nodig en moet in de daaropvolgende geschiedenis blijven staan omdat de server de declaratie niet zelfstandig bewaart. Houd toolmogelijkheden, aangeleverde argumenten en werkelijke waarnemingen verbonden, zodat een lange taak vanuit reeds voltooid werk kan doorgaan.

Uitvoerinstellingen en herhaalde context

De producent documenteert een standaard aanvulbudget van 131.072 tokens, instelbaar tot 1.048.576 binnen de algemene contextbeperkingen van het model. De huidige K3 API legt temperature vast op 1.0 en top_p op 0.95, met één resultaat en nul presence- en frequency-penalties, en draagt aanroepers op die samplinginstellingen weg te laten. Dat zijn instellingen van deze exacte producentmodelvariant en geen overdraagbare lijst van instelbare opties.

Contextcaching is automatisch voor geschikte herhaalde prefixen, met gedocumenteerde TTL-keuzes van 5 minuten en 1 uur en 5 minuten als standaard. Gedeeltelijke cacheblokken blijven cachemissers. Houd herbruikbare context stabiel en controleer werkelijk gebruik in plaats van een cachehit alleen uit herhaalde tekst af te leiden. Bewaar voor het eindartefact de aangeleverde bronnen, het werkelijke toolbewijs en de vereiste uitvoerstructuur en controleer dat een lang antwoord of engineeringresultaat aan de vastgelegde voltooiingscriteria voldoet.

Ailoot Ultra · Batchverwerking POST /v1/batches moonshotai/kimi-k3:batch

moonshotai/kimi-k3:batch

MoonshotAI /moonshotai/kimi-k3:batch

Aan de slag

Kimi K3 is het van oorsprong multimodale redeneermodel van Moonshot AI voor lange programmeertaken en kenniswerk. Het leest tekst, beelden en video, produceert tekst en ondersteunt workflows met tools, met een context van 1.048.576 tokens en behoud van de denkgeschiedenis over meerdere stappen.

Toegestane invoer
Tekst
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · Batchverwerking POST /v1/batches
Invoer
text
Uitvoer
text
Uitvoerformaat
inline JSON uit results[].response.body
VeldTypeVereisteWaarden en limietenStandaard
VeldendpointTypestringVereisteVereistWaarden en limieten
/v1/chat/completions
Standaard—
VeldmodelTypestringVereisteVereistWaarden en limieten
moonshotai/kimi-k3:batch
Standaard—
VeldrequestsTypebatch_item[]VereisteVereistWaarden en limieten
Minimumaantal items: 1
Standaard—
Veldrequests[].custom_idTypestringVereisteVereistWaarden en limietenStandaard—
Veldrequests[].body.messagesTypemessage[]VereisteVereistWaarden en limietenStandaard—
Veldcompletion_windowTypestringVereisteOptioneelWaarden en limieten
24h
Standaard—
VeldproviderTypeobject|nullVereisteOptioneelWaarden en limietenStandaard—
Veldrequests[].body.modelTypestringVereisteOptioneelWaarden en limieten
moonshotai/kimi-k3:batch, moonshotai/kimi-k3
Standaard—
Veldprovider.onlyTypestring[]VereisteOptioneelWaarden en limieten
deepinfra/bf16
Standaard—
Veldprovider.allow_fallbacksTypeboolean|nullVereisteOptioneelWaarden en limieten
false, null
Standaard—
Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractendpoint, model, requests
Parametermaterial_typesContracttext
ParameterrepresentationContractinline requests[]; elk item bevat custom_id en body
Parameterrequest_endpoint_profileContract/v1/chat/completions
Parameterfile_materialContractDe aanroeper kan de daadwerkelijke UTF-8 JSONL lokaal in requests[] inlezen. Er wordt geen uploaddoel, input_file_id of bestandsverwijzing gebruikt. Ontbrekend of leeg klantmateriaal stopt de voorbereiding vóór POST.
Parameterserialization_orderContractendpoint, model, provider (indien opgegeven), completion_window (indien opgegeven), requests als laatste
Parameteroptional_controlsContractprovider.only, provider.allow_fallbacks, completion_window
Parameterschema_scopeContractAanvraagbodies voor tekst via Chat Completions in de gedocumenteerde inline Batch-structuur.

Levenscyclus: asynchronous

GET /v1/batches/{operation_id} · daadwerkelijke response.id uit de oorspronkelijke aanmaakrespons; dezelfde gebruiker/sleutel/groep

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Niet opgegeven Wanneer de snelle modus geselecteerd is
Flex-modus
Niet opgegeven Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Tarieven voor expliciete caching
Niet ingeschakeld Wanneer expliciete caching wordt aangevraagd

Ailoot-tarieven

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.00456 / 1K tokens
Uitvoer · Uitvoertokens $0.0228 / 1K tokens
Invoer · Cache lezen $0.000456 / 1K tokens
Invoer · Cache schrijven — / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 1Tariefstaffel—Contexttokens, meer dan0Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.00456 / 1K tokens
Uitvoer · Uitvoertokens $0.0228 / 1K tokens
Invoer · Cache lezen $0.000456 / 1K tokens
Invoer · Cache schrijven — / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · Batchverwerking

curl · bewaarde fixturePython HTTP · daadwerkelijke JSONL van de klantPython · sla elk voltooid resultaat op
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"moonshotai/kimi-k3:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen

def prepare_requests(customer_path):
    path = Path(customer_path)
    if not path.is_file(): raise ValueError("Customer JSONL file is missing")
    items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
    if not items: raise ValueError("Customer JSONL contains no requests")
    ids = set()
    for item in items:
        if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
        cid = item["custom_id"]
        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
        ids.add(cid)
        if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
        supplied_model = item["body"].get("model")
        if supplied_model is not None and supplied_model not in ['moonshotai/kimi-k3:batch', 'moonshotai/kimi-k3']: raise ValueError("body.model must be an exact documented caller or wire ID")
    return {"endpoint":"/v1/chat/completions", "model":"moonshotai/kimi-k3:batch", "requests":items}

if __name__ == "__main__":
    material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
    if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
    body = prepare_requests(material)
    key = os.environ.get("AILOOT_API_KEY", "")
    if not key: raise SystemExit("Set AILOOT_API_KEY")
    request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
    with urlopen(request) as response:
        raw = response.read()
        Path("batch-create-response.json").write_bytes(raw)
        print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
    raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
    raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.

Resultaten ophalen en opslaan

Ailoot Ultra · Batchverwerking

inline JSON uit results[].response.body

  • GET /v1/batches/{operation_id}
Taakstatus controleren
curl · Status van de oorspronkelijke bewerking
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar de volledige oorspronkelijke status-JSON, elk resultaat/custom_id en de volledige respons- of foutbody. Sla voltooide results[] op als JSONL, zonder te filteren.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar de oorspronkelijke bewerkings-ID. 503 result_pending_check bevat X-Should-Retry:false; dien een oorspronkelijke batch met onbekende status nooit opnieuw in.

Antwoordvelden
VeldType
Veldresults[].custom_idTypestring
Veldresults[].response.body.choices[].message.contentTypestring|null
Veldresults[].errorTypeobject|null
VeldusageTypeobject|null
VeldidTypestring
VeldmodelTypestring
VeldendpointTypestring
VeldstatusTypestring
Veldrequest_countsTypeobject
Veldresults[].idTypestring
Veldresults[].response.status_codeTypeinteger
Veldresults[].response.request_idTypestring
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeOngeldige gedocumenteerde inline structuur, dubbele sleutels, ongeldige itemidentiteit of conflict met de geconfigureerde modelmogelijkheden.Volgende stapCorrigeer de aangegeven velden vóór elke nieuwe indiening.
Antwoord401 · authentication_errorVoorwaardeOngeldige API-sleutel.Volgende stapGebruik de geautoriseerde Ailoot-sleutel.
Antwoord403 · permission_errorVoorwaardeBatch-groep niet beschikbaar.Volgende stapControleer de toegangsrechten van de sleutel/groep.
Antwoord422 · invalid_request_errorVoorwaardeBatch wordt via het saldo gefactureerd; aanmaken via een abonnement wordt geweigerd.Volgende stapGebruik de geautoriseerde groep die via het saldo wordt gefactureerd.
Antwoord422 · price_unavailableVoorwaardeVoor de Batch-invoer kan geen prijsraming worden gemaakt.Volgende stapBewaar de respons; gebruik de gedocumenteerde invoer voor deze familie.
Antwoord402 · billing_errorVoorwaardeReservering voor Batch niet beschikbaar.Volgende stapLos het toelatingsprobleem op vóór een nieuwe aanvraag.
Antwoord503 · price_unavailableVoorwaardePrijs voor de Batch-methode/native tarieven niet beschikbaar.Volgende stapBewaar de respons; vervang de prijzen niet.
Antwoord503 · api_errorVoorwaardeDe exacte leveranciersroute is niet beschikbaar.Volgende stapBewaar de respons voor het herstel van de route.
Antwoord503 · result_pending_checkVoorwaardeHet oorspronkelijke resultaat moet gecontroleerd worden; X-Should-Retry:false.Volgende stapBewaar de oorspronkelijke operation_id/id en lees de status ervan uit; herhaal de oorspronkelijke POST nooit.
Antwoord404 · not_foundVoorwaardeBewerking voor de Batch-status ontbreekt of behoort toe aan een andere identiteit.Volgende stapGebruik de exacte oorspronkelijke id en dezelfde gebruiker/sleutel/groep.

Aliasnamen

Modelaliasnamen

Ailoot Ultra moonshotai/kimi-k3:batch

Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

Gerelateerde aanroeper-ID’s

moonshotai/kimi-k3:batch

FAQ · MoonshotAI: Kimi K3 (batch)
Welke invoer en resultaten zijn beschikbaar?

POST /v1/batches · moonshotai/kimi-k3:batch: text → text

Welke velden gebruikt het verzoek?

POST /v1/batches · moonshotai/kimi-k3:batch: endpoint, model, requests, completion_window, provider

Welke limieten gelden?

POST /v1/batches · moonshotai/kimi-k3:batch: requests.min_items: 1

Meer details

Verbind Ailoot met Claude Code, OpenCode, Hermes of je eigen applicatie.

Het bedrijf en zijn projectenportefeuille

Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.

Koop tokens met korting.

Abonnementsvoordeel voor regelmatig gebruik. Promotiecodes geven tot 50% korting op tokens.

Abonnement
Kies een abonnement met korting voor je terugkerende verzoeken.
Promotiecode tot 50%
Vul de code bij aankoop in. De prijs wordt volgens de lopende actie herberekend.
Kosten in de geschiedenis
Model, tokens en bedrag worden per verzoek bewaard.

Kies een abonnement · Bekijk modelprijzen

Verbind de API met het product dat je verkoopt.

SaaS, apps en bots volgens de openbare aanbodvoorwaarden en licentieovereenkomst van Ailoot. Vraag voor doorverkoop een resellerlicentie aan.

Commerciële applicatie
Voeg tekst-, beeld-, video- en geluidsgeneratie aan betaalde functies van je service toe.
Resellerlicentie
Stuur een projectbeschrijving en toegangsschema. Vraag schriftelijke voorwaarden voor gebruik en doorverkoop.
Documenten op de site
Aanbodvoorwaarden, licentieovereenkomst en gegevensbeleid zijn vóór het verbinden beschikbaar.

Vraag een resellerlicentie aan · Aanbodvoorwaarden en licentieovereenkomst