AI Engineer Summit 2023
The Code AI Maturity Model and What It Means For You
Read the talk
The Levels of Code AI: From Completion to Production Autonomy
Sourcegraph’s six-level framework tracks how coding assistants gain context, initiate work, and take responsibility for software from implementation through deployment.
From a talk by Ado Kukic
Before you start: Familiarity with code completion, application libraries, and pull-request review will help you follow the examples.
Who does the work when software builds software?
When software can build software, what remains the developer’s responsibility? Writing a function, reviewing a proposed change, and validating a finished product are different kinds of work. A useful maturity model needs to distinguish them—not simply count how much code an assistant generates. Ado Kukic, Sourcegraph’s director of Developer Relations, introduces the Levels of Code AI as a framework originally used internally to educate customers and guide the company’s thinking. He positions Cody as an assistant that knows the entire codebase, describing that capability as unique to Sourcegraph’s product. The framework became a starting point for discussion with the broader community at the AI Engineer Summit.
Kukic defines Code AI as software that builds software. In this 2023 presentation, he reports that 92% of developers use Code AI tools, compared with 1% a year earlier. The contemporary survey behind a similar 92% headline covered 500 U.S. developers at large employers and measured self-reported use at work or personally; it does not establish worldwide adoption or the 1% baseline. Kukic also relays Sourcegraph CEO Quinn Slack’s prediction that AI would write 99% of code within five years. That is a forecast from the talk’s historical context, not a measured result.
The framework divides six levels into three broad categories:
- Human-initiated code: humans remain the primary coders, with AI assisting their work.
- AI-initiated code: AI begins taking a proactive role in software development.
- AI-led code: AI has full autonomy over a codebase.
The progression concerns both capability and responsibility: what the assistant can produce, what starts its work, and where a human must remain involved. Kukic uses the SAE levels of vehicle automation as a recurring analogy for these changes in control.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Levels 0–1: From manual coding to completion
Level 0 starts with the developer doing all the coding. Writing, testing, and debugging are human responsibilities. An IDE may offer symbol-name completion, but AI neither generates nor modifies the codebase. This is the traditional development workflow before AI assistance. In the driving analogy, the human handles acceleration, steering, braking, and everything else.
At level 1, the developer supplies intent and AI fills in code. Suggestions may be a single line or an entire block. For example, a developer writes a function signature, and the assistant infers an implementation from it. Kukic describes training on millions of lines of open-source code as the foundation for these completions: the assistant draws on broad programming knowledge, guided by what the developer is currently writing.
The corresponding driving assistance is cruise control or lane centering. These features make a task easier while still requiring the driver’s full attention. Likewise, a completion helps with implementation without taking over responsibility for the development workflow.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Level 2: Suggestions that fit the codebase
At level 2, the assistant gains specific context about the codebase it is working in. Broad programming knowledge can suggest a plausible implementation; repository context helps it choose an implementation that belongs in this application.
Kukic’s example is a Node.js application that already uses Axios for HTTP requests. An assistant with that context should suggest Axios, rather than introducing Fetch or SuperAgent. The distinction is not whether those alternatives can make an HTTP request. It is whether the suggestion follows the application’s existing library choice.
For a concrete JavaScript illustration, suppose the developer needs a function that retrieves a user record. A completion consistent with the Axios example could be:
javascript
import axios from "axios";
export async function getUser(baseUrl, userId) {
const url = new URL(`/users/${encodeURIComponent(userId)}`, baseUrl);
const response = await axios.get(url.href);
return response.data;
}
The user endpoint gives the example a specific task; the source-grounded distinction is the choice of HTTP client. The assistant uses knowledge of the repository to narrow the implementation it proposes.
Kukic pairs this with partial driving automation: traffic-aware cruise control or automatic lane changes can perform more of the immediate work, but the human remains in control and can override the vehicle. More context improves the assistance without removing human authority.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Level 3: Requirements become integrated components
At level 3, the input becomes a high-level requirement, and the output becomes a code-based solution. The assistant moves beyond individual snippets to complete components and integrations with other software. Kukic’s example is adding user authentication to an application: the developer requests the capability, and the assistant generates the required code.
The assistant then explains what it wrote, how the implementation works, and how it integrates with the rest of the application. This explanation matters because the developer is now evaluating a larger solution than a completion inside a function. In the driving analogy, level 3 is where the vehicle takes the primary driving role, with the human available as a fallback. If the vehicle encounters a task it cannot perform safely or adequately, it hands control back.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Level 4: Proactive work, reviewed as pull requests
Level 4 changes who initiates the work. The assistant can proactively handle coding tasks without a developer supervising their execution. Kukic proposes two background workflows:
- Documentation maintenance: monitor code changes continuously and submit pull requests that keep documentation current.
- Bug fixing: monitor customer bug reports and submit pull requests addressing the reported issues.
These are proposed capabilities of the level, rather than a live demonstration of either workflow.
The developer can then review and merge the pull requests. That boundary makes the meaning of autonomy precise: the assistant independently identifies and carries out a task, while the proposed changes still pass through a human merge decision. Autonomous task execution does not, in this example, imply autonomous release.
The driving comparison is automation under specific operating conditions. Kukic points to Waymo’s driverless taxis, describing service in cities with high-quality mapping data. Within the service’s operating area and availability, a passenger hails a vehicle through an app and provides a destination; the vehicle completes the trip without further human driving input. The analogy illustrates independence within a bounded setting, rather than the ability to operate everywhere.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Level 5: From concept to production
At level 5, the assistant handles the entire software development life cycle with minimal human guidance on code generation. The developer supplies high-level requirements and specifications. The AI designs the architecture, writes production-quality code, handles deployment, and continuously improves the codebase. Deployment and ongoing improvement are part of the level’s definition, not tasks left outside the assistant’s remit.
The developer’s remaining responsibility is to validate that the end product meets the stated requirements. That validation need not involve examining the generated code. The shift is from approving implementation changes to accepting the resulting product, while the assistant has autonomy to take code from concept to production.
Kukic completes the analogy with a level 5 vehicle that performs all driving tasks under all conditions, with humans optional. In his framing, neither a steering wheel nor a human override is necessary: the vehicle makes the decisions. This is the conceptual endpoint of the presentation’s autonomy comparison.
The six levels are offered as Sourcegraph’s working framework, open to agreement and disagreement. Kukic closes by inviting discussion at Booth G5 and encouraging attendees to install Cody in their IDE through the then-current cody.dev invitation. The framework leaves a concrete question for that discussion: as an assistant gains responsibility, should the developer be writing the implementation, reviewing its changes, or validating the product it delivers?
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
Further reading
Waymo's contemporary account of driverless service and its gradual commercial expansion in San Francisco.
Updates since the talk
Current guidance for Cody's codebase context, supported IDEs, and Sourcegraph Enterprise integration.
Read the complete timestamped transcript
- 0:00
[on hold music] Hello, and welcome to my talk on how we're thinking about the Levels of Code AI.
- 0:20
My name is Ado Kukic, and I am the director of DevRel at Sourcegraph. At Sourcegraph, we're building Cody, the only AI coding assistant that knows your entire codebase. To help educate our customers and users, as well as shape our thinking of Code AI, we've been using a concept that we call Levels of Code AI internally.
- 0:44
These levels have really resonated with our community, so we wanted to publicize them and start a conversation with the broader developer community, and where better to do it than at the AI Engineer Summit.
- 0:56
When we talk about Code AI, we refer to software that builds software. Today, ninety-two percent of developers are using Code AI tools, whereas this number was just one percent a year ago.
- 1:11
Our founder and CEO, Quinn Slack, has shared a bold prediction that in five years, ninety-nine percent of code will be written by AI. While we await that future, let's talk about how we see the Levels of Code AI today.
- 1:27
We see six distinct levels across three different categories. Human-initiated, where humans are the primary coders; AI-initiated, where AI starts to take a proactive role in software development; and AI-led code, where AI has full autonomy over a codebase.
- 1:47
We'll contrast these levels of code with the SAE levels of autonomy for vehicles. Let's dive in.
- 1:54
At level zero, the developer writes all code manually without any AI assistance. The developer is responsible for writing, testing, and debugging a codebase. AI does not generate or modify any part of the codebase, but IDE features like symbol name completion can provide a bit of assistance.
- 2:15
This level reflects the traditional software development process before introducing any AI assistance into the development workflow.
- 2:25
A vehicle operating at level zero is fully reliant on the human driver for acceleration, steering, braking, and everything in between. At level one, the developer begins to use AI that can generate single lines or whole blocks of code based on developer intent.
- 2:42
For example, a developer might write the signature of a function, and the AI will infer the context and generate the implementation details for said function. At level one, the AI assistant has been trained on millions of lines of open source code and can leverage this to provide superior completions based on the developer's guidance.
- 3:05
SAE level one vehicles still require the full attention of the human driver, but offer features such as cruise control or lane centering that make driving an easier, safer, and more comfortable experience.
- 3:20
At level two, the AI coding assistant has superior understanding and context of the codebase it is interacting with. Where at level one the context is broad and general, a level two AI coding assistant has specific context about the codebase that it is working in.
- 3:38
This allows the AI assistant to make better suggestions for code completions. For example, if you were working in a Node.js codebase and were using the Axiom library to handle HTTP requests, a level two AI assistant would provide autocomplete suggestions based on the Axiom library, as opposed to a different node HTTP library like Fetch or Super Agent.
- 4:02
At SAE level two, we get partial automation. The human driver is still in control and can override anything the car does at any time, but features such as traffic-aware cruise control or automatic lane changes can make driving a much smoother experience.
- 4:18
At level three, the developer provides high-level requirements, and the AI assistant delivers a code-based solution. The AI coding assistant goes beyond generating singular snippets of code to building out full components and even integrations with other pieces of software.
- 4:36
Rather than writing the code themselves, a developer could instruct a level three code AI assistant to add a user authentication to an application that they are building, and the coding assistant would generate all of the code required.
- 4:50
The coding assistant could then explain to the developer the code it wrote, how it works, and how it integrates with the rest of the application. SAE level three is also the first level where the vehicle itself takes on the primary role of driving, with the human driver being a fallback in case the vehicle cannot drive itself safely.
- 5:09
The vehicle can perform most of the driving tasks, but may encounter situations where it cannot adequately perform these tasks, so it's forced to give control back to the human driver.
- 5:20
At level four, the code AI assistant can proactively handle coding tasks without developer oversight. Let's imagine a few scenarios where a level four code AI assistant would play a role.
- 5:33
A level four capable code AI assistant could continuously monitor your code changes and autonomously submit PRs to ensure your documentation stays up to date. Even better, the coding assistant could monitor bug reports from customers and submit PRs to fix the issues.
- 5:51
The human developer could then simply review the pull requests and merge them.
- 5:57
Level four SAE vehicles can perform virtually all driving tasks under specific conditions. For example, Waymo operates a fleet of fully automated self-driving taxis in cities where they have high-quality mapping data and can provide a safe driving experience for passengers without human drivers.
- 6:17
A customer simply hails a Waymo taxi using a mobile app, provides a destination, and the vehicle is responsible for taking the passenger to their final destination without any additional human input.
- 6:31
At level five, the AI assistant requires minimal human guidance on code generation and is capable of handling the entire software development life cycle. The developer provides high-level requirements and specifications.
- 6:45
The AI then designs the architecture, writes production quality code, handles deployment, and continuously improves the codebase.
- 6:55
The developer's role is to validate that the end product meets the stated requirements, but the developer does not necessarily look at the generated code.
- 7:04
The code AI assistant has complete autonomy to take code from concept to production.
- 7:11
A self-driving car capable of level five driving automation can perform all driving tasks under all conditions, humans optional. The car is responsible for making all the decisions. At this level, a steering wheel or any ability for a human to override the car is unnecessary.
- 7:31
So there you have it. The six levels of Code AI, or at least how we're thinking about them at Sourcegraph. Do you agree? Disagree? We'd love to hear your thoughts.
- 7:41
Find us at Booth G5 and let's chat. And if you'd like to try Cody for yourself, get it for your IDE of choice at cody.dev. Thank you, and I'll see you on the show floor. [outro music]