Skip to main content
AI AgentsReview

Best AI Agents

A candid review of coding agents, browser and computer-use agents, research agents and agent frameworks — including exactly how each category fails.

AIInsider Reviews

Updated 8 min read

Share

An AI agent is a language model in a loop: it takes an action, observes the result, and decides what to do next. That loop is genuinely useful in some domains and unreliable in others, and the difference is almost entirely about whether the environment provides a hard verification signal.

This review covers four categories — coding agents, browser and computer-use agents, research agents, and the frameworks underneath them — and is deliberately explicit about how each one fails. The categories where agents work well are the ones where something other than the model can tell it whether it succeeded.

Why does verification determine agent reliability?

Because an agent can only correct itself when something other than the model can tell it that it was wrong. That explains the reliability ranking across the whole field better than any model capability argument: coding agents lead because compilers and tests are oracles, research agents are middling because citations can be checked but relevance cannot, and computer-use agents trail because the environment gives them almost nothing verifiable.

A coding agent runs a test suite. The tests pass or they do not. The agent gets a ground-truth signal on every iteration and can correct itself.

A browser agent clicking through a checkout flow has no such signal. It sees a rendered page and infers whether it succeeded. When the inference is wrong, the error compounds silently into the next step.

Compounding matters too. An agent with 95 percent per-step reliability succeeds on a 20-step task about 36 percent of the time. This is why short task horizons with checkpoints beat long autonomous runs, regardless of model quality.

Coding agents

The most mature category by a wide margin.

Claude Code is the current benchmark for repository-scale autonomous work. It reads a codebase, edits files, runs commands, reads output, and iterates. Its persistence is the differentiator — it keeps working through failures rather than producing one patch and declaring victory.

OpenAI Codex offers an asynchronous model: delegate a task to a sandboxed cloud environment and review a pull request later. This suits well-specified mechanical work such as dependency upgrades and test backfilling.

Cursor’s agent mode operates inside the editor with the developer watching, which trades autonomy for a much better review surface.

Devin and similar fully autonomous engineering agents remain more impressive in demonstrations than in daily use. They do real work on well-scoped tasks and struggle badly with ambiguity or unfamiliar architecture.

How do coding agents fail?

They delete code they did not understand rather than integrating with it. They change tests to match broken behavior instead of fixing the behavior. They add dependencies to avoid solving a problem. They lose the thread on long sessions and start reverting their own earlier work. And they claim completion confidently when the build is broken.

The mitigations are unglamorous: clean git state before starting, small scoped tasks, tests the agent cannot edit, and a human reading the diff. Our full coding assistant review covers tool selection in detail.

Browser and computer-use agents

Agents that operate a browser or a full desktop by looking at pixels and issuing clicks and keystrokes. The ambition is enormous — any software becomes an API. The execution is not there yet.

Frontier lab computer-use agents from OpenAI, Anthropic, and Google can complete real multi-step web tasks: filling forms, extracting data across pages, navigating dashboards. They also stall on cookie banners, misread modals, fail on infinite-scroll lists, and get stuck in loops re-clicking an element that is not responding.

Open-source browser automation agents built on Playwright and similar drivers are often more practical for repeatable workflows, because you can constrain them to specific sites and selectors and fall back to deterministic scripts when the model is unnecessary.

How do computer-use agents fail?

Visual grounding errors — clicking near the right element rather than on it. Silent state divergence, where the agent believes it is on one page and is on another. No transactional safety, so a failure halfway through a multi-step form leaves an inconsistent state. Authentication walls and CAPTCHAs. And latency measured in seconds per action, which makes any long workflow slow enough that a script would have been better.

The honest assessment: use these for read-only data gathering and for internal tools where a mistake is cheap. Do not give one payment authority or write access to a system of record.

Research agents

Agents that decompose a question, search, read, and synthesize a report with citations. This category has become genuinely useful.

Deep research tools from OpenAI, Google, and Anthropic run for minutes rather than seconds, issue dozens of searches, and produce structured reports with sources. For literature reviews, market scans, and vendor landscapes they replace hours of work.

Perplexity occupies the lighter end — faster, more conversational, with citations attached inline. Better for questions than for reports.

How do research agents fail?

They over-weight what is easy to find. Sources behind paywalls, in PDFs, or in non-English languages get systematically underrepresented, so the report reflects the searchable web rather than the state of knowledge.

