Alibaba Qoder engineers on the shift from token scarcity to human bottlenecks

AI programming has gone through a strange inversion. For a long time, the limiting factor was obvious: the model was not good enough, the context window was too small, the output was too expensive, and every extra round of generation felt like a resource to ration. But once models became cheaper and more capable, the constraint did not disappear. It moved.

The uncomfortable discovery from recent Qoder engineering practice is this: when AI gets faster, cheaper, and more autonomous, the first thing that starts to break is not the model. It is the senior engineer supervising it.

That sounds counterintuitive only if we still imagine AI coding as a better autocomplete tool. In that world, stronger models simply mean faster programmers. But the current trajectory has already moved past that. Agents can read repositories, edit files, run commands, open pull requests, and continue work in the background. Once several agents can run in parallel, the scarce resource is no longer token budget. It is the human ability to define intent, keep track of multiple threads, evaluate results, and make architectural judgments without losing the plot.

The Qoder path is useful because it maps the last 18 months of AI development tools almost exactly: from editor assistance, to CLI agents, to multi-terminal agent concurrency, and finally to cloud-hosted agents built around asynchronous execution. The core lesson is not simply that cloud agents are more powerful. It is that AI programming now needs a different operating model for human attention.

From Cursor-style assistance to cloud agents

The evolution of AI coding tools can be understood in four stages. Each stage changes where the bottleneck sits.

Stage one: AI as smarter autocomplete

In 2024, the dominant experience was still editor-centered. Developers wrote code in an IDE, and AI helped complete lines, generate small functions, rewrite comments, or explain snippets. The human stayed inside the loop at nearly every token. The model was a more capable autocomplete engine.

In that phase, the bottleneck was easy to identify: model quality. A better model wrote better code, produced fewer hallucinations, and saved more keystrokes. Productivity scaled with the model’s coding ability.

The human still controlled the flow minute by minute. There was no major scheduling problem, no need to supervise multiple autonomous workers, and no serious question about persistent execution. The AI helped the engineer type faster.

Stage two: CLI agents become executors

By 2025, tools such as Claude Code, Codex, and Aider had made command-line agents familiar to many developers. Instead of writing every line manually, a developer could give an agent a goal and let it carry out a multi-step task. The agent could inspect the repository, edit code, run commands, execute tests, and prepare a pull request.

The division of labor changed. The human became a supervisor; the agent became the operator.

This was already a major shift. The developer no longer needed to touch every implementation detail. A single task could be delegated to an agent, then reviewed when it finished or got stuck. The stronger the agent, the greater the output per task.

But the relationship was still mostly one-to-one: one human supervising one agent session. The human could follow the agent’s reasoning, intervene when needed, and review the result without too much cognitive overhead.

Stage three: multi-terminal concurrency exposes the attention limit

The next move seemed obvious: if one agent is useful, why not run five or ten agents at once?

By late 2025 and early 2026, experienced engineers began experimenting with multi-terminal concurrency. They would open several agent sessions in parallel and assign different sub-tasks to each one. In theory, this should have been the moment productivity exploded.

In practice, it revealed a much harder problem: token throughput can rise exponentially, but a human supervisor’s attention bandwidth does not.

Watching five agents is not five times as productive as watching one. It is often worse. Each agent produces logs, decisions, diffs, questions, failures, and partial results. The human has to remember context across multiple branches of work, decide which failures matter, judge whether a proposed change is safe, and avoid merging conflicting assumptions.

The system’s bottleneck shifts. The model is no longer the main constraint. The human supervisor is.

This is the meaning behind the observation that “tokens are accelerating, but people are starting to collapse.” The agents can produce more, but the person responsible for supervision does not gain extra eyes, extra working memory, or an extra eight hours in the day.

Stage four: separating the “hands” from the “brain”

Qoder’s answer is a cloud-agent model built around what can be described as a separation of “hands” and “brain.”

The “hands” are execution: writing code, reading files, running commands, preparing pull requests, moving work forward.

