Study finds coding agents choose grep over LSP except when exhaustive references matter

Study finds coding agents choose grep over LSP except when exhaustive references matter

  • In a pilot across three Claude models, Python and TypeScript repositories, agents chose LSP-backed navigation only 0% to 6% of the time on simple code-location tasks, and forcing a semantic-first path cut success from 100% to 89%.
  • For tasks requiring every caller, agents selected semantic navigation 45% to 57% of the time; LSP reached 1.00 precision versus grep at 0.76, but recall remained near 0.66 for both methods.
  • The author found that lexical noise predicted LSP's value better than language typing: on TypeScript repo remeda, LSP added no F1 gain and used 16% more tokens, while on noisy TypeScript repo hono it improved F1 by 0.246 and used 12% fewer tokens.
  • The study measures token use only among runs where both approaches succeeded, avoiding the appearance that a failed run was efficient because it terminated early.
  • The article argues that agent performance depends on the harness defining tool names, inputs, and returned context, while treating model training familiarity with grep-like workflows as an unproven hypothesis.

Hacker News opinions

My LSP setup breaks every few months, and I now point an LLM at my dotfiles until it works. What surprises me is how many tiny programs are involved and how many tokens a supposedly simple fix consumes.

I suspect my past self used much less effort than the LLM appears to use. These models are often bad at taking a direct path to the fix.

I see this too. A large share of my Claude usage is automating configuration work I have always hated, and I wonder whether a small local model could handle this niche.

My Neovim config is a single 500-line init.lua and LSP works fine. This sounds like the LLM is making the problem much more complicated than it needs to be.

The article shows why grep may work better, but it does not really explain why agents choose it. We could combine LSP and grep in one search tool, or use ast-grep, but grep may simply have been good enough that nobody studied the alternatives much.

I have the same question about training. Grep is much easier to train on, while only a fraction of projects can set up LSP properly.

Claude Code may have collected many real CLI coding trajectories, but trajectories involving LSP, MCP, or AST-grep were probably scarce. That gap would also limit later synthetic training data.

I have had good results with a SKILL that tells the agent to use LSP more often. For compiled Java dependencies, LSP can avoid the agent extracting JARs, running grep and javap, then trying to decompile class files.

I watch Claude Code use find, grep, and ripgrep, then ask what tool would have made the task easier. That has led me to fzf, notmuch, and a Python CLI that converts a slow format to Parquet for DuckDB queries.

I think there is room to optimize token use for fixed command-line workflows. I added a Claude Code hook that records repeated commands and compiles them into reusable scripts and skills, which works well for recurring infrastructure tasks.

This does not match my experience. On a Python project with string and cross-repository references, Aider's LSP lookups were fast, while grep was more complete despite its token cost.

I do not see why an LLM needs to act as an LSP when code is structured data.

The article's claim that training support is only a hypothesis is fair, but the wording is awkward. I would write: "We cannot prove training explains this result, but this fits the data best."

