Noul motor de raționament Claude Fable 5 de la Anthropic menține gândirea profundă activată la fiecare solicitare și le permite dezvoltatorilor să ajusteze în schimb adâncimea raționamentului, în sus sau în jos. În mod tradițional, Modelele de Limbaj Mari (LLM) funcționau pe baza unor parametri de calcul ficși, generând tokeni la o viteză uniformă, indiferent de complexitatea interogării. Salutările simple consumau aceeași energie de procesare ca și demonstrațiile matematice avansate. Cu Fable 5, Anthropic introduce un framework de raționament hibrid în care gândirea este întotdeauna activă, iar dumneavoastră controlați cât de intens lucrează modelul printr-o singură setare effort. Acest tutorial descrie modul în care funcționează API-ul, cum să alegeți un nivel de efort și cum să implementați această arhitectură în fluxurile de producție.
[!WARNING] Avertisment privind limitările API: Gândirea este întotdeauna activă pentru Fable 5, deci nu o puteți dezactiva. Transmiterea
thinking: {type: "enabled"}sauthinking: {type: "disabled"}, ori furnizarea unei valoribudget_tokens, returnează o eroare HTTP 400 — acei parametri au fost eliminați. Controlați în schimb adâncimea raționamentului cuoutput_config: {effort: "..."}și lăsați suficient dinmax_tokenspentru răspunsul final la nivelurile de efort mai ridicate.Aspecte cheie:
- Ajustați efortul, nu comutatoare: Setați
output_config.effortlalow,medium,high,xhighsaumax— nu există un comutator de pornire/oprire.- Gândirea este automată: Omiteți
thinkingsau transmiteți{type: "adaptive"}; gândirea adaptivă rulează la fiecare solicitare.- Procesați stream-urile: Gestionați blocurile de conținut
thinkingcu deltethinking_deltaîn fluxurile de server în timp real.- Gestionați facturarea: Caching-ul prompturilor de sistem reduce ciclurile redundante de procesare a gândirii.
Explicarea motorului de raționament hibrid Claude
Inovația principală a Fable 5 este capacitatea sa de a gândi asupra unei probleme înainte de a genera răspunsul final. Acest lucru înseamnă că modelul elaborează intern o schiță logică a soluției înainte de a răspunde la cererile clientului. În mod esențial, această fază de gândire este întotdeauna activă — nu o puteți dezactiva și nu există un „mod viteză” separat în care să comutați.
Când trimiteți o întrebare complexă, modelul nu încearcă să prezică imediat următorul cuvânt. În schimb, generează tokeni de gândire interni, simulând un proces de raționament pas cu pas. Această arhitectură îmbunătățește drastic precizia pentru matematică, codare și evaluare logică.
Pentru a sprijini diverse cerințe enterprise, Anthropic le permite dezvoltatorilor să scaleze la cerere adâncimea acelei gândiri printr-un singur control effort. La efort scăzut (low), modelul gândește pe scurt și răspunde rapid, menținând latența și consumul de tokeni la un nivel redus. La efort ridicat (high) sau maxim (max), raționează mult mai profund, cheltuind resursa de calcul suplimentară necesară pentru matematică dificilă, logică multi-pas și cod complex. Compromisul dintre viteză și adâncime este exprimat în întregime prin acest nivel de efort, nu printr-un comutator de activare/dezactivare.
Configurarea parametrilor API ai Fable 5
Pentru a implementa aceste capacități în software-ul dumneavoastră, trebuie să utilizați schema actualizată a API-ului Anthropic. Această schemă se asigură că aplicațiile dumneavoastră client specifică numele corect al modelului și parametrii de execuție.
Adâncimea raționamentului este stabilită printr-un bloc output_config. În cadrul acestuia, câmpul effort acceptă una dintre valorile "low", "medium", "high", "xhigh" sau "max", iar această singură valoare înlocuiește vechiul buget de tokeni. În cazul simplu, nu transmiteți deloc un bloc thinking — gândirea adaptivă rulează automat. Integrarea JavaScript de mai jos demonstrează modul în care se structurează această cerere:
1import Anthropic from "@anthropic-ai/sdk";
2
3export default {
4 async fetch(request, env) {
5 const anthropic = new Anthropic({ apiKey: env.ANTHROPIC_API_KEY });
6
7 try {
8 const response = await anthropic.messages.create({
9 model: "claude-fable-5",
10 max_tokens: 8192,
11 // Thinking is always on for Fable 5; dial reasoning depth with effort:
12 output_config: { effort: "high" }, // "low" | "medium" | "high" | "xhigh" | "max"
13 messages: [
14 {
15 role: "user",
16 content: "Generate an optimised database migration script for 10 million records."
17 }
18 ]
19 });
20
21 return Response.json(response);
22 } catch (err) {
23 return Response.json({ error: err.message }, { status: 500 });
24 }
25 }
26};
Nu încercați să dezactivați gândirea sau să transmiteți o valoare budget_tokens: thinking: {type: "disabled"}, thinking: {type: "enabled"} și orice câmp budget_tokens returnează, toate, o eroare HTTP 400 pe Fable 5, deoarece acei parametri au fost eliminați pe acest model (și pe Opus 4.7 și 4.8). Alegeți un nivel de efort mai scăzut pentru viteză și unul mai ridicat pentru adâncime și lăsați suficient spațiu în max_tokens pentru răspunsul final atunci când creșteți efortul. Pentru detalii despre arhitecturile serverless, citiți ghidul nostru despre construirea unui API serverless cu Cloudflare Workers
.
Gestionarea tokenilor de raționament în stream-uri
Pentru aplicații în timp real, cum ar fi interfețele de chat, transmiterea prin streaming a răspunsurilor este esențială. Fable 5 emite atât pașii de gândire, cât și conținutul final prin canale SSE (Server-Sent Events).
În timpul unui stream, gândirea sosește sub formă de blocuri de conținut thinking, livrate prin evenimente content_block_delta al căror delta.type este "thinking_delta". Citiți textul din delta.thinking și citiți răspunsul final din deltele obișnuite text_delta. Lanțul brut de raționament nu este niciodată returnat — pentru a primi un rezumat lizibil trebuie să optați explicit prin thinking: {type: "adaptive", display: "summarized"}; valoarea implicită "omitted" transmite text de gândire gol. Un handler minimal arată astfel:
1const stream = await anthropic.messages.stream({
2 model: "claude-fable-5",
3 max_tokens: 8192,
4 output_config: { effort: "high" },
5 thinking: { type: "adaptive", display: "summarized" },
6 messages: [{ role: "user", content: prompt }]
7});
8
9for await (const event of stream) {
10 if (event.type === "content_block_delta") {
11 if (event.delta.type === "thinking_delta") {
12 process.stdout.write(event.delta.thinking); // summarised reasoning
13 } else if (event.delta.type === "text_delta") {
14 process.stdout.write(event.delta.text); // final answer
15 }
16 }
17}
Puteți direcționa acele fragmente thinking_delta într-un panou pliabil „Thinking…”, sau puteți renunța la ele și afișa doar răspunsul. Pentru o referință detaliată despre integrările Anthropic, consultați direct Documentația pentru Dezvoltatori Anthropic
.
Gestionați cu atenție contabilitatea tokenilor. Tokenii de gândire se adaugă la facturarea API-ului la ieșire. Prin urmare, implementați un sistem agresiv de stocare în cache a prompturilor pentru a evita rularea din nou a ciclurilor de raționament pe intrări identice. Atunci când planificați o implementare în producție, urmărirea acestor metrici printr-un strat de telemetrie edge vă ajută să identificați unde utilizarea tokenilor de gândire depășește parametrii tipici.
Fluxul de lucru pas cu pas pentru integrarea API
Pentru a implementa motorul de raționament în interiorul aplicațiilor dumneavoastră, începeți prin actualizarea pachetelor locale pentru a le alinia la specificațiile Fable 5. Versiunile mai vechi de SDK încă trimit budget_tokens, ceea ce declanșează acum erori de schemă HTTP 400 în timpul serializării API.
Apoi, definiți praguri de latență clare. Pentru fluxuri conversaționale simple sau salutări, setați un nivel de efort scăzut (low) pentru a reduce latența. Rezervați efortul ridicat (high) sau maxim (max) pentru sarcini precum generarea de cod sau matematică.
În plus, stocați-vă acreditările API în siguranță în parametrii mediului serverless folosind instrumente precum Wrangler. Atunci când gestionați evenimentele de ieșire ale stream-ului, scrieți handlere frontend robuste pentru a filtra pachetele thinking_delta. Acest lucru este necesar, cu excepția cazului în care intenționați să afișați direct pașii de raționament ai modelului. În cele din urmă, auditați ratele de succes a cache-ului de prompturi pentru a confirma că stocarea în cache reduce la minimum consumul suplimentar de tokeni. Pentru a învăța despre designul API-urilor pe edge, explorați tutorialul nostru Cloudflare Workers AI
.
Efort scăzut vs. efort ridicat: privire de ansamblu
Alegerea unui nivel de efort este un compromis între latență, cost și calitatea răspunsului. Tabelul de mai jos compară dimensiunile care contează cel mai mult atunci când calibrați o solicitare. Cifrele de latență și debit sunt ilustrative și vor varia în funcție de lungimea promptului, încărcare și regiune, dar relațiile dintre ele rămân constante.
| Dimensiune | Efort scăzut | Efort ridicat |
|---|---|---|
| Timp până la primul token | Sub o secundă (ilustrativ) | Crește pe măsură ce modelul gândește mai mult |
| Cost per solicitare | Mai puțini tokeni de gândire, deci cheltuieli mai mici | Mai mulți tokeni de gândire, facturați la tariful de ieșire |
| Precizie în sarcini dificile | De bază | Considerabil mai mare la matematică, logică multi-pas și cod |
| Predictibilitatea tokenilor | Mai strânsă și mai ușor de prognozat | Variabilă și mai mare la prompturile dificile |
| Sarcini cele mai potrivite | Chat, clasificare, formatare rezultate | Debugging, demonstrații, planificare, generare complexă |
| Configurație | output_config.effort = "low" | output_config.effort = "high" sau "max" |
Punctul esențial este că tokenii de gândire sunt tokeni de ieșire reali. O solicitare cu efort scăzut gândește pe scurt și facturează în principal răspunsul pe care îl scrie; o solicitare cu efort ridicat sau maxim poate genera un volum mare de tokeni de gândire înainte ca primul cuvânt al răspunsului să apară măcar. Gândirea nu este niciodată oprită — alegeți doar cât de mult din ea să cheltuiți.
Când să utilizați fiecare nivel de efort
O abordare practică este de a mapa fiecare tip de sarcină pe un nivel de efort implicit, apoi de a-l suprascrie doar atunci când o solicitare specifică are în mod clar nevoie de mai mult spațiu de calcul. Rezervați efortul ridicat și maxim pentru problemele în care un răspuns greșit este costisitor de detectat ulterior în flux.
| Tipul sarcinii | Efort recomandat |
|---|---|
| Salutări, FAQ și conversații simple | low |
| Clasificare intenție și rutare | low |
| Rezumat documente scurte | low |
| Extracție de date structurate | low sau medium |
| Generare de cod multi-fișier | high |
| Raționament financiar sau matematic | high sau xhigh |
| Debugging cauză rădăcină | xhigh sau max |
Alegeți un nivel de efort scăzut atunci când răspunsul este scurt și în mare parte determinist, când timpul până la primul token definește experiența utilizatorului (chat live, completare automată, asistenți de formulare) sau când rulați o sarcină cu volum mare și marjă mică, unde fiecare token de ieșire suplimentar se multiplică pe milioane de apeluri.
Alegeți un nivel de efort ridicat sau maxim atunci când un singur răspuns greșit generează costuri reale – un script de migrare defect, o ofertă calculată greșit, o cale de cod nesigură – sau când sarcina implică mai mulți pași dependenți pe care modelul trebuie să îi coreleze. Acestea sunt sarcinile unde câteva secunde de latență suplimentară aduc o creștere semnificativă a fiabilității.
Exemplu practic: Compromisuri între latență și costuri
Luați în considerare un asistent de suport care gestionează 50.000 de solicitări pe zi. Presupuneți că fiecare răspuns final are aproximativ 250 de tokeni, că un nivel de efort scăzut (low) adaugă doar câțiva tokeni de gândire și că un nivel de efort ridicat (high) consumă aproximativ 1.500 de tokeni de gândire la o interogare complexă tipică. Fiecare preț de token de mai jos este ilustrativ – tratați-l ca pe un exercițiu de modelare, nu ca pe o ofertă fermă – și presupuneți un tarif de ieșire de 15 $ per milion de tokeni.
Rularea fiecărei solicitări la efort scăzut produce aproximativ 50.000 × 250 = 12,5M tokeni de ieșire pe zi, adică aproximativ 188 $ pe zi la tariful ilustrativ. Rularea fiecărei solicitări la efort ridicat facturează, în schimb, 50.000 × (1.500 + 250) = 87,5M tokeni pe zi, adică aproximativ 1.313 $ pe zi – de șapte ori mai mult, cea mai mare parte fiind cheltuită pe analizarea unor interogări care nu ar fi avut niciodată nevoie de adâncimea suplimentară.
Acum rutați selectiv. Presupunem că un clasificator ieftin, cu efort scăzut, decide că doar 15% din trafic este cu adevărat complex. Trimiterea a 7.500 de solicitări către efort ridicat și 42.500 către efort scăzut oferă 13,1M + 10,6M ≈ 23,7M tokeni pe zi, adică aproximativ 356 $ pe zi – o economie de ~73% față de rularea tuturor la efort ridicat, continuând totodată să aplicați raționamentul profund acolo unde aduce valoare.
Imaginea latenței reflectă acest lucru. La efort scăzut, primul token apare de obicei în mult mai puțin de o secundă. La efort ridicat, modelul generează o schiță de raționament mult mai mare înainte ca răspunsul să înceapă, astfel încât o schiță internă de 1.500 de tokeni la un volum ilustrativ de 60 de tokeni pe secundă întârzie răspunsul vizibil cu aproximativ 25 de secunde. Transmiterea prin streaming a blocurilor thinking_delta într-un panou pliabil „Thinking…” este ceea ce face ca această așteptare să fie tolerabilă pentru utilizatorul final.
Migrarea și costul total de proprietate (TCO)
Dacă treceți de la un model cu resurse de calcul fixe, cea mai mare schimbare este că adâncimea raționamentului este acum un parametru pe care îl setați per solicitare, nu un tarif fix pe care îl plătiți la fiecare apel. Cel mai important element de control pe factura dumneavoastră nu este nivelul de effort al unui singur apel, ci stratul de rutare care decide care solicitări merită într-adevăr un nivel de efort ridicat. Un apel de clasificare ușor, cu efort scăzut – de câteva sute de tokeni – care filtrează apelul costisitor cu efort ridicat se amortizează aproape întotdeauna.
Două obiceiuri mențin predictibilitatea costului total de proprietate. În primul rând, setați cel mai scăzut nivel de efort care rezolvă în mod fiabil fiecare clasă de sarcini, mai degrabă decât un nivel implicit global generos; un nivel de efort max aplicat peste tot este cea mai comună sursă de facturi surpriză. În al doilea rând, stocați în cache prompturile de sistem stabile, astfel încât contextul repetat să nu fie refacturat la fiecare ciclu de raționament. Împreună, rutarea per solicitare și stocarea în cache a prompturilor direcționează cea mai mare parte a cheltuielilor către minoritatea de solicitări care beneficiază cu adevărat de acest lucru.
Concluzii principale
- Fable 5 (
claude-fable-5, context de 1M de tokeni, ieșire maximă de 128K) menține gândirea întotdeauna activă; îi scalați adâncimea în loc să o comutați. - Configurați adâncimea raționamentului cu
output_config: {effort: "low" | "medium" | "high" | "xhigh" | "max"};budget_tokensșithinking.type“enabled”/“disabled” returnează acum HTTP 400. - Transmiteți prin streaming gândirea prin blocuri de conținut
thinking(deltethinking_delta) pentru a afișa pașii modelului utilizatorilor finali, optând explicit printhinking: {type: "adaptive", display: "summarized"}pentru un rezumat lizibil. - Controlați costurile de facturare API alegând cel mai scăzut nivel de efort funcțional și stocând în cache prompturile utilizate frecvent.
- Implementați middleware-ul API pe rețele edge serverless pentru a reduce latența de tranzit.
Întrebări frecvente (FAQ)
Ce este raționamentul Claude Fable 5?
Raționamentul Claude Fable 5 este o capacitate întotdeauna activă prin care modelul generează tokeni de gândire interni pentru a rezolva probleme logice complexe înainte de a afișa răspunsul final. În loc să încerce să ghicească imediat următorul cuvânt, rețeaua simulează un proces de gândire pas cu pas pentru a rezolva erorile de arhitectură, matematice și de codare, iar dumneavoastră scalați cât de profund gândește prin setarea effort.
Cum configurez efortul de raționament în API?
Configurați adâncimea raționamentului prin transmiterea output_config: { effort: "low" | "medium" | "high" | "xhigh" | "max" } în interiorul payload-ului cererii API. Un nivel de efort mai scăzut gândește pe scurt și răspunde mai rapid pentru mai puțini tokeni, în timp ce un nivel mai ridicat raționează mai profund. Vechiul parametru budget_tokens a fost eliminat și returnează acum o eroare HTTP 400 pe Fable 5.
Sunt tokenii de raționament facturați diferit? Nu, tokenii de raționament sunt facturați la tariful standard pentru tokenii de ieșire ai modelului. Deoarece acești tokeni reprezintă putere de calcul generată la ieșire, ei se adaugă direct la facturarea API, făcând ca stocarea în cache a prompturilor și un nivel de efort rezonabil să fie esențiale pentru a controla cheltuielile software.
Cum fac ca Fable 5 să răspundă mai rapid?
Nu puteți dezactiva raționamentul — gândirea este întotdeauna activă pentru Fable 5, iar transmiterea thinking: {type: "disabled"} returnează o eroare HTTP 400. Pentru a reduce latența, coborâți nivelul de efort cu output_config: { effort: "low" }, ceea ce scurtează faza de gândire și minimizează timpul până la primul token pentru sarcinile conversaționale de bază.
Cum procesez tokenii de raționament dintr-un flux SSE în timp real?
În timpul streamingului SSE serverless, gândirea sosește sub formă de blocuri de conținut thinking prin evenimente content_block_delta al căror delta.type este thinking_delta; citiți textul din delta.thinking, separat de ieșirea standard text_delta. Optați explicit prin thinking: {type: "adaptive", display: "summarized"} pentru a primi un rezumat lizibil, apoi randați sau eliminați acei tokeni în funcție de preferințele UI de frontend.
Comentarii