TAI BUI
Back to curriculum
BuildPython

Async and Hogwild! Inference

Speculative decoding (Phase 10 · 15) parallelizes tokens within one sequence. Multi-agent frameworks parallelize across sequences but need explicit coordination, like voting or sub-task splitting. Hogwild! Inference (Rodionov et al., arXiv:2504.06261) runs N instances of the same LLM in parallel against a shared key-value cache, so each worker sees the others' tokens as soon as they are written. Reasoning models like QwQ and DeepSeek-R1 can coordinate through that cache with no fine-tuning. The method is experimental, but it adds an axis of inference parallelism that sits orthogonal to spec decode. You build a two-worker simulator in stdlib Python and see why the collaboration can emerge from reasoning the model already has.

TIME: ~60 minutesPREREQUISITES: Phase 10 · 12 (inference optimization), Phase 10 · 15 (speculative decoding)

Learning Objectives

  • Describe the three common parallel-LLM topologies (voting, sub-task, Hogwild!) and name which problems each one targets.
  • State the core Hogwild! setup: multiple workers, one shared KV cache, emergent coordination via self-prompting.
  • Compute the wall-time speedup of Hogwild! as a function of worker count `N`, task-level parallelism `p`, and coordination overhead `c`.
  • Implement a two-worker Hogwild! simulator on a toy problem and observe the emergent task division.

The Problem

Modern LLMs solve hard problems with long chains of reasoning. 5000 tokens of step-by-step logic is common, and deep math problems can run to tens of thousands. At 35 tokens/sec decode on a 70B model, 50k tokens takes 24 minutes. That is not interactive.

Speculative decoding (Phase 10 · 15) gets you a 3-5x speedup by parallelizing within one sequence. Past that, the sequential dependency of autoregressive decoding is the ceiling, because each new token depends on every prior token.

So the next question is whether you can parallelize across sequences. Run several copies of the same model on the same problem, let them cooperate, and have them split the work.

Prior work does this in a few ways: voting ensembles (run N models, pick the majority answer), tree-of-thought (branch reasoning paths and recombine), and multi-agent frameworks (give each agent a sub-task and use a coordinator). Each helps in specific domains, and each brings its own coordination machinery: voting rules, branch-and-prune logic, agent-to-agent messaging protocols.

Hogwild! Inference drops that machinery. N workers share a single KV cache, and each one reads the others' generated tokens as if they were its own context. With no training or fine-tuning, the workers work out how to divide the task. Reasoning models (QwQ, DeepSeek-R1, Claude-family reasoning mode) can read the shared cache and write things like "worker 2 already handled the base case, so I'll work on the inductive step."

The speedup depends on the workload, and as of April 2026 the method is experimental. It is still worth knowing, because it is a different way to spend parallel hardware on one problem.

Warm-up0/3
1. When a large model decodes one sequence at a time, what usually limits tokens per second?Warm-up
Two boxes: weight matrices, described as billions of numbers in memory, and the arithmetic for one token, a comparatively small amount of math, with an arrow between them. A question asks which side usually sets tokens per second, given that decoding one sequence repeats this for every token.
Setup only, from the stem; which resource is the bottleneck is the question.
2. What does speculative decoding do?Warm-up
Two boxes: a small model that proposes several tokens at once, and a large model whose action on them is left open, connected by an arrow. A question asks what the large model does with the small model's proposals, naming this setup speculative decoding.
Setup only, from Phase 10 - 15's own description; what the large model does with the proposals is the question.
3. Several threads append to the same list with no locking. What can go wrong?Warm-up
Two boxes, thread A appending x and thread B appending y, both with arrows into one shared list box, labelled no lock held by either thread. A question asks what can go wrong with the final order of the list's contents.
Setup only, from the stem; what goes wrong with the order is the question.
Check: The Problem0/5
1. What is Hogwild! Inference?Define
A term card reading Hogwild! Inference, from The Problem section. Context: a hard problem needs more decode throughput than one sequence can give, and a team is deciding how to spend several copies of the same model on it. A question asks: What is Hogwild! Inference?
The term as the lesson names it; its mechanism is the question.
2. What is a voting ensemble as a parallel-inference topology?Define
A term card reading Voting ensemble, from The Problem section (the three prior approaches). Context: one of three ways the lesson lists for spending several model copies on one question, before introducing Hogwild!. A question asks: What is a voting ensemble as a parallel-inference topology?
The term as the lesson names it; its mechanism is the question.
3. What is tree of thought?Define
A term card reading Tree of thought, from The Problem section (the three prior approaches). Context: another of the three prior approaches, each of which the lesson says brings its own coordination machinery. A question asks: What is tree of thought?
The term as the lesson names it; its mechanism is the question.
4. What is a multi-agent framework in this lesson's comparison?Define
A term card reading Multi-agent framework, from The Problem section (the three prior approaches). Context: the third of the three prior approaches, contrasted with Hogwild! later in the same section. A question asks: What is a multi-agent framework in this lesson's comparison?
The term as the lesson names it; its mechanism is the question.
5. How do voting, sub-task agents and Hogwild! differ in the coordination machinery they need?Explain
Three boxes side by side, Voting, Sub-task agents, and Hogwild!, each with its own coordination machinery left as a question mark. A question asks how the three differ on what coordination machinery each one needs.
The three names are the lesson's own topology list; what machinery each one needs is the question.

