CHAPTER 03 · The Four Moves: Reduce, Offload, Isolate, Retrieve · 3 / 6
Move 3: Isolate context
Context isolation means giving a piece of work its own separate context window, usually by handing it to a sub-agent. This is where context engineering meets the multi-agent topic.
Manus is deliberately pragmatic here. It does not create a cast of human-like roles ("designer," "engineer," "project manager") that chat with each other. The articles point out that humans split work by role because of our own cognitive limits, and LLMs do not necessarily share those limits. So in Manus the main purpose of a sub-agent is to isolate context, not to act out a job title.
In practice, Manus uses a planner agent that assigns tasks, a knowledge manager that decides what should be saved to the filesystem, and an executor sub-agent that performs the assigned tasks. There is a notable bit of history here: Manus originally tracked tasks in a todo.md file that was constantly rewritten, and found that roughly one-third of all actions were spent updating that list, which wasted tokens. They replaced it with a dedicated planner agent.
How much context to share with a sub-agent depends on the task, a tension that the multi-agent chapters explore in depth:
- For simple, discrete tasks, where the planner only needs the sub-agent's output, the planner just sends instructions through the function call. This resembles the task tool in Claude Code.
- For complex tasks, where the sub-agent must understand the whole trajectory of the problem (for example, a debugging sub-agent that needs to see previous failed attempts, or one that writes to files the planner also uses), the planner shares its full context.
In both cases the planner defines the sub-agent's output schema, and the sub-agent uses a "submit results" tool with constrained decoding to make sure the returned data matches that schema exactly. Part 2 frames this as a general principle borrowed from Go programming: "Share memory by communicating, don't communicate by sharing memory." Treat shared context as an expensive dependency to be minimized, partly because forking context also breaks the KV cache.