The “brain” is judgment: architecture, boundaries, intent, validation, and final decisions.

Earlier AI programming workflows still forced the human to be both. The engineer had to design the task, supervise the agent’s execution, track intermediate output, and validate the final result. Once the number of agents increased, the “brain” was pulled into too many threads, and the “hands” became chaotic.

The cloud-agent approach tries to move execution out of the human’s immediate attention loop. The human focuses on architecture, intent, constraints, and critical review. The platform handles the operational work in the background, including long-running tasks that continue after the user leaves.

The important point is not simply “make the agent stronger.” It is “return human attention to the part that is actually scarce.”

Tokens are no longer the scarce resource

In 2024, saying that tokens would no longer be scarce would have sounded optimistic. By 2026, it is much closer to reality.

Public pricing trends show that mainstream model API prices have fallen sharply over the previous 18 months. Output prices for models such as GPT-5.5, Gemini 3.1 Pro, and Claude Opus 4.8 have moved into the range of roughly $10–$20 per million tokens. A standard AI programming task that once cost several dollars in 2024 can cost only a few cents by 2026.

That changes the economics of coding agents. If token costs fall by 60–80%, developers stop treating every model call as precious. The system can afford more attempts, more parallelism, more background execution, and more intermediate reasoning.

Human attention, however, has not become cheaper. A strong engineer still has only a limited amount of effective deep work in a day, often around four to six hours. AI can run overnight. People cannot.

The bottleneck shift in AI programming: tokens are less scarce, attention remains scarce

This is a familiar pattern in engineering systems. When one production factor becomes cheap, the next constraint becomes visible:

  • When compute got cheaper, data centers ran into power and cooling limits.
  • When storage got cheaper, cloud systems ran into network bandwidth constraints.
  • When tokens got cheaper, AI programming ran into human attention constraints.

Cost reduction does not eliminate bottlenecks. It exposes the next layer.

That is why multi-agent coding is not merely a model problem. A world where tokens are abundant needs platforms that can absorb, organize, resume, and verify agent work without forcing a human to watch every step in real time.

What “hands and brain separation” really changes

“Hands and brain separation” is less a formal engineering term than a new definition of what humans should do in AI-assisted software development.

The old role: architect and operator in one person

Traditional software development expects the same engineer to think and execute. One person designs the architecture, breaks down modules, defines interfaces, writes the code, runs tests, debugs failures, and ships the result.

That arrangement made sense when execution required human labor. But AI agents are rapidly improving at operator work. They are increasingly capable of reading codebases, making routine changes, running test suites, and iterating on errors.

Keeping a senior engineer in the operator role for every step becomes wasteful. It is like asking a world-class forward to play goalkeeper: the person may be capable, but the allocation is wrong.

The new role: intent designer and final reviewer

In the cloud-agent model, the senior engineer’s role is closer to “intent designer” plus “final reviewer.”

As an intent designer, the engineer defines the goal, constraints, boundaries, and contracts. For example, the instruction is not simply “build login.” It is closer to: build a login module that supports OAuth 2.0, follows a specified input/output contract, and handles errors according to a defined standard.

As a final reviewer, the engineer checks the critical path after the agent finishes: reading the code, running or inspecting tests, confirming behavior, and deciding whether the result satisfies the original intent.

Execution in the middle is delegated.

This does not make the engineer less important. It makes the engineer’s judgment more concentrated. The value shifts from typing and operating to defining what should be done and deciding whether it was done correctly.

Why persistent cloud agents matter

A cloud-agent platform has several characteristics that are difficult to replicate with ad hoc local terminal sessions:

  • Agents are persistent, not temporary. They can keep running after the user signs off. A developer can assign work at the end of the day and review progress the next morning.
  • Tasks can accumulate state. Intermediate work is stored in the cloud, so another agent or session can continue from where the previous one stopped.
  • Human participation is asynchronous. The engineer does not have to watch the agent in real time. Intervention happens at important moments: task design, boundary decisions, and final verification.