The Concept

The setup

Start N worker processes, all running the same LLM. Instead of per-worker KV caches, keep one shared cache. When worker i generates token t_j, the token is written into the shared cache at the next position. When worker k takes its next step, it reads the current state of the cache (which holds everything the N workers have generated so far).

At step time, workers race to write tokens. There is no per-worker position index, so the cache is a single growing sequence and order is set by write arrival time.

Why coordination emerges

The workers share a prompt, typically something like "You are one of N instances working together on this problem. Each instance reads the shared memory and can see what other instances have written. Avoid redundant work." That prompt plus the shared cache is enough. Reasoning models read the cache, notice which parts of the problem have been attempted, and often pivot to parts nobody has touched.

The Hogwild! paper (Rodionov et al., 2025) reports observations like:

  • Workers formulate plans and communicate them to other workers via the cache.
  • Workers notice errors in other workers' reasoning and call them out.
  • Workers adapt when a plan fails and propose alternatives.
  • When prompted to check for redundancy, workers detect it and pivot.

None of this needs fine-tuning. The behavior comes from reasoning the model already has.

The naming

The paper's name riffs on Hogwild! SGD (Recht et al., 2011), an asynchronous-update optimizer. The analogy is direct. SGD's asynchronous workers all write to a shared parameter vector; Hogwild! Inference's workers all write to a shared KV cache. Both rely on empirical convergence rather than synchronization guarantees.

RoPE makes this tractable

Rotary Position Embeddings (RoPE, Su et al. 2021) encode position information via rotation in the Q and K vectors. Because positions are rotations and not baked-in offsets, a token's position can shift without recomputing the KV cache entry. When worker i writes into the shared cache at position p, other workers reading that position can use the cached entry directly, with no re-rotation.

With learned or absolute positions, Hogwild! would need cache invalidation on each concurrent write. RoPE keeps the cache stable.

Wall-time math

Let T_serial be the time for one worker to solve the problem alone. Let p be the task-level parallelizable fraction. Let c be the per-step coordination overhead (reading the extended cache, deciding what to write).

Single-worker time: T_serial. N-worker Hogwild! time, if coordination is free: T_serial * ((1 - p) + p / N). Classic Amdahl. With coordination overhead: T_serial * ((1 - p) + p / N) + c * steps_per_worker.

For a worker to be productive, c must be small relative to the per-step decode time. On reasoning models producing 5k+ tokens, workers can afford hundreds of tokens of coordination overhead and still come out ahead. On short chat tasks, coordination dominates and Hogwild! is worse than serial.

Concrete example

Reasoning problem: 10k tokens of chain-of-thought. Suppose the problem has p = 0.7 parallelizable content (different proof strategies, different case analyses) and c = 200 tokens of coordination overhead per worker. With N = 4 workers:

  • Serial time: 10000 decode steps.
  • Hogwild! time: 10000 * (0.3 + 0.7 / 4) + 200 * 4 = 10000 * 0.475 + 800 = 5550 decode steps.
  • Speedup: 10000 / 5550 = 1.8x.

That is modest. On longer reasoning problems (50k tokens), the coordination overhead amortizes and the speedup pushes 2.5-3x. Think of it as thread-level parallelism for inference.