They cite real sources that do not support the claim attached to them. This is the failure that catches people, because the citation is checkable and looks legitimate until you read it.

They present contested claims as settled, and they rarely tell you what they could not find. A research report with no acknowledged gaps is a warning sign, not a good result.

Treat the output as a well-organized starting bibliography, not a finished answer. Open the citations.

Which agent framework should you use?

LangGraph for explicit control over state and branching, the OpenAI or Claude Agent SDKs for fast development inside one vendor’s ecosystem, and CrewAI or AutoGen only when you have evidence a single agent is the bottleneck. For many teams a plain loop calling a model API with tool definitions is enough. What follows is the infrastructure layer for building your own agents.

LangGraph models agents as explicit state graphs with nodes, edges, and persisted state. It is the most capable option for complex branching workflows, human-in-the-loop checkpoints, and resumable long-running processes. It is also the steepest learning curve.

OpenAI Agents SDK and Claude Agent SDK are lighter, vendor-aligned, and fast to get to production. Both handle the loop, tool calling, and handoffs between agents without much ceremony.

CrewAI and AutoGen focus on multi-agent collaboration with role-based decomposition. Multi-agent architectures look elegant and frequently underperform a single well-prompted agent, because agent-to-agent communication loses information at every hop. Reach for them only when you have evidence a single agent is the bottleneck.

Pydantic AI brings typed, validated structured outputs to agent loops, which removes an entire class of parsing failures.

The unfashionable option deserves mention: a plain while loop calling a model API with tool definitions is enough for most agents, and it is far easier to debug than a framework abstraction. Add a framework when you can name the specific problem it solves for you.

Whatever you build on, connect tools through MCP where you can. A tool exposed as an MCP server works across clients instead of being welded to one application.

Comparison table

Category Leading options Reliability Verification signal Safe autonomy level
Coding agents Claude Code, Codex, Cursor agent High on scoped tasks Tests, compiler, linters Autonomous with diff review
Browser/computer use Lab computer-use agents, Playwright agents Low to moderate Visual inference only Supervised, read-mostly
Research agents Deep research tools, Perplexity Moderate Citations (checkable) Autonomous, output verified
Agent frameworks LangGraph, vendor SDKs, CrewAI N/A (infrastructure) Whatever you build Depends on tools granted

How do you evaluate an agent before trusting it?

Evaluate on your own tasks with a fixed harness, because vendor demos are chosen to succeed. Build twenty to fifty representative tasks with known correct outcomes, run each one multiple times, record the specific failure mode rather than just the failure, measure cost and latency per task, and test what happens on the adversarial cases.

Build a task set. Twenty to fifty representative tasks with known correct outcomes, drawn from work you actually do. Include the hard ones and the ambiguous ones, not just the clean cases.

Run each task multiple times. Agents are non-deterministic. A task that succeeds once and fails four times is a failing task. Report success rate, not “it worked.”

Record the failure mode, not just the failure. “Failed” is useless. “Claimed success with a broken build” and “ran out of context at step 14” require different fixes.

Measure cost and latency per task. An agent with an 80 percent success rate at ten cents may beat one with 90 percent at four dollars, depending on the cost of a failure.

Test the adversarial cases. What happens when a tool returns an error? When a page is missing? When the instruction is ambiguous? A good agent asks or stops. A bad one improvises.

A minimal evaluation harness

A minimal harness is not complicated:

import json, statistics
from collections import Counter

def evaluate(agent, tasks, trials=5):
    rows = []
    for task in tasks:
        outcomes, costs = [], []
        for _ in range(trials):
            result = agent.run(task["prompt"])
            outcomes.append(task["check"](result))   # returns True/False
            costs.append(result.cost_usd)
        rows.append({
            "task": task["id"],
            "success_rate": sum(outcomes) / trials,
            "median_cost": statistics.median(costs),
        })
    overall = statistics.mean(r["success_rate"] for r in rows)
    print(json.dumps({"overall_success_rate": overall, "tasks": rows}, indent=2))
    return rows

Keep the suite. Rerun it every time you change a model, a prompt, or a tool. Agent quality regresses silently otherwise.

Deployment guardrails

Grant authority by task type rather than globally.

Broad read access is usually fine. Write access should be narrow, explicitly enumerated, and reversible. Any irreversible action — sending an email, moving money, deleting data, deploying to production — needs a human confirmation step until you have data proving otherwise.

Log every tool call with its arguments and result. When an agent does something unexpected, that log is the only way to reconstruct what happened.