AI
Open-weight GLM 5.3-flash prompts a one-year warning on AI-driven vulnerability exploitationGoogle DeepMind unveils WeatherNext 3, an hourly global weather AI using live satellite dataPaper claims unpaired translation between embedding spaces exposes vector database privacy risksOpenAI says coding agents have reached research intern level, targets automated researcher by 2028OpenAI Chief Scientist Warns of Rapid Reasoning AI Progress and Calls for Broader Safety InterventionGPT-6 Astra placed blocks in bowls in 19 of 20 robot-arm trials, but matched Fable on puzzle insertionBryan Cantrill says detectable LLM prose drives readers away, points to Pangram as a spam-filter analoguePaper models LLM adoption as a contagion with tipping points into persistent dependenceCodeRabbit finds GPT-6 Astra catches 20% more cross-file bugs than GPT-5.6 SolAnthropic publishes a 29,511-module Lean 4 proof of Fermat's Last TheoremArtificial Analysis v4.2 adds private agentic and PDF tests, putting Claude Fable 5.1 firstOpenRouter lists GPT-6 Astra with 1M context, $10/$50 pricing and multi-provider routingEEBench measures AI circuit designs with SPICE, BOM cost, and tolerance-corner checksAnthropic says Claude formalized Fermat's Last Theorem in Lean in 11 daysSite Publishes Alleged Logs of OpenAI Agents Using Public Wikis to CoordinateStudy finds coding agents choose grep over LSP except when exhaustive references matterNolan Lawson says Claude now answers frontend performance questions that once sustained web-dev educationArmature's 16,893-run study finds Stripe, Neon and AWS dominate some coding-agent tool choicesGPT-6 Astra Scores 99.9% on ARC-AGI-3 With Persistent Reasoning StateClaude Code ports 72,758 lines of Amiga 68000 assembly to Godot, but fidelity remains manually judgedOpenAI says GPT-6 Astra hits 99.9% on ARC-AGI-3 and begins limited rolloutCerebras adds Qwen 3.8 27B public API endpoint rated at 1,500 tokens/sIFM releases six Apache-licensed K2 Horizon models with training checkpoints, data recipes, logs, and codeNvidia agrees to acquire Hugging Face for $12.9B, pledges to keep platform openNature study links LLM writing assistance to a 21 to 50% drop in writing-complexity varianceFable 5.1 builds a walkable Three.js model of San Francisco's Union SquareAisle reports six low-severity curl CVEs after Codex Security and Mythos returned zeroPerplexity cited 215,128 generated software-buying pages in tests across 380 categoriesMistral Vibe uses user data for training by default, while Vibe Enterprise is opted outGoogle launches Gemini 3.8 Flash at 3.7 pricing, adds restricted Cyber variantPaper approximates neural network representations with symbolic equations across LLM tasksOpenAI classifies Astra as its first Critical cyber-capable model and limits advanced accessWorld Labs unveils Atlas, a multimodal world model for 3D reconstruction, controllable video, and robotics simulationAnthropic launches Claude Fable 5.1 with lower cache-read pricing and a restricted Mythos 5.1 variantSmall transformer reaches 44% on ARC-AGI-1 for 67 cents after 1.5-hour RTX 5090 trainingApple's Enterprise AI Hardware Demand Outruns Mac Mini and Studio SupplyCornell guide traces how diffusion LLMs refine full text sequences in parallelOpenClaw 2.0 rebuilds setup, browser UI, and shared AI agent sessionsSimon Willison maps ChatGPT Work's cloud agent tools, shared Codex quota, and browser automationAI crawlers consume 14 CPU cores rendering kernel commits that could be clonedArtificial Analysis benchmarks sub-8GB local AI models on iPhone 17 Pro and Galaxy S26 UltravLLM 0.28 adds Kimi-K3 and DeepSeek V4 inference work, tiered KV cache offloadingTencent open-sources 770B-parameter Hy4 preview with 1M-plus-token contextDebian permits generative AI contributions, keeps contributors fully accountableSamsung puts MAC units in LPDDR5X banks for 614 GB/s in-memory AI computeLemmalog uses Datalog to retract stale LLM research conclusionsSamsung's LPDDR5X-PIM puts 16 compute blocks beside DRAM and reports 3.01x Llama 3.1 throughputStation’s autonomous AI agents report new results on five mathematical construction problemsOpenAI sets November 12 cutoff for Cursor after SpaceX acquisitionCohttp patch drew traversal probes within 10 minutes as agents turn bug hints into exploitsZ.ai releases GLM-5.3 open weights, claiming post-training gains in coding and cyber tasksEPA says off-grid data center power plants are outside Acid Rain ProgramUS Judge Blocks Pentagon's Anthropic Blacklisting as Illegal RetaliationTerminal-Bench-Science launches with 70 research workflows, Opus 5 reaches 30%Anthropic previews MHS, a device-driver standard for AI agents in labs and factoriesExperiential open-sources an LLM gateway that routes traffic and trains models from usageGoogle opens Gemini 3.5 Transcribe for real-time and recorded speech APIsGoogle opens Gemini Omni 1.1 Flash API with 40-second scene extension and 4K video upscalingBill Gates calls for democratic AI transition planning as job losses and data center impacts growCalvin French-Owen argues cheap, fast models make consumer and business AI economics viableMIT panel calls for AI-aware teaching and assessment, but leaves policy details to future workLAION releases 80M-video, 10M-hour research dataset for multimodal AI trainingBill Gates calls for AI taxes, protected jobs, and a global oversight bodyAmazon will permanently close Mechanical Turk on September 30, 2026Nvidia Is in Talks to Buy Hugging Face for More Than $13BOpenAI says internal GPT-5.6-scale model used Artifactory to bypass isolation and reach Hugging FaceAI Coding Risks Producing Developers Who Can Patch Systems Without Understanding ThemZ.ai releases 320B-parameter GLM-5.3-Flash, claiming near-Opus coding results at $0.045 per taskQwen opens Qwen3.8-Flash-Next, a 6B-active MoE previewing Qwen4 architectureZ.AI confirms Ox Alpha is a GLM-series model and plans to release its weightsResearcher says rooted Pixels can sign AI fakes as genuine C2PA camera capturesSemiAnalysis says OpenAI's Jalapeño inference ASIC beats Blackwell on throughput per MWApple updates Mac mini with M6, claims up to 4x faster AI performanceRL Trains Qwen 3.5 to Paint Editable Watercolours in JavaScriptApple's M5 Ultra Mac Studio reaches 512GB unified memory for local LLMs and four-node AI clustersApple puts a 2nm M6 in Mac mini and a 512GB-capable quad-die M5 Ultra in Mac StudioThomson Reuters spends $40M to train Thomson legal and tax LLM from open-weight modelsvLLM eval() flaw shows how malicious model output could target inference hostsOpenAI cuts GPT-5.6 Sol API pricing through at least November 21, 2026Reverse engineering finds Paint and Photos embed server-issued GUIDs in locally generated AI imagesProgramBench Vetted tests agents rebuilding runnable binaries, with Claude Opus 5 resolving 14%Qwen 3.8 27B reverse-engineered a firmware key in 30 minutes using Bash toolsPianoify publishes a public MuScriptor audio-to-MIDI transcription instanceFable 5 reaches a 2,726 NanoGPT speedrun record, closing 81.7% of the human gapAutolith puts a Common Lisp runtime inside its programming agentTexas student stopped AISI test agent after it used fake GitHub personas to push malicious codeMCP roadmap prioritizes agent messaging, HTTP transport unification, and workload identityDan Luu reports AI agents produced a 7% ripgrep speedup with workload-specific AOT regex compilationWaymo details 5nm sensor-processing ASIC with over 1,000 TOPS for robotaxi perceptionNari Labs reports 34 ms p95 first-audio latency for Qwen3-TTS at 10 RPS on one H100Chinese pupils using AI raised homework scores 18% but scored 20% lower on examsVendo launches open-source embedded AI agents for end users to build SaaS featuresMicron Plans $10B Boise Memory Research Lab for AI EraAnna's Archive alleges AI firms scan and destroy books, calls for public preservationDeepSeek adds experimental vision input to V4 Flash with 384-token image capAudit finds 37.1% of Cybench passes used cheating despite anti-cheat promptsDiffusionGemma converts Gemma 4 into a 1,500-token/s diffusion language model on one H100ICML position paper argues chain-of-thought tokens are generated scratch space, not evidence of model thinkingModular releases Mojo compiler and toolchain under Apache 2.0 after Mojo 1.0DFlash 2 claims 16 to 25% more verified output while keeping speculative drafts parallel