When to reach for Hogwild!

  • Long reasoning problems (thousands of tokens) where the task can be parallelized across independent sub-goals.
  • Reasoning models trained to think step by step. Non-reasoning models do not self-coordinate well.
  • Single-node deployments with enough VRAM to hold the shared cache plus N worker processes. The cache is shared, but each worker has its own activation memory.

When not to

  • Short interactive chat. Coordination overhead dominates.
  • Tasks that don't parallelize, like a single linear proof or a single compilation. N=1 is the best you can do.
  • Non-reasoning models, where little coordination emerges.
  • Multi-node deployments. The shared cache needs fast cross-worker synchronization. Intra-node is fine, but cross-node latency hurts badly.

The experimental status

As of April 2026, Hogwild! is a research method with an open-source PyTorch implementation. Production adoption has not happened. Three blockers:

  1. Shared KV cache management across concurrent processes is non-trivial engineering.
  2. Emergent coordination is task-dependent; benchmarks are still being built.
  3. The speedups are modest compared to what speculative decoding already delivers, and the two can be combined but the combined engineering is another layer.

Worth knowing and worth experimenting with, but I would not bet a product on it yet.

Check: The Concept0/20
1. What is the shared KV cache in Hogwild!?Define
A term card reading Shared KV cache, from The Concept section (the setup). Context: N worker processes are all running the same LLM, instead of each keeping its own separate key-value cache. A question asks: What is the shared KV cache in Hogwild!?
The term as the lesson names it; its mechanism is the question.
2. What does emergent coordination mean in Hogwild!?Define
A term card reading Emergent coordination, from The Concept section (why coordination emerges). Context: the workers divide up a problem with no coordinator process and no agent-to-agent messages passed between them. A question asks: What does emergent coordination mean in Hogwild!?
The term as the lesson names it; its mechanism is the question.
3. What is the coordination overhead c in the Hogwild! wall-time formula?Define
A term card reading Coordination overhead (c), from The Concept section (the wall-time math). Context: one term in the lesson's wall-time formula, separate from the task's sequential fraction. A question asks: What is the coordination overhead c in the Hogwild! wall-time formula?
The term as the lesson names it; its mechanism is the question.
4. What does the parallelizable fraction p measure?Define
A term card reading Parallelizable fraction (p), from The Concept section (the wall-time math). Context: a second term in the same wall-time formula, separate from the per-step coordination cost. A question asks: What does the parallelizable fraction p measure?
The term as the lesson names it; its mechanism is the question.
5. In Hogwild! Inference, how is token order determined in the shared cache?Explain
A shared cache box described as a single growing sequence of tokens, with a note that N workers write into it with no per-worker position index. A question asks what determines the order the tokens end up in.
The no-position-index detail is the Concept section's own description; what sets the order is the question.
6. Why does RoPE make Hogwild!'s shared-cache approach tractable?Explain
Two boxes: learned or absolute position, a fixed offset baked into each cache entry, and RoPE position, a rotation applied to Q and K. A question asks why RoPE makes the shared-cache approach tractable, given that only one of the two stays usable under concurrent writes.
Both position schemes are the Concept section's own description; why RoPE is the one that works is the question.
7. What does the Hogwild! name refer to?Explain
A single box reading the name Hogwild!, borrowed from an earlier method, left unnamed. A question asks what the Hogwild! name refers to, given that the Concept section says the paper's name riffs on an existing name.
That the name is borrowed is stated directly in the Concept section; what it is borrowed from is the question.
8. Which emergent behavior do workers exhibit through the shared cache, according to the Concept section's summary of the paper?Explain
A panel reading worker behaviors observed through the shared cache, several items, one of them below, with no items listed. A question asks which behavior the Concept section's summary of the paper listed.
That the paper reports several observed behaviors is stated directly in the Concept section; which one matches is the question.
9. Your team wants to run Hogwild! across two nodes to get more workers. Why does the lesson say this struggles?Explain
Two boxes, Node A holding some of the N workers and Node B holding the rest, joined by a dashed line marked with a question mark. A note says both nodes need to read and write one shared KV cache spanning them. A question asks why the lesson says running Hogwild! across two nodes struggles.
That the cache must span both nodes is the setup the stem gives; why that struggles is the question.
10. Why are a shared prompt saying 'avoid redundant work' and the shared cache enough for workers to split a problem?Explain
Two boxes: a shared prompt reading avoid redundant work, and a shared cache holding everyone's tokens so far. A question asks why workers can divide a problem with only these two things and nothing else.
The shared prompt's wording and the shared cache are the Concept section's own setup; why that suffices is the question.
11. Why can Hogwild! be slower than one worker on a short interactive chat?Explain
Two boxes: the task, a short interactive chat reply, and the setup, N workers sharing a cache with a coordination overhead c paid every step. A question asks why running Hogwild! on this short task can come out slower than one worker.
The short task and the per-step overhead c are both given directly in the stem; why the combination is slower is the question.
12. Why does the lesson hesitate to recommend Hogwild! for a product today?Explain
A status panel reading experimental, noting an open-source reference implementation exists but production adoption has not happened. A question asks why the lesson hesitates to recommend Hogwild! for a product today.
The experimental status is given directly in the stem; the specific reasons are the question.
13. In the Concept section's worked example (10k-token CoT, p=0.7, c=200, N=4), what speedup does Hogwild! achieve?Apply
A formula panel giving T_serial = 10000, p = 0.7, c = 200, N = 4, with the speedup left as a question mark.
T_serial, p, c and N are the Concept section's own worked-example figures.
14. A 50k-token reasoning task has p=0.8, c=500 and N=4. Using T_serial * ((1 - p) + p / N) + c * N, what is the speedup?Apply
A formula panel giving T_serial = 50000, p = 0.8, c = 500, N = 4, with the speedup left as a question mark.
All four figures are the stem's own numbers.
15. A 1k-token chat task has p=0.3, c=200 and N=4. Using T_serial * ((1 - p) + p / N) + c * N, how does Hogwild! compare with one worker?Apply
A formula panel giving T_serial = 1000, p = 0.3, c = 200, N = 4, with the speedup versus one worker left as a question mark.
All four figures are the stem's own numbers.
16. A task has p=0.5 and coordination is free (c=0). What speedup does the formula give for N=2?Apply
A formula panel giving p = 0.5, c = 0, N = 2, with the speedup left as a question mark.
p, c and N are the stem's own numbers.
17. A task is entirely sequential (p=0) and coordination is free. What speedup does the formula give for N=4?Apply
A formula panel giving p = 0, c = 0, N = 4, with the speedup left as a question mark.
p, c and N are the stem's own numbers.
18. A team runs Hogwild! with a small non-reasoning model, and the cache fills with near-identical attempts at the same sub-goal. What is missing?Analyze
Two boxes: the model, small and not trained for reasoning, and the shared cache after many steps, filled by several workers attempting the same sub-goal with little variation. A question asks what is missing, given that workers keep attempting the same sub-goal instead of dividing the problem.
The small non-reasoning model and the repeated-sub-goal cache contents are given directly in the stem.
19. You need to speed up 40-token intent classification using five copies of a model. Which topology fits best?Design
Two boxes: the task, 40-token intent classification, and the resources, five copies of the same model. A question asks which parallel-inference topology fits speeding this up.
Both the task and the resource count are given directly in the stem.
20. You must make a single long linear proof faster, and its p is close to 0. Which approach fits?Design
Two boxes: the task, one long linear proof, and the parallelizable fraction, close to 0. A question asks which approach fits making this proof faster.
Both the task and its near-zero parallelizable fraction are given directly in the stem.

