← Latest papers
💻 computer science

Byam: Fixing Breaking Dependency Updates with Large Language Models

This paper presents Byam, an approach leveraging Large Language Models (LLMs) to automatically repair client code broken by dependency updates, demonstrating that models like OpenAI's o3-mini can successfully fix 27% of entire builds and 78% of individual compilation errors when provided with contextual information and advanced prompting strategies.

Original authors: Frank Reyes, May Mahmoud, Federico Bono, Sarah Nadi, Benoit Baudry, Martin Monperrus

Published 2026-02-18
📖 5 min read🧠 Deep dive

Original authors: Frank Reyes, May Mahmoud, Federico Bono, Sarah Nadi, Benoit Baudry, Martin Monperrus

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you are building a massive, intricate LEGO castle. You've spent months perfecting it, using specific bricks from a popular brand called "BlockCo."

Suddenly, BlockCo releases a new version of their bricks. They didn't just add new colors; they changed the shape of the connectors. The round pegs you used to snap into square holes are now square pegs that don't fit anywhere. Your castle, which was perfect yesterday, is now a pile of falling bricks.

In the software world, this is called a Breaking Dependency Update. Developers rely on "libraries" (like BlockCo) to build their apps. When these libraries update, they sometimes change the rules so drastically that the code built on top of them crashes.

Fixing this manually is like trying to re-snap thousands of LEGO bricks by hand, one by one, while reading a 500-page manual of changes. It's tedious, boring, and error-prone.

Enter "Byam": The Super-Intelligent LEGO Repair Robot

This paper introduces Byam, a new tool that uses Large Language Models (LLMs)—think of them as super-smart, well-read robots—to automatically fix these broken LEGO castles.

Here is how Byam works, broken down into simple steps:

1. The Detective Work (Step 1)

When the castle collapses, Byam doesn't just guess. It acts like a detective:

  • It reads the crash report: It looks at the error message (the "screaming" of the computer).
  • It finds the culprit: It locates the exact line of code where the round peg tried to fit into a square hole.
  • It checks the manual: It compares the old BlockCo manual with the new one to see exactly what changed (e.g., "The peg is now square," or "This brick was removed entirely").

2. The Brainstorming Session (Step 2)

This is where the magic happens. Byam doesn't just ask the robot, "Fix this." That's like asking a mechanic, "My car is broken, fix it," without telling them what's wrong.

Instead, Byam gives the robot a super-detailed instruction sheet (called a "Prompt"). This sheet includes:

  • The Error: "The car won't start."
  • The Exact Spot: "The spark plug in cylinder 3 is missing."
  • The Manual Changes: "The new engine uses a different type of spark plug."
  • A Step-by-Step Plan (Chain of Thought): "First, identify the old plug. Second, find the new compatible plug. Third, swap them. Fourth, check if the wires fit."

The paper tested five different "robots" (AI models) and eight different ways of writing these instruction sheets. They found that the best results came from using the smartest robot (o3-mini) and giving it the most detailed instructions, including the step-by-step plan.

3. The Test Drive (Step 3)

Once the robot suggests a fix, Byam swaps the old code with the new code and tries to build the castle again.

  • Success: The castle stands tall!
  • Partial Success: The castle is mostly standing, but a few bricks are still loose. (This is actually very helpful! It means the developer only has to fix a tiny bit of work).
  • New Problems: Sometimes, the robot tries to fix one thing but accidentally breaks something else. The paper found that the best robots rarely do this, but it's a risk to watch out for.

What Did They Find?

The researchers tested this on 103 real-world software projects that had broken. Here are the results:

  • The Magic Number: The best setup fixed 27% of the broken projects completely. That means the computer fixed the problem, and the software ran perfectly without a human touching it.
  • The "Almost" Success: Even when it couldn't fix the whole project, it fixed 78% of the individual errors. Imagine a broken car with 10 broken parts; the robot fixed 8 of them. The human mechanic only has to fix the last 2. That saves a huge amount of time!
  • The Secret Sauce: The robot worked best when it was told exactly which line was broken and given a list of the changes in the library (the "API Diff"). It also worked better when asked to "think step-by-step" before answering.

Why Does This Matter?

Think of software updates like a city constantly renovating its roads. Sometimes, a road is closed, and the traffic signs change. If you don't update your GPS, you crash.

Currently, developers have to manually update their GPS every time the city changes a road. It's slow, and many people just stop updating, leaving their software old and vulnerable to hackers.

Byam is like an autonomous GPS update system. It watches the city, sees the road changes, and automatically reroutes your car so you don't crash.

The Bottom Line

This paper proves that AI is getting good enough to be a "Junior Developer" for fixing broken code. It won't replace human developers yet (it still makes mistakes and sometimes needs a human to finish the job), but it can do the heavy lifting.

Instead of spending days fixing broken updates, developers can let Byam do 78% of the work, leaving them to focus on the creative, complex parts of building software. It's the difference between manually sorting a pile of mixed LEGOs and having a robot sort 80% of them for you.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →