From Answering Questions to Getting Work Done: The Engineering Evolution Behind LLM Capability Upgrades
Large language models are increasingly judged not just by benchmark scores but by their ability to complete real-world development tasks. This article examines the gap between "answering questions" and "doing work," and breaks down the five engineering dimensions—task planning, tool use, context management, error recovery, and system integration—that determine whether an LLM can truly function as an execution-oriented agent. Developers will gain a practical framework for evaluating and integrating models into production workflows.
1. The Gap Between “Answering” and “Doing”
Whenever a new generation of large language models is released, the tech community’s first conversation almost always revolves around benchmark scores: how much math reasoning improved, how many percentage points code generation accuracy gained, and whether multi-turn dialogue became more stable. These metrics matter, but they primarily measure a model’s ability to answer questions—not to complete work.
A model that scores well on exams may still struggle to independently deliver a feature in a real project. The reason is that actual work scenarios differ from standardized evaluations in several key ways:
- Tasks are open-ended and ambiguous. Requirements rarely arrive as cleanly stated prompts. They are embedded in business context, existing code, meeting notes, or even verbal descriptions.
- Tasks are multi-step and interdependent. Delivering a feature typically requires understanding the current state, locating key files, designing changes, writing code, running tests, fixing failures, and iterating.
- The environment is constrained. Available commands, dependency versions, network permissions, and file layouts all impose boundaries the model must respect.
- Results must be verifiable. “Looks reasonable” is not enough. Output must pass compilation, test suites, code review, and real execution.
To evaluate whether a model has genuinely evolved from “answering” to “doing,” we need a different lens. This article analyzes five dimensions: task planning, tool use, context management, error recovery, and engineering integration.
2. Task Planning: From Single-Step Answers to Multi-Step Execution
In a traditional Q&A mode, the user asks and the model answers—one exchange is enough. But in real development, the user’s initial description rarely lets the model jump straight to a final result. Consider the instruction “fix the error in the login API.” Behind that single sentence lies a chain of prerequisite work:
- Locate the login API implementation
- Review recent error logs
- Understand the call chain in the stack trace
- Determine whether the root cause is a logic bug, a dependency issue, or a missing configuration
- Propose and apply a fix
- Verify the fix works
An execution-oriented model must be able to decompose vague goals into actionable steps. This capability shows up in three ways:
Granularity control in goal decomposition. The model needs to know when to pause and gather more information versus when to push ahead. Over-splitting leads to inefficient execution and rapid context consumption; under-splitting risks directional errors at critical junctures.
Dependency management between steps. In a complex task, later steps depend on earlier outputs. For example, choosing a fix depends on identifying the root cause, which in turn depends on log analysis and code review. The model must recognize these dependencies and sequence them properly.
Explicit expression of uncertainty. An execution-oriented model should distinguish between “confirmed facts,” “reasonable inferences,” and “assumptions that need verification.” During planning, a strong model flags key uncertainties and designs verification steps rather than treating assumptions as facts.
Developers can run a simple experiment: give the model a vague, incomplete task and observe whether it asks clarifying questions first, explores on its own, or guesses and acts. These behavioral patterns reveal the maturity of its planning style.
3. Tool Use: Bridging the Model and the Real World
A model that only produces text cannot “do work”—it cannot operate a system, run commands, or read and write files. Tool use is the critical bridge that turns a model from a thinker into an actor.
Common LLM tool categories include:
- File system operations: read, create, modify, and delete files; browse directory structures
- Command execution: run build commands, test commands, and scripts
- Information retrieval: query local documentation and search codebase contents
- Network interaction: access external APIs within permitted boundaries to fetch needed information
The challenge is not whether a model can call tools, but how well it calls them. A mature execution-oriented model typically shows these traits:
First, it selects the optimal tool combination rather than relying on a single tool. Finding all call sites of a function, for instance, can be done via full-text search or structural code analysis. Each tool has different cost and precision trade-offs, and the model must choose appropriately.
Second, it handles tool failures gracefully. Commands may error, files may be missing, and search results may be empty. The model must interpret error messages—is it a parameter issue, a permissions problem, or a path problem?—and adjust, rather than mechanically retrying or giving up.
Third, it balances tool calls with reasoning. Some tasks demand “think first, then query”; others require “query while thinking.” Excessive tool calls slow execution; too few lead to insufficient information. This sense of rhythm is a hallmark of model maturity.
When evaluating tool use, pay special attention to behavior under failure conditions—because in real environments, tool call failures are the norm, not the exception.
4. Context Management: Memory and Attention for Long Tasks
Development tasks involve heavy context: project structure, key code snippets, conversation history, error output, and user preferences. A model that can “do work” must operate efficiently within this information—neither missing critical details nor drowning in noise.
Context management breaks down into three areas:
Persistent tracking of key information. In long tasks, facts discovered early may be needed repeatedly. Once a bug’s root cause is identified, all subsequent fixes should revolve around it. The model needs a kind of “working memory” to maintain these key variables across steps.
Timely discarding of stale information. The context window is a finite resource. When a task moves to a new phase, early details—such as failed exploration paths—may no longer matter. A capable model compresses, summarizes, or drops outdated information to free cognitive space for current decisions.
Resistance to noise in long contexts. Real project context is full of irrelevant material: code from other modules, historical discussions, outdated comments. The model must stay focused on what matters and not be derailed.
One detail worth watching: when a model must simultaneously handle multiple modules that share similar names but different semantics, can it keep them clearly distinguished? Performance in this scenario largely determines real-project usability.
5. Result Verification and Self-Correction: From “Done” to “Done Right”
A hallmark of a model that can truly “do work” is its ability not just to finish a task but to confirm it finished correctly. This requires result verification and self-correction.
Common verification methods in development include:
- Running existing test suites to ensure no regressions were introduced
- Writing and executing targeted validation code to check new functionality
- Using static analysis tools to review code quality
- Cross-checking output against requirements item by item
Self-correction means that when verification fails, the model can effectively diagnose the issue and propose a fix. It must link symptoms to causes. A test failure could stem from a logic error, a poorly written test case, an environment configuration issue, or even a misunderstanding of the requirement. The model must investigate systematically rather than blindly patching code.
An important distinction in practice: after a first attempt fails, does the model discard its entire analysis, or does it make incremental corrections on top of what it already knows? The latter suggests more mature working memory and more precise error attribution—a key dividing line between execution-oriented and Q&A-oriented models.
6. Engineering Integration: Systematizing Capability
Ultimately, these capabilities only deliver productivity when integrated into development workflows. “Doing work” is not just a model trait—it is the result of the model working in concert with engineering systems.
At the integration level, developers should focus on four design principles:
Define task boundaries and human checkpoints. No matter how capable the model, irreversible operations—deleting files, pushing to remote branches, changing production configs—should require human confirmation. Low-risk exploratory actions like reading files, viewing logs, or local builds can be left to the model.
Optimize context injection. The more relevant and concise the context a model sees per task, the better it performs. On the engineering side, use retrieval-augmented approaches to dynamically extract the most relevant snippets from the codebase and documentation, rather than feeding the entire repo indiscriminately.
Log execution traces. The process data—which tools were called, what key decisions were made, what intermediate results were produced—should be recorded in a structured way. This aids debugging and builds reusable experience for similar future tasks.
Continuously evaluate capability boundaries. Models are not universal. Build a small, project-specific evaluation set and track performance across task types over time. When a model repeatedly fails on a certain category, adjust the integration strategy: add clearer task templates, introduce pre-validation steps, or reserve that category for human handling.
7. Conclusion: Taking a Rational View of “Capable” Models
The shift from “answering questions” to “doing work” is the combined result of advances in reasoning, tool use, context management, and engineering integration. It is gradual, not leapfrog. For developers, the priority is not chasing the label of the “strongest model” but building an objective evaluation and integration methodology that converts model capability into real team productivity.
When a new model version claims to be “more capable,” put it to a real test: give it a genuine small task and observe its end-to-end behavior on ambiguous requirement clarification, multi-step planning, tool use, error recovery, and result verification. Only after passing real-world scrutiny does the claim of “doing work” truly hold up.