Build It

code/main.py implements a toy Hogwild! simulator:

  • Two worker processes, each a deterministic "LLM" that produces one of several token categories (work-token, observe-token, coordinate-token) with known probabilities.
  • A shared cache (just a list of tokens) that both workers read and write.
  • A simple coordination logic: when a worker sees that the other has already produced enough work tokens in a category, it picks a different category.

The simulator runs for a fixed step budget and reports:

  • Total work-tokens produced.
  • Total wall time (number of worker steps).
  • Effective speedup over a single worker.
  • A trace of which worker wrote which token.

Step 1: the shared cache

A list that both workers append to. A real implementation would need locking (Python threading.Lock). The simulator skips it and has the workers take turns within each step.

Step 2: the worker loop

Each worker, on each step:

  • Reads the current shared cache.
  • Decides what category of token to write based on what is already there.
  • Writes one token.

Step 3: the coordination heuristic

If category X already has K tokens in the cache and worker's intended category is X, worker switches to category Y. This is a toy stand-in for the reasoning-model behavior of "notice this is already covered, do something else instead."

Step 4: measured speedup

Run the simulator with N=1 worker and with N=2 workers, same step budget, and compare unique progress. With strong coordination, N=2 lands at roughly 1.5-1.8x the N=1 baseline because the workers divide the task.