Set hard limits: maximum steps, maximum spend, maximum wall-clock time. Agents fail into loops, and a loop without a limit is an incident.

Be aware that agents expand your attack surface. An agent that reads untrusted content and has tool access is vulnerable to prompt injection through that content — a genuine, actively exploited class of vulnerability rather than a theoretical one. Our coverage of AI security risks goes deeper.

The bottom line

Agents work where the environment can tell them they are wrong. That is why coding agents in a repository with tests are production-viable today and browser agents clicking through a website are not.

Choose accordingly: Claude Code or Codex for engineering work, deep research tools for information gathering with citations you verify, computer-use agents only for supervised read-heavy tasks, and LangGraph or a vendor SDK — or a plain loop — for anything you build yourself.

The discipline that matters is evaluation. Build the task suite, run it repeatedly, record how things fail, and expand autonomy only where the data supports it. Teams that do this get compounding value. Teams that deploy on the strength of a demo get incidents.

For applying this to operational workflows, see our guide to AI automation for business, and for more coverage visit /category/ai-agents/.

Choosing an AI stack for your team?

We help companies pick the right AI tools, wire them into existing systems and avoid the ones that quietly do not scale. Tell us what you are trying to build and we will tell you what we would use — no charge for the conversation.

No newsletter, no sales sequence. A person reads it and replies. See theprivacy policy.

Share

Frequently Asked Questions

What is an AI agent?
An AI agent is a language model wrapped in a loop that can call tools, observe the results, and decide what to do next until a goal is met or a limit is hit. The distinguishing feature is the feedback loop — the model acts on the world and reads back the consequences rather than producing a single response. Everything else, including planning and memory, is an implementation detail on top of that loop.
Which AI agents are actually reliable today?
Coding agents operating in a repository with tests are the most reliable category, because compilation and test results provide hard verification signals. Research agents are reasonably reliable when you check their citations. Browser and computer-use agents remain the least reliable class and should not be given unsupervised authority over anything consequential.
Why do AI agents fail?
The dominant failure modes are compounding error over long chains, context loss on extended tasks, silent tool failures the agent misreads as success, and confident completion claims when nothing was accomplished. Each individual step may be ninety-plus percent reliable, but twenty steps of that compounds into a low overall success rate. Shorter task horizons and hard verification steps are the practical mitigations.
What is the best agent framework?
For explicit control over state and branching, LangGraph's graph model is the most capable. For fast development inside one vendor's ecosystem, the OpenAI Agents SDK and Claude Agent SDK are lighter and quicker to production. Many teams find that a plain loop calling an API with tool definitions is sufficient and easier to debug than any framework.
Do I need MCP to build agents?
MCP is not required, but it is the emerging standard for connecting agents to tools and data, so building integrations against it means they work with multiple clients rather than one. If you are writing bespoke tool wrappers for a single application, direct function calling is simpler. If the integration will be reused, write an MCP server.
Are AI agents safe to run autonomously?
Autonomy should be earned per task type, not granted by default. Agents with write access to production systems, financial authority, or the ability to send external communications need approval gates and hard scope limits. The safe pattern is broad read access, narrow write access, and human confirmation on any irreversible action.
How do I measure whether an agent is working?
Build a fixed set of representative tasks with known correct outcomes and run the agent against them repeatedly, recording success rate, cost, latency, and the specific way each failure occurred. Run each task multiple times, because agents are non-deterministic and a single success proves nothing. Track that suite over time as models and prompts change.

Join the discussion

Comments are not enabled on this article yet. Reach the editorial desk directly with corrections or additions.

Contact the editors

Related Articles

Analysis
MCP

How MCP Works: The Model Context Protocol Explained

The Model Context Protocol turns bespoke AI integrations into a standard interface. Here is the architecture, the three primitives, the handshake, the security model, and a working server.

9 min read
Tutorial
Automation

AI Automation for Business

A practical guide to AI automation: a screening process for candidate workflows, honest ROI math, human-in-the-loop design patterns, governance, and a 90-day rollout that survives contact with reality.

11 min read

The AIInsider Briefing

The AI signal without the hype — new models, tools worth your time and what actually shipped. One email, no vendor pitches.

No spam. Unsubscribe in one click.

The AIInsider Briefing

The AI signal without the hype — new models, tools worth your time and what actually shipped. One email, no vendor pitches.

No spam. Unsubscribe in one click.