sodcalculator

10 Tech How-To

Choosing Models for an Agentic Software Development Lifecycle

Guide 10-40809 · Updated · Step by step

Choosing models for an agentic software development lifecycle means matching each model’s capabilities to the work an agent must do, from planning and coding to testing and review. A deliberate selection process can improve reliability and control cost without assuming one model is best for every task. Before you begin, define your workflow, constraints, and how you will evaluate results.

What You’ll Need

  • A map of the lifecycle tasks you want agents to perform, including which steps require human approval.
  • A representative set of software tasks, repositories, and expected outcomes for evaluation.
  • Access to candidate models through a provider, local deployment, or an approved internal platform.
  • Basic measures for quality, latency, cost, tool use, and failure rates.
  • Security and privacy requirements, plus a plan for logging and reviewing agent actions.

Step-by-Step

  1. Break the lifecycle into distinct jobs. List the activities agents may handle: clarifying requirements, exploring a codebase, proposing a design, writing or editing code, generating tests, debugging, reviewing changes, and documenting releases. Add operational tasks such as calling tools or handing work to another agent. Avoid treating “software development” as one benchmark; a model that explains architecture well may not edit code reliably.
  2. Set boundaries and risk levels. For every job, decide what the agent can access and change. For example, an agent might read issues and propose a patch, while a human approves merges or deployments. Mark tasks involving secrets, sensitive data, production systems, or irreversible actions as higher risk. Prefer stronger controls and human review where mistakes have greater consequences.
  3. Write a model profile for each job. Translate the task into capabilities you can test. Coding may require understanding a large repository, following instructions, producing valid edits, and using tests. Planning may depend more on reasoning, uncertainty handling, and asking useful questions. Tool-using jobs also need dependable structured outputs and recovery when a tool fails. Include context needs, response-time expectations, and whether local processing is required.
  4. Shortlist candidates using verifiable information. Check current documentation for context limits, supported input and output types, tool-calling behavior, availability, data handling, and deployment options. Treat published benchmark results as clues, not proof: results may use different prompts, versions, or scoring methods. Include a lower-cost or smaller option if it may be adequate, and keep a fallback for unavailable or unsuitable models.
  5. Create a representative evaluation set. Select real, appropriately sanitized tasks from your workflow. Include easy cases, ambiguous requirements, unfamiliar code, edge cases, and examples where the correct response is to ask a question or decline an unsafe action. Record the starting state, allowed tools, expected outcome, and a consistent scoring rubric. Do not evaluate only on examples used to tune prompts.
  6. Test each candidate under the same conditions. Use equivalent instructions, tool permissions, repository snapshots, and time limits. Assess whether outputs work, not just whether they sound convincing. Run generated tests and relevant existing checks; inspect diffs for unintended changes. For review tasks, compare findings with known defects and check for unsupported claims. Repeat enough runs to reveal variability, especially for tasks with non-deterministic outputs.
  7. Measure the whole workflow. Record task success, correctness, regressions, human correction time, tool-call failures, latency, and cost per completed task. Include retries and downstream cleanup in cost and time. A model that is inexpensive per request may be inefficient if it needs many retries or creates hard-to-review changes. Compare results by task type rather than relying on one overall score.
  8. Choose a routing policy, not just a winner. Assign a model to each job based on measured performance and constraints. A fast model may handle straightforward formatting, while a more capable option may be reserved for difficult debugging or design review. Define when to escalate—for example, repeated test failure, low confidence, a large change, or a sensitive action—and what information the next model receives.
  9. Pilot with safeguards, then monitor. Start in a limited environment, such as a branch or sandbox, and require review before consequential changes. Log model and prompt versions, tool calls, results, and approvals while avoiding unnecessary sensitive data. Track the same measures used in evaluation. Re-run the test set when models, prompts, tools, or repositories change, and keep a rollback or fallback plan.

Common Mistakes

  • Picking by reputation alone: General capability claims do not show how a model behaves in your repositories or tool setup.
  • Using one score for every task: A single average can hide poor performance in a critical activity such as editing or test interpretation.
  • Scoring plausible text instead of outcomes: Confident explanations can still contain incorrect code. Execute checks and inspect changes.
  • Ignoring the system around the model: Prompts, retrieval, tools, permissions, and context assembly all affect agent performance.
  • Giving broad permissions too early: Start with the minimum access needed, then expand only after controlled evaluation.
  • Failing to retest: Model versions and agent workflows change. A past result is not a permanent guarantee.

Tips

  • Use a rubric with separate ratings for correctness, completeness, instruction following, and safe tool use.
  • Keep a holdout set of tasks that is not used to adjust prompts or routing rules.
  • Save representative failures and add them to regression tests after diagnosing the cause.
  • Compare model-only performance with the complete agent, including tools, retries, and human review.
  • Track the model version and configuration behind each result so evaluations can be reproduced.
  • Set explicit stopping conditions: an agent should report a blocker rather than retry indefinitely or silently broaden its task.

Troubleshooting

Results vary widely between runs: Check whether prompts, repository state, tool responses, or sampling settings differ. Repeat the evaluation and report the range of outcomes, not only the best run. Add clearer acceptance criteria or require verification steps.

The model writes code that fails tests: Separate reasoning from execution. Provide relevant test commands and error output, limit the size of each change, and require the agent to run checks before reporting completion. If failures persist, route the task to a model that performed better on repository-specific coding tests or require human implementation.

It uses tools incorrectly: Verify tool descriptions, input formats, permissions, and error handling. Test the tool-calling layer independently, then add checks that reject invalid or out-of-scope actions. Do not solve this by granting broader access.

Costs or latency rise after rollout: Inspect request volume, context size, retries, and escalation frequency. Route routine work to a suitable lower-cost option only if it meets the quality threshold, and cap retries or context where practical. Re-evaluate the full workflow before changing models.

A model performs well in tests but poorly in daily work: Compare evaluation tasks with actual work. Look for missing languages, repository types, ambiguous tickets, or tool failures. Update the evaluation set with sanitized examples, then test changes before expanding deployment.

Frequently Asked Questions

Should I use one model throughout the lifecycle?
Not necessarily. Different tasks have different needs. Use one model if it meets your quality, cost, and control requirements across the workflow; otherwise, route by task.

How many models should I evaluate?
Start with a manageable shortlist that covers meaningful alternatives. Include options with different performance, cost, or deployment characteristics, then expand only if the results leave an important gap.

Are coding benchmarks enough to choose a model?
No. Benchmarks can help shortlist candidates, but they may not reflect your repositories, tools, or review process. Test representative tasks in your own controlled setup.

How often should I rerun evaluations?
Rerun them before adopting a new model or materially changing prompts, tools, permissions, or agent design. Also schedule periodic checks based on how quickly your environment changes.

Can a smaller model safely make code changes?
It may be suitable for bounded, well-tested changes if it meets your measured quality threshold. Use scoped permissions, automated checks, and human review appropriate to the impact of the change.

What should I do if no candidate meets the threshold?
Do not deploy the task autonomously. Narrow the task, improve context or tools, add verification, or keep a human in control while you test alternatives.

Related

General steps for current mainstream versions; menus can differ by device and version. See the disclaimer or report an error.

More in this bed

The whole Tech How-To bed →