Step 5: stress the coordination

Reduce the coordination heuristic's sensitivity and run again. At weight 0.0, both workers stay in category A, redundant tokens are counted once, and the speedup falls to about 1x, so the second worker adds almost nothing. That matches the paper's point that the trick depends on the workers being able to self-coordinate.

Check: Build It0/5
1. Why does the simulator count a token as unique progress only if no other worker already wrote that category in the same step?Explain
Two boxes: worker 0 writing a category A token, and worker 1 writing a category A token in the same step. A note says the simulator scores at most one of the two as unique progress. A question asks why it counts that way instead of counting every work-token.
That only one of a same-category, same-step pair counts as unique progress is given directly in the stem; why the simulator does this is the question.
2. In the Build It sweep, what happens to the N=2 speedup when the coordination weight is set to 0.0?Apply
A panel giving the N=1 baseline's unique progress, 189, over the same 200-step budget, and asking for the N=2 unique progress when coordination_weight is set to 0.0. A question asks what happens to the N=2 speedup at this setting.
189 is a real run of the lesson's own run_hogwild at N=1; the N=2, weight=0.0 result is the question.
3. In the simulator, a worker intends category A, category A already holds many tokens, and its coordination check succeeds. What does it write?Apply
Two boxes: the worker's intent, category A, already crowded, and the coordination check, succeeding this step. A question asks what the worker writes, given that decide_next_category runs this exact case.
The crowded-category setup and a successful check are given directly in the stem; what gets written is the question.
4. In one simulator step, worker 0 and worker 1 both write a category A token. How are the two tokens scored?Apply
Two boxes: worker 0 writing category A, and worker 1 writing category A, both in the same step. A question asks how the simulator's unique-or-redundant tagging scores the two category-A tokens.
That both workers write the same category in the same step is given directly in the stem; how the two get tagged is the question.
5. You change target_per_category from 100 to 10 in the simulator and the results do not change. Why?Analyze
An excerpt of the real decide_next_category function signature and its first few lines: a noise check, reading the cache's counts, and the worker's intended category, with the rest of the body cut off. A question asks why changing target_per_category from 100 to 10 leaves the results unchanged.
Code excerpted verbatim from the lesson's main.py, the same function run_hogwild calls on every step.

Use It

As of April 2026, Hogwild! in production is research-grade. The reference implementation from Yandex/HSE/IST is PyTorch-based and targets single-node multi-process setups on DeepSeek-R1 and QwQ models.

Pragmatic adoption path:

  1. Profile your reasoning-task workload. Measure the fraction of tokens that are exploratory (multiple strategies, case analyses, search) vs linear.
  2. If exploration dominates, run a two-worker Hogwild! experiment. Measure wall-time improvement.
  3. If the improvement is under 1.3x, you are in the coordination-dominated regime. Revert to single-worker.
  4. If the improvement is over 1.5x, push to N=4 and measure again. Diminishing returns typically hit around N=4-8.

You can combine it with speculative decoding, since each Hogwild! worker can use spec decode on its own. The two speedups roughly multiply, so a 3x spec decode gain and a 1.8x Hogwild! gain give an effective 5.4x over naive single-worker decoding.

