Skip to content

Agent flows

  • Tier: Premium, Ultimate
  • Add-on: GitLab Duo Core, Pro, or Enterprise
  • Offering: GitLab.com, GitLab Self-Managed
  • Status: Experiment
  • LLM: Anthropic Claude Sonnet 4

Version history

The availability of this feature is controlled by a feature flag. For more information, see the history.

The software development flow is the first flow that's available in the VS Code IDE. Formerly known as GitLab Duo Workflow, the software development flow:

  • Runs in your IDE so that you do not have to switch contexts or tools.
  • Creates and works through a plan, in response to your prompt.
  • Stages proposed changes in your project's repository. You control when to accept, modify, or reject the suggestions.
  • Understands the context of your project structure, codebase, and history. You can also add your own context, such as relevant GitLab issues or merge requests.

Prerequisites

Before you can use the software development flow in Visual Studio Code (VS Code), you must:

Step 1: Configure your GitLab environment

For GitLab.com

For GitLab Self-Managed

Step 2: Set up your local development environment

Connect to your repository

To use the software development flow in VS Code, ensure your repository is properly connected.

  1. In VS Code, on the top menu, select Terminal > New Terminal.

  2. Clone your repository: git clone <repository>.

  3. Change to the directory where your repository was cloned and check out your branch: git checkout <branch_name>.

  4. Ensure your project is selected:

    1. On the left sidebar, select GitLab Workflow ({tanuki}).
    2. Select the project name. If you have multiple projects, select the one you want to work with.
  5. In the terminal, ensure your repository is configured with a remote: git remote -v. The results should look similar to:

    origin  git@gitlab.com:gitlab-org/gitlab.git (fetch)
    origin  git@gitlab.com:gitlab-org/gitlab.git (push)

    If no remote is defined, or you have multiple remotes:

    1. On the left sidebar, select Source Control ({branch}).
    2. On the Source Control label, right-click and select Repositories.
    3. Next to your repository, select the ellipsis (), then Remote > Add Remote.
    4. Select Add remote from GitLab.
    5. Choose a remote.

Now you can use the software development flow to help solve your coding tasks.

Use the software development flow in VS Code

The software development flow is one flow in the Agent Platform.

To use the software development flow:

  1. On the left sidebar, select GitLab Duo Agent Platform.
  2. In the text box, specify a code task in detail.
    • The software development flow is aware of all files available to Git in the project branch. You can also give additional context.
    • The software development flow cannot access external sources or the web.
  3. Select Start.

After you describe your task, a plan is generated and executed. You can pause or ask it to adjust the plan.

The context the software development flow is aware of

When you ask for help with a task, the software development flow refers to files available to Git in the current branch of the project in your VS Code workspace.

You can also provide it with additional context.

Area Enter Examples
Local files The file with path. • Summarize the file src/main.js
• Review the code in app/models/
• List all JavaScript files in the project
Epics Either:
• The URL of the group or epic.
• The epic ID and the name of the group the epic is in.
Examples:
• List all epics in https://gitlab.com/groups/namespace/group
• Summarize the epic: https://gitlab.com/groups/namespace/group/-/epics/42
Summarize epic 42 in group namespace/group
Issues Either:
• The URL of the project or issue.
• The issue ID in the current or another project.
Examples:
• List all issues in the project at https://gitlab.com/namespace/project
• Summarize the issue at https://gitlab.com/namespace/project/-/issues/103
• Review the comment with ID 42 in https://gitlab.com/namespace/project/-/issues/103
• List all comments on the issue at https://gitlab.com/namespace/project/-/issues/103
• Summarize issue 103 in this project
Merge requests Either:
• The URL of the merge request.
• The merge request ID in the current or another project.
• Summarize https://gitlab.com/namespace/project/-/merge_requests/103
• Review the diffs in https://gitlab.com/namespace/project/-/merge_requests/103
• Summarize the comments on https://gitlab.com/namespace/project/-/merge_requests/103
• Summarize merge request 103 in this project
Merge request pipelines The merge request ID in the current or another project. • Review the failures in merge request 12345
• Can you identify the cause of the error in the merge request 54321 in project gitlab-org/gitlab-qa
• Suggest a solution to the pipeline failure in https://gitlab.com/namespace/project/-/merge_requests/54321

The software development flow also has access to the GitLab Search API to find related issues or merge requests.

Supported languages

The software development flow officially supports the following languages:

  • CSS
  • Go
  • HTML
  • Java
  • JavaScript
  • Markdown
  • Python
  • Ruby
  • TypeScript

APIs that the software development flow has access to

To create solutions and understand the context of the problem, the software development flow accesses several GitLab APIs.

Specifically, an OAuth token with the ai_workflows scope has access to the following APIs:

Audit log

An audit event is created for each API request done by the software development flow. On your GitLab Self-Managed instance, you can view these events on the instance audit events page.

Risks

The software development flow is an experimental product and users should consider their circumstances before using this tool. It is subject to the GitLab Testing Agreement. The software development flow is an AI agent that is given some ability to perform actions on the user's behalf. AI tools based on LLMs are inherently unpredictable and you should take appropriate precautions.

The software development flow in VS Code runs workflows on your local workstation. All the documented risks should be considered before using this product. The following risks are important to understand:

  1. The software development flow has access to the local file system of the project where you started running it. The software development flow respects your local .gitignore file, but it can still access files that are not committed to the project and not called out in .gitignore. Such files can contain credentials (for example, .env files).
  2. The software development flow also gets access to a time-limited ai_workflows scoped GitLab OAuth token with your user's identity. This token can be used to access GitLab APIs on your behalf. This token is limited to the duration of the workflow and only has access to certain APIs in GitLab. Without user approval, the software development flow will only perform read operations but the token can still, by design, perform write operations on the users behalf. You should consider the access your user has in GitLab before running the software development flow.
  3. You should not give the software development flow any additional credentials or secrets, in goals or messages, as there is a chance it might end up using those in code or other API calls.

Give feedback

The software development flow is an experiment and your feedback is crucial to improve it for you and others. To report issues or suggest improvements, complete this survey.