This is different from a synchronous workflow model where a person issues a command, the agent executes, and the person waits for the result. Synchronous workflows are valuable when a task needs a tight feedback loop. Cloud agents are more suitable when work can be pushed into the background and checked later.

The distinction matters because not all AI coding work has the same rhythm. Debugging an ambiguous production issue may require close interaction. Batch refactoring, code generation, migration scaffolding, or overnight builds may be better handled asynchronously.

The three engineering constraints behind overnight agent work

For tokens to keep “flowing while you sleep,” a cloud-agent platform cannot just run a model in the background. It needs specific architectural properties. Three constraints are especially important: recoverable sessions, replaceable sandboxes, and stateless harnesses.

These constraints are not cosmetic. Without all three, long-running agent work collapses in edge cases.

1. Sessions must be recoverable

A recoverable session means an agent can be interrupted and then resumed by a new agent or process from the point of interruption rather than starting from scratch.

Interruptions are inevitable. A network connection can fail. Token limits can be reached. Context windows can overflow. A machine can restart. A process can crash. If an agent has been working for hours and the platform cannot resume the session, all previous work may be wasted.

For long-running coding tasks, that is unacceptable. Some tasks span hours or even days. The platform must persist intermediate state: reasoning traces where appropriate, tool-call records, file-change history, execution logs, and other context needed for continuation.

The core idea is that a session should not live only inside one running process. It should be externalized into durable storage so that later agents can read the state and continue.

2. Sandboxes must be replaceable

A sandbox is the environment where the agent executes: a local Docker container, a remote virtual machine, a temporary cloud function, or another isolated runtime.

Replaceability means the task is not tied permanently to one machine or one container. Different agent jobs can run in different sandboxes, and a job can move if the environment fails or runs out of resources.

This matters because any single sandbox has limits. Disk can fill up. Dependencies can break. The machine can crash. If the task is bound to that environment, the whole agent run becomes fragile.

The implementation requirement is straightforward but demanding: dependencies, code, configuration, and runtime assumptions need to be reproducible. Containerization or scripted environment setup allows a new sandbox to recreate the required environment quickly enough for work to continue.

A cloud-agent system cannot rely on “it works on this one machine.” It needs execution environments that can be destroyed and rebuilt without losing the task.

3. The harness must be stateless

The harness is the runtime layer wrapped around the agent. It schedules work, dispatches calls, monitors execution, and connects the agent to tools and environments.

If the harness itself holds critical state, every restart becomes dangerous. A crashed harness could interrupt or corrupt ongoing tasks. Scaling the system would also be difficult because stateful processes are harder to migrate and replace.

A stateless harness keeps durable state outside itself, in external storage such as databases or object stores. The harness process can restart, migrate, or scale horizontally without breaking the continuity of agent work.

In this design, the harness is orchestration logic, not the owner of the task’s memory. Persistent data lives elsewhere.

Why the three constraints form a loop

These three properties reinforce one another:

  • Recoverable sessions ensure the task itself is not lost.
  • Replaceable sandboxes ensure execution can survive environment failure.
  • Stateless harnesses ensure scheduling and orchestration do not become a single point of failure.

The three constraints behind continuous cloud-agent execution: Session, Sandbox, and Harness

Only when all three hold can an agent platform reliably consume tokens and produce useful work while the user is away. If one or two are missing, the system may look impressive in demos but fail under long-running, messy, real-world tasks.

This is also why cloud-agent platforms are harder than they appear. The problem is not only model orchestration. It requires deep competence in cloud-native architecture, state management, container orchestration, durable storage, and failure recovery.

Skills become more valuable when they move to the cloud

Another important shift is the evolution of “skills.” In early AI coding practice, skills were mostly personal assets: prompt templates, editor settings, Claude Code tricks, custom scripts, and workflow habits accumulated by individual power users.

Those skills improved one person’s productivity. But they were hard to share, hard to standardize, and often trapped on a laptop.

Cloud agents change the economics of skill accumulation. A skill can become a cloud-hosted, subscribable service for a team.