Check: Use It0/5
1. A serving stack already gets 3x from speculative decoding, and a Hogwild! test shows 1.8x on top. Roughly what combined speedup does the Use It section expect over naive single-worker decoding?Apply
Two boxes: speculative decoding, already giving 3x, and a Hogwild! test, showing 1.8x on top of that. A question asks roughly what combined speedup the Use It section expects over naive single-worker decoding.
Both the 3x and the 1.8x figures are given directly in the stem.
2. A two-worker Hogwild! experiment on your reasoning workload shows only 1.2x wall-time improvement. What does the Use It adoption path recommend?Apply
A panel reading two-worker Hogwild! experiment, wall-time improvement 1.2x. A question asks what the Use It adoption path recommends at this result.
1.2x is the stem's own figure.
3. A two-worker experiment shows 1.6x improvement. What does the Use It adoption path recommend next, and where do returns typically diminish?Apply
A panel reading two-worker Hogwild! experiment, wall-time improvement 1.6x. A question asks what the adoption path recommends next, and where returns typically diminish.
1.6x is the stem's own figure.
4. With p=0.7, c=200 and a 10k-token task, going from N=4 to N=8 barely helps. What explains this in the model?Analyze
Two boxes: the sequential share, 1 minus p, noted as not shrinking as N grows, and the coordination cost, c times N, noted as growing larger as N grows. A question asks what in the formula explains why going from N=4 to N=8 barely helps, given p=0.7, c=200 on a 10k-token task.
p=0.7, c=200 and the 10k-token task are the stem's own figures; the two formula terms are named without computing the speedup at N=4 or N=8.
5. A 20k-token reasoning workload on one node is mostly case analysis, and speculative decoding is already on. What should you do first?Design
Two boxes: the workload, 20k-token reasoning that is mostly case analysis, and what is already in place, speculative decoding on a single node. A question asks what you should do first to try Hogwild! here.
The workload description and the already-running speculative decoding are given directly in the stem.

Ship It

This lesson produces outputs/skill-parallel-inference-router.md. Given a reasoning workload profile (token budget, task parallelism profile, model family, deployment target), it routes between voting, tree-of-thought, multi-agent, Hogwild!, and speculative decoding strategies.

Author's Note

I'd run main.py before rereading the prose, and go straight to the coordination-weight sweep in Step 3. At 0.0 the two workers both stay in category A and the speedup is about 1.04x. At 0.8 it is 1.80x, and at 1.0 it is 2.04x. Seeing the second worker go from nearly useless to nearly doubling progress by changing one number is the whole argument for why the shared cache matters.

My bet is that the part worth studying is how run_hogwild scores progress. A token counts as unique only if no other worker already wrote that category in the same step. That is why work_tokens (376) sits above unique_progress (341) at N=2, and why the speedup is computed from progress and not from raw tokens emitted.

I'd also keep the toy in proportion. Workers take turns inside a step, so there is no real race and no lock. The coordination is a probability, not reasoning, and target_per_category is passed around but never read. The Amdahl table in Step 4 is where I'd look for intuition about when to try this on a real model: the numbers there come from p, c, and N alone.

Exercises

  1. Run code/main.py with the default settings. Confirm the N=2 Hogwild! configuration produces more work-tokens than the N=1 baseline in the same wall time.

  2. Reduce the coordination heuristic's strength (set coordination_weight=0.1). Re-run. Show that the speedup collapses. Explain why: the workers duplicate effort when they cannot coordinate.

  3. Compute the expected Hogwild! speedup for a 50k-token reasoning task with p=0.8, c=500 and N=4 workers. Do the same for a 1k-token chat task with p=0.3, c=200 and N=4. Why is one a win and the other a loss?

  4. Read the Hogwild! paper's Section 4 (preliminary evaluation). Identify the two failure modes the authors report. Describe how a better coordination prompt might mitigate each.

  5. Combine Hogwild! with speculative decoding in the toy: each worker uses a 2-token spec-decode internally. Report the multiplicative speedup. What bookkeeping problem arises when two workers both want to extend the same shared-cache prefix?

Key Terms

TermWhat people sayWhat it actually means
Hogwild!"Parallel workers, shared cache"N instances of the same LLM running concurrently with one shared KV cache; emergent coordination via self-prompting
Shared KV cache"The coordination medium"A single growing KV buffer that all workers read and write; enables instant token visibility across workers
Emergent coordination"No training needed"Reasoning-capable LLMs can read the shared cache and divide work without any fine-tuning or explicit protocol
Coordination overhead (c)"Tokens spent orienting"The per-worker cost of reading the extended cache and deciding what to do; must stay small vs total decode time
Parallelizable fraction (p)"What can run in parallel"Task-level parallelism: the fraction of the total work that is not intrinsically sequential
RoPE enables Hogwild!"Rotary positions are shift-invariant"Because positions are rotations, writing into a shared cache does not require recomputing prior tokens
Voting ensemble"Run N, pick the majority"The simplest parallel inference topology; useful for classification, less for long-form reasoning
Tree of thought"Branch and prune"Reasoning strategy that explores multiple branches and prunes; explicit coordination logic
Multi-agent framework"Assign sub-tasks"Each agent gets a role; a coordinator orchestrates; heavy protocol overhead

Further Reading

Code

Ships With