---
title: "ezo labs research"
updated: "2026-11-12"
type: CollectionPage
---

# ezo labs research

topics: [inference](https://ezolabs.net/research/topic/inference.md) (2), [environments](https://ezolabs.net/research/topic/environments.md) (3), [evals](https://ezolabs.net/research/topic/evals.md) (1). feed: [atom](https://ezolabs.net/research/atom.xml).

## [lopdf 0.42.0 still overflows its stack on a chain of /Length references](https://ezolabs.net/research/lopdf-length-chain-stack-overflow.md)

EZO-R-2026-26 // environments // 2026-11-12

RUSTSEC-2026-0187 calls 0.42.0 patched after adding a nesting-depth limit. The limit covers arrays and dictionaries; a stream whose /Length is another stream recurses without it and still aborts.

html at [/research/lopdf-length-chain-stack-overflow](https://ezolabs.net/research/lopdf-length-chain-stack-overflow).

## [How a Chinese-language red-team swarm farms free LLM tokens](https://ezolabs.net/research/2026-11-red-team-token-farming.md)

EZO-R-2026-10 // inference // 2026-11-07

**Free quota is the target** A red-team swarm written in Chinese hunts open model relay panels for keys, default admin passwords and free sign-up quota. Then it tests each key and keeps the ones that work.

html at [/research/2026-11-red-team-token-farming](https://ezolabs.net/research/2026-11-red-team-token-farming).

## [DeepSeek-V4.1-Flash breaks 1,000 tokens per second for one user: how we roughly doubled decode in five days](https://ezolabs.net/research/megakernel-b300.md)

EZO-R-2026-07 // inference // 2026-10-31

**Fast for one user.** The fastest one-user bench request hit 1,064 tokens a second, above 1,000. Just over half of one quiet node's live replies beat 1,024. The bench averages 870, about double our first boot.

html at [/research/megakernel-b300](https://ezolabs.net/research/megakernel-b300).

## [How many subagents is too many? We gave ours 12 slots; the median used 1.3.](https://ezolabs.net/research/agent-fleet-occupancy.md)

EZO-R-2026-03 // environments // 2026-10-30

**Slots waited on work.** Allowed 12 workers at once, the typical build kept about 1.3 busy (1.31 over 47 builds). In the six biggest, new work came 8 to 12 times too slowly to fill them.

html at [/research/agent-fleet-occupancy](https://ezolabs.net/research/agent-fleet-occupancy).

## [Let your lead agent only plan: fewer turns, same score](https://ezolabs.net/research/planner-only-swarms.md)

EZO-R-2026-02 // environments // 2026-10-30

**Fewer turns, same score.** In three paired runs of one task, a lead agent that only plans took 9 turns instead of 17 and compacted 4 times, not 5. All 168 tests passed. Total tokens did not fall.

html at [/research/planner-only-swarms](https://ezolabs.net/research/planner-only-swarms).

## [Your agent mostly sees one line of each skill. Write that line well.](https://ezolabs.net/research/skill-descriptions.md)

EZO-R-2026-05 // evals // 2026-10-30

**Mostly the description.** For diagrams and math, most answers came without the model opening the skill. Graphs and molecules usually came after it read the full page, which our rewrite also changed.

html at [/research/skill-descriptions](https://ezolabs.net/research/skill-descriptions).
