En forespørsel ble avsluttet etter 301,086 sekunder med 44 002 byte bufret innhold, men uten en normal fullføringshendelse. Forslaget er å sende trygt, delvis innhold med et tydelig avbruddsvarsel og en standard avslutning – uten private protokollutvidelser eller klientendringer.
Publisert avBilder generert med GPT Image 2
Research answer
![[GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you operate via client side tool execution on the](https://d15bya8fi85z1v.cloudfront.net/chat/VUpdr6CgAFbX1k6I54vQv7bcGJg1/thumbnails/359EA9DF5CFA8902798E/144C236394A9D956C222-medium-640.webp)
Create a landscape editorial hero image for this Studio Global article: [GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you operate via client side tool execution on the. Article summary: <tool call {"name":"write to file","arguments":{"path":" bmad output/analysis/draft long research 300s salvage.md","content":" 长研究约300秒异常断流:零客户端修改的流内兜底方案\n\n首期改为使用标准 OpenAI 流式响应结构交付可安全保留的部分正文、网关中断提示和长度终态;废除原草案的客户端能力协商、自定. Topic tags: general web, openai, code, python, api. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with
En KI-strøm kan levere mye tekst og likevel ende som en feil hvis forbindelsen stopper før tjenesten sender en normal avslutning. Et arkitekturforslag datert 11. oktober 2026 vil håndtere slike tilfeller annerledes for enkelte forskningsforespørsler: Bevare det som trygt kan leveres, fortelle brukeren at svaret er ufullstendig og avslutte strømmen på en måte som kan være lettere for klienten å håndtere.
Forslaget er fortsatt et utkast. Det innebærer ikke at løsningen er bygget, testet eller tatt i bruk.
Loggen for én konkret forespørsel viser at lesingen stoppet etter 301,086 sekunder. Gatewayen hadde lest 96 925 byte og bufret 44 002 byte, men observerte ingen normal fullføringshendelse. Den siste teksten kom omtrent 144 millisekunder før strømmen tok slutt.
Det var satt en lokal total tidsfrist på 1 800 sekunder. Den tilgjengelige loggen støtter derfor ikke at en lokal grense på 300 sekunder avsluttet forespørselen. Den viser at innhold kom inn før strømmen sluttet, men ikke hvem eller hva som avsluttet forbindelsen.
Brukeren rapporterte at klienten Roo Code automatisk prøvde på nytt, og at fire eller fem røde feilmeldinger kunne hope seg opp etter gjentatte avbrudd. Det er en rapport fra brukeren, ikke en uavhengig bekreftet sporingskjede for hvert klientforsøk. Tilsvarende er påstanden om at Cloudflare eller en lastbalanserer med en grense på 300 sekunder står bak, foreløpig en hypotese – ikke noe loggene alene fastslår.
En strømmetjeneste sender normalt tekst i små deler og avslutter med et signal om at svaret er ferdig. Hvis lesingen stanser uten dette signalet, klassifiserer gatewayen strømmen som uventet avsluttet.
I den vanlige strømmebanen rapporteres feilen. I en verktøybevisst bane bufres teksten fram til verktøybruk kan vurderes; hvis strømmen stanser før denne vurderingen, blir den bufrede teksten ikke nødvendigvis levert. Når HTTP-svarhodene allerede er sendt, kan feilen komme som en SSE-dataramme – et element i strømmen – og ikke som en ny HTTP-feilstatus. Det er ikke nødvendigvis en navngitt «error»-hendelse.
Ifølge den beskrevne feltrapporten tolker Roo Code dette som en leverandørfeil og starter et nytt HTTP-forsøk. Det er viktig å skille mellom slike nye klientforespørsler og gatewayens eget sende- eller verktøybudsjett: De er ikke det samme. Forslaget retter seg mot hvordan en kvalifisert, delvis respons leveres; det beviser ikke at klienten aldri vil prøve igjen.
For kvalifiserte strømmede forespørsler i forskningsoppsettet foreslås det å sende den trygge teksten som allerede er mottatt, et kort varsel fra gatewayen og deretter en standard avslutning med finish_reason: "length" og data: [DONE].
Her ligger en viktig presisering: I OpenAIs dokumentasjon betyr length at den angitte grensen for genererte token er nådd. Det er ikke den generelle standardbetydningen for en vilkårlig EOF eller et nettverksbrudd. 14
2 Forslaget bruker altså et kjent felt på en måte som kan være mer kompatibel med klienter, men som ikke beskriver den egentlige årsaken presist.
Derfor skal brukeren få vite at svaret ble avbrutt. Gatewayen skal også beholde den opprinnelige avbruddsårsaken internt og ikke registrere den som en normal fullføring. Verken HTTP 200 eller en vellykket avslutningsramme beviser at klienten faktisk har lagret teksten, eller at forskningsoppgaven ble fullført.
Forslaget vil ikke kreve nye klientoverskrifter, private hendelser eller endringer i Roo Code. Det er et bevisst valg: Den opprinnelige planen om klientforhandling og et eget format for delvise resultater forkastes.
44 002 byte forteller hvor mye som var bufret, ikke hvor mye som var ferdig, lesbar rapporttekst. Bufferen kan også inneholde verktøyprotokoll eller ufullstendige argumenter.
Forslaget setter derfor sikkerhet foran ønsket om å hente ut mest mulig:
Det betyr at løsningen ikke kan love å bevare alt innhold. Dersom en stor del av den bufrede teksten ligger inne i en ufullstendig verktøystruktur, skal sikkerhetsregelen veie tyngre enn full gjenoppretting.
Utkastet begrenser første versjon til strømmede forespørsler i forskningsoppsett. Den skal bare brukes ved uventet EOF, når klienten fortsatt er tilkoblet, det finnes ikke-blank og sikker tekst, og forespørselen ikke er avbrutt, utløpt eller avvist på grunn av ressursgrenser.
Tellerverdier eller tegn på aktivitet alene er ikke nok. Hjerterytmesignaler, statusmeldinger, blanktekst og tekst som ble avvist av en buffergrense, skal ikke regnes som et gyldig delvis svar. Det skal heller ikke være noen ny automatisk generering eller gjenutsending av forespørselen.
Et mulig varsel for eksempelet i loggen er: «Oppstrømsstrømmen tok uventet slutt etter omtrent 301 sekunder. Svaret er ikke fullført. Trygg delvis tekst er bevart. Du kan be om fortsettelse, men det starter en ny forespørsel og garanterer ikke at samme oppgave gjenopptas. Det kan også gi gjentatt innhold eller ekstra kostnader.»
Varslet bør bruke den faktiske observerte tiden, ikke fastslå at en bestemt leverandør har en hard grense på 300 sekunder uten dokumentasjon. Hvis verktøytekst er utelatt av sikkerhetshensyn, bør det også sies tydelig.
En forespørsel med delvis tekst og uventet avbrudd skal fortsatt klassifiseres som uventet EOF, ikke som normal fullføring. Ifølge utkastet skal den eksisterende kontoleien behandles som en ekskludert strøm: Hendelsen skal verken øke eller nullstille teller for tomme svar, og den skal ikke i seg selv føre til at kontoen pensjoneres.
Gatewayen skal heller ikke framstille sin egen varseltekst som modellbruk eller som leverandørens endelige faktura. At gatewayen lukker et HTTP-svar eller får svar fra et kanselleringskall, beviser heller ikke at eventuell generering på leverandørsiden har stanset.
Utkastet beskriver tester som ennå ikke er kjørt. De skal blant annet kontrollere at standardrammene kommer i riktig rekkefølge, at teksten ikke dupliseres, og at avslutningsrammen bare sendes én gang. Det skal også prøves med ufullstendige verktøykall, delvise SSE-hendelser, kansellering, treg klient, samtidige skriveforsøk og feil under utsending.
En egen godkjenning må bruke den faktiske, umodifiserte klientversjonen. Den må vise at Roo Code tar vare på delteksten og ikke starter den samme feilbaserte retry-banen etter length og [DONE]. Det må også kontrolleres om klienten har andre mekanismer som automatisk fortsetter, for eksempel når den forventer et verktøykall.
Hvis klienten fortsatt viser feil eller sender nye forsøk, er målet om færre feilmeldinger ikke oppnådd – selv om gatewayen sendte HTTP 200. Utkastet sier uttrykkelig at det ikke finnes belegg for å love null feilmeldinger eller full gjenoppretting.
finish_reason.length som at grensen for genererte token er nådd.Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
En forespørsel ble avsluttet etter 301,086 sekunder med 44 002 byte bufret innhold, men uten en normal fullføringshendelse.
En forespørsel ble avsluttet etter 301,086 sekunder med 44 002 byte bufret innhold, men uten en normal fullføringshendelse. Forslaget er å sende trygt, delvis innhold med et tydelig avbruddsvarsel og en standard avslutning – uten private protokollutvidelser eller klientendringer.
OpenAI feltet «length» betyr vanligvis at modellens angitte token grense er nådd.
En forespørsel ble avsluttet etter 301,086 sekunder med 44 002 byte bufret innhold, men uten en normal fullføringshendelse. Forslaget er å sende trygt, delvis innhold med et tydelig avbruddsvarsel og en standard avslutning – uten private protokollutvidelser eller klientendringer.
Publisert avBilder generert med GPT Image 2
Research answer
![[GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you operate via client side tool execution on the](https://d15bya8fi85z1v.cloudfront.net/chat/VUpdr6CgAFbX1k6I54vQv7bcGJg1/thumbnails/359EA9DF5CFA8902798E/144C236394A9D956C222-medium-640.webp)
Create a landscape editorial hero image for this Studio Global article: [GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you operate via client side tool execution on the. Article summary: <tool call {"name":"write to file","arguments":{"path":" bmad output/analysis/draft long research 300s salvage.md","content":" 长研究约300秒异常断流:零客户端修改的流内兜底方案\n\n首期改为使用标准 OpenAI 流式响应结构交付可安全保留的部分正文、网关中断提示和长度终态;废除原草案的客户端能力协商、自定. Topic tags: general web, openai, code, python, api. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with
En KI-strøm kan levere mye tekst og likevel ende som en feil hvis forbindelsen stopper før tjenesten sender en normal avslutning. Et arkitekturforslag datert 11. oktober 2026 vil håndtere slike tilfeller annerledes for enkelte forskningsforespørsler: Bevare det som trygt kan leveres, fortelle brukeren at svaret er ufullstendig og avslutte strømmen på en måte som kan være lettere for klienten å håndtere.
Forslaget er fortsatt et utkast. Det innebærer ikke at løsningen er bygget, testet eller tatt i bruk.
Loggen for én konkret forespørsel viser at lesingen stoppet etter 301,086 sekunder. Gatewayen hadde lest 96 925 byte og bufret 44 002 byte, men observerte ingen normal fullføringshendelse. Den siste teksten kom omtrent 144 millisekunder før strømmen tok slutt.
Det var satt en lokal total tidsfrist på 1 800 sekunder. Den tilgjengelige loggen støtter derfor ikke at en lokal grense på 300 sekunder avsluttet forespørselen. Den viser at innhold kom inn før strømmen sluttet, men ikke hvem eller hva som avsluttet forbindelsen.
Brukeren rapporterte at klienten Roo Code automatisk prøvde på nytt, og at fire eller fem røde feilmeldinger kunne hope seg opp etter gjentatte avbrudd. Det er en rapport fra brukeren, ikke en uavhengig bekreftet sporingskjede for hvert klientforsøk. Tilsvarende er påstanden om at Cloudflare eller en lastbalanserer med en grense på 300 sekunder står bak, foreløpig en hypotese – ikke noe loggene alene fastslår.
En strømmetjeneste sender normalt tekst i små deler og avslutter med et signal om at svaret er ferdig. Hvis lesingen stanser uten dette signalet, klassifiserer gatewayen strømmen som uventet avsluttet.
I den vanlige strømmebanen rapporteres feilen. I en verktøybevisst bane bufres teksten fram til verktøybruk kan vurderes; hvis strømmen stanser før denne vurderingen, blir den bufrede teksten ikke nødvendigvis levert. Når HTTP-svarhodene allerede er sendt, kan feilen komme som en SSE-dataramme – et element i strømmen – og ikke som en ny HTTP-feilstatus. Det er ikke nødvendigvis en navngitt «error»-hendelse.
Ifølge den beskrevne feltrapporten tolker Roo Code dette som en leverandørfeil og starter et nytt HTTP-forsøk. Det er viktig å skille mellom slike nye klientforespørsler og gatewayens eget sende- eller verktøybudsjett: De er ikke det samme. Forslaget retter seg mot hvordan en kvalifisert, delvis respons leveres; det beviser ikke at klienten aldri vil prøve igjen.
For kvalifiserte strømmede forespørsler i forskningsoppsettet foreslås det å sende den trygge teksten som allerede er mottatt, et kort varsel fra gatewayen og deretter en standard avslutning med finish_reason: "length" og data: [DONE].
Her ligger en viktig presisering: I OpenAIs dokumentasjon betyr length at den angitte grensen for genererte token er nådd. Det er ikke den generelle standardbetydningen for en vilkårlig EOF eller et nettverksbrudd. 14
2 Forslaget bruker altså et kjent felt på en måte som kan være mer kompatibel med klienter, men som ikke beskriver den egentlige årsaken presist.
Derfor skal brukeren få vite at svaret ble avbrutt. Gatewayen skal også beholde den opprinnelige avbruddsårsaken internt og ikke registrere den som en normal fullføring. Verken HTTP 200 eller en vellykket avslutningsramme beviser at klienten faktisk har lagret teksten, eller at forskningsoppgaven ble fullført.
Forslaget vil ikke kreve nye klientoverskrifter, private hendelser eller endringer i Roo Code. Det er et bevisst valg: Den opprinnelige planen om klientforhandling og et eget format for delvise resultater forkastes.
44 002 byte forteller hvor mye som var bufret, ikke hvor mye som var ferdig, lesbar rapporttekst. Bufferen kan også inneholde verktøyprotokoll eller ufullstendige argumenter.
Forslaget setter derfor sikkerhet foran ønsket om å hente ut mest mulig:
Det betyr at løsningen ikke kan love å bevare alt innhold. Dersom en stor del av den bufrede teksten ligger inne i en ufullstendig verktøystruktur, skal sikkerhetsregelen veie tyngre enn full gjenoppretting.
Utkastet begrenser første versjon til strømmede forespørsler i forskningsoppsett. Den skal bare brukes ved uventet EOF, når klienten fortsatt er tilkoblet, det finnes ikke-blank og sikker tekst, og forespørselen ikke er avbrutt, utløpt eller avvist på grunn av ressursgrenser.
Tellerverdier eller tegn på aktivitet alene er ikke nok. Hjerterytmesignaler, statusmeldinger, blanktekst og tekst som ble avvist av en buffergrense, skal ikke regnes som et gyldig delvis svar. Det skal heller ikke være noen ny automatisk generering eller gjenutsending av forespørselen.
Et mulig varsel for eksempelet i loggen er: «Oppstrømsstrømmen tok uventet slutt etter omtrent 301 sekunder. Svaret er ikke fullført. Trygg delvis tekst er bevart. Du kan be om fortsettelse, men det starter en ny forespørsel og garanterer ikke at samme oppgave gjenopptas. Det kan også gi gjentatt innhold eller ekstra kostnader.»
Varslet bør bruke den faktiske observerte tiden, ikke fastslå at en bestemt leverandør har en hard grense på 300 sekunder uten dokumentasjon. Hvis verktøytekst er utelatt av sikkerhetshensyn, bør det også sies tydelig.
En forespørsel med delvis tekst og uventet avbrudd skal fortsatt klassifiseres som uventet EOF, ikke som normal fullføring. Ifølge utkastet skal den eksisterende kontoleien behandles som en ekskludert strøm: Hendelsen skal verken øke eller nullstille teller for tomme svar, og den skal ikke i seg selv føre til at kontoen pensjoneres.
Gatewayen skal heller ikke framstille sin egen varseltekst som modellbruk eller som leverandørens endelige faktura. At gatewayen lukker et HTTP-svar eller får svar fra et kanselleringskall, beviser heller ikke at eventuell generering på leverandørsiden har stanset.
Utkastet beskriver tester som ennå ikke er kjørt. De skal blant annet kontrollere at standardrammene kommer i riktig rekkefølge, at teksten ikke dupliseres, og at avslutningsrammen bare sendes én gang. Det skal også prøves med ufullstendige verktøykall, delvise SSE-hendelser, kansellering, treg klient, samtidige skriveforsøk og feil under utsending.
En egen godkjenning må bruke den faktiske, umodifiserte klientversjonen. Den må vise at Roo Code tar vare på delteksten og ikke starter den samme feilbaserte retry-banen etter length og [DONE]. Det må også kontrolleres om klienten har andre mekanismer som automatisk fortsetter, for eksempel når den forventer et verktøykall.
Hvis klienten fortsatt viser feil eller sender nye forsøk, er målet om færre feilmeldinger ikke oppnådd – selv om gatewayen sendte HTTP 200. Utkastet sier uttrykkelig at det ikke finnes belegg for å love null feilmeldinger eller full gjenoppretting.
finish_reason.length som at grensen for genererte token er nådd.Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
En forespørsel ble avsluttet etter 301,086 sekunder med 44 002 byte bufret innhold, men uten en normal fullføringshendelse.
En forespørsel ble avsluttet etter 301,086 sekunder med 44 002 byte bufret innhold, men uten en normal fullføringshendelse. Forslaget er å sende trygt, delvis innhold med et tydelig avbruddsvarsel og en standard avslutning – uten private protokollutvidelser eller klientendringer.
OpenAI feltet «length» betyr vanligvis at modellens angitte token grense er nådd.