Imagine an engineer tunes an agent configuration for automatically refactoring legacy code. In a local workflow, that configuration remains a private advantage. In a cloud-agent platform, it can be packaged as a reusable skill. Other team members can subscribe to it without recreating the prompt, environment setup, tool selection, or behavioral constraints.

The next step is organization-level reuse. A high-quality skill can be made available to a department or company. When one engineer discovers a better way to guide agents through a recurring task, all related projects can benefit.

The compounding effect comes from scale:

  • A personal skill improves one person’s efficiency.
  • A team skill improves the efficiency of many people and can be combined with other skills.
  • An organization-level skill raises the baseline of AI programming across the company.

This resembles the history of code reuse. Software moved from personal function libraries, to team-shared libraries, to open-source component ecosystems. Agent skills appear to be following a similar path: from private tricks to shared infrastructure.

The real productivity compounding begins when skills stop being local scripts and become organizational assets.

Cloud Agents and Dynamic Workflows are different answers to different problems

Qoder’s cloud-agent approach can be compared with Anthropic’s Claude Code Dynamic Workflows, but the two models should not be treated as direct substitutes. They organize AI programming in different ways.

Two modes of AI programming organization: Cloud Agents and Dynamic Workflows

Dynamic Workflows: temporary organizations for one task

Dynamic Workflows are closer to temporary task organizations. For a given workflow, Claude can generate JavaScript to coordinate multiple subagents working in parallel.

This model is well suited to one-off, complex tasks that need strong feedback loops: code audits, large migrations, cross-system investigations, or research-heavy engineering work. The system is assembled for the task at hand, executes, and then dissolves.

Its strength is adaptive orchestration. It tries to find the best execution structure for this specific job.

Cloud Agents: persistent asynchronous execution

Cloud Agents are closer to resident services. The user submits work, agents execute asynchronously in the background, and the human can intervene later.

This model is better suited to long-running or repeatable tasks that do not require constant real-time feedback: batch code generation, automated refactoring, nightly builds, repetitive migration work, and other jobs that can run while the developer is elsewhere.

Its strength is continuity. It is built for categories of work that recur and accumulate state.

Complementary, not conflicting

The two models are likely to coexist. Dynamic Workflows optimize the execution of a particular complex task. Cloud Agents optimize the continuous execution of a class of tasks.

A mature AI programming platform will probably need both capabilities: dynamic workflows for one-off, high-complexity jobs, and persistent cloud agents for background, repeatable, long-duration work.

The more practical lesson is that cloud agents require a different engineering foundation. Persistent sessions, replaceable environments, stateless orchestration, skill subscriptions, and asynchronous review are not add-ons. They are the infrastructure required once agent work moves beyond a single local terminal.

The engineer’s job after the bottleneck moves

The central question remains: if tokens are no longer scarce, why does the bottleneck move to humans?

A better answer is that the definition of “human work” changes.

The old engineer was a combination of architect and operator. The person had to think and do. In the agent era, more of the operator role is absorbed by AI. What remains for the human is architecture, judgment, intent definition, and verification.

That is not a demotion. It is a narrowing of focus around the rarest work.

The practical consequence is clear: over the next 12 to 24 months, the most valuable engineers may not be the ones with the flashiest prompts. They will be the ones with the strongest architectural judgment and the clearest ability to define intent.

Technical execution can increasingly be delegated. But the core questions still belong to people:

  • Should this task be done at all?
  • Is it worth doing now?
  • What are the boundaries?
  • What trade-offs are acceptable?
  • Does the proposed solution actually fit the system?

Those judgments cannot be automated away simply by making tokens cheaper.

The larger pattern is the migration of bottlenecks. In 2024, the bottleneck was the model. In 2025, it was the tooling. In 2026, it is human attention. Every time one production factor approaches abundance, the next scarce factor becomes visible.

Cloud agents are one attempt to address the attention bottleneck by moving execution out of the synchronous human loop. If that works, a sharper question follows: after attention is no longer the main constraint, what becomes the next bottleneck?