AB
AiBoss
Tutorials

Duo Chat

Tutorials

在 GitLab Duo Chat 中完成代码解释、重构与测试生成

面向使用 GitLab Duo Chat 的开发者,说明如何在 GitLab 网页界面、Web IDE 与 VS Code、JetBrains、Visual Studio、Eclipse 等编辑器中开启非 Agent 模式对话,用斜杠命令解释代码、修复问题、生成测试与重构,并管理会话历史、上下文与令牌上限。

GitLab Duo Chat 是一个嵌入在 GitLab 界面与主流 IDE 中的对话式 AI 助手,用来解释代码、提出改进建议、生成代码与测试、撰写文档,也能围绕合并请求、议题等项目产物回答问题。它属于非 Agent 模式:由你发起提问,它给出回答,不会自行在仓库里连续执行多步操作。适合已经使用 GitLab 管理代码、希望在写代码的位置直接获得解释与改写建议的开发者。本文按实际操作顺序,讲清在哪些环境里能打开它、怎样把代码作为上下文送进去、常用斜杠命令怎么用,以及会话历史与长度限制这些容易踩坑的地方。如果你更习惯在浏览器里集中处理一批文本任务,也可以配合站内的 Duo Chat 页面使用。

准备工作

开始之前需要确认三件事:账号权限、部署版本、以及你打算在哪个环境里使用。

  • 订阅与附加组件:GitLab Duo Chat 属于专业版、旗舰版层级的功能,需要配合 Duo Pro 或 Duo Enterprise 附加组件使用;在 JihuLab.com 与私有化部署上均可使用。具体可用范围与计费方式以官网当前信息为准。
  • Duo 功能已开启:账号必须拥有 Chat 的访问权限,并且实例上的 GitLab Duo 已启用。若在企业实例上使用,通常由管理员统一开启。
  • 私有化部署版本:建议使用 17.2 及更高版本,以获得较好的体验与结果。更早的版本可能仍能运行,但效果可能下降。多会话并行需要 17.10 及以上版本;自部署模型能力需要 17.9 及以上版本。
  • 编辑器扩展:若要在 IDE 中使用,需要先安装并配置对应扩展——VS Code 用 GitLab for VS Code 扩展,Visual Studio 用 GitLab for Visual Studio 扩展,JetBrains 系列用 GitLab Duo 插件,Eclipse 用 GitLab for Eclipse 插件。

另外要注意一个访问权限变化:自 2026 年 5 月 21 日起,Duo Core 用户在所有 GitLab 版本上都无法再访问非 Agent 模式的 Duo Chat。这类用户的可选路径是改用 Duo Agent 平台中的 Agentic Chat,或购买 Duo Pro / Duo Enterprise。若此前在 Web IDE 或 Eclipse 中使用非 Agent 模式 Chat,需要换用其他 IDE 或升级订阅。

支持的使用环境

可以直接在 GitLab 网页界面和 GitLab Web IDE(云端 VS Code)中使用;安装扩展后,还可在 VS Code、JetBrains IDE、Eclipse、Visual Studio 中使用。不同环境的入口与快捷键略有差异,下面分环境说明。

操作步骤

第一步:在 GitLab 网页界面中打开 Chat

先决条件是账号有 Chat 访问权限、Duo 已开启,并且当前所处页面支持 Chat。私有化部署上,以下位置不可用:工作类页面(例如待办事项列表)、用户设置页面、帮助菜单。

  1. 在顶部栏选择「搜索或跳转到」,找到目标项目。
  2. 在 GitLab Duo 边栏中,选择「新建 GitLab Duo Chat」或「当前 GitLab Duo Chat」。
  3. 对话会在屏幕右侧的 Duo 边栏中打开。
  4. 在 Chat 文本框下方,关闭 Agentic 开关——这是使用非 Agent 模式的关键一步。
  5. 在消息框中输入问题,按 Enter 或选择「发送」。

交互式回答通常需要几秒钟生成。得到回答后可以继续追问,也可以另起一个对话。若要问一个全新的、与上文无关的问题,输入 /reset 并发送,以清除上下文。

第二步:为提问补充上下文

Chat 可以感知代码仓库与项目中的信息,从而给出更有针对性的建议。在网页界面中,可以为聊天提供额外的上下文;在 IDE 中,最直接的方式是先在编辑器里选中一段代码再提问,选中的内容会随问题一起发送。例如选中一段实现后问:Can you simplify this?,回答就会围绕这段代码展开。

第三步:用斜杠命令快速触发常见任务

在消息框中输入 / 会列出所有可用命令;输入 /re 会筛选出 /refactor 与 /reset。常用命令包括解释代码、修复、生成测试、重构。回答中的代码块通常带有操作按钮,可以直接复制代码片段或插入到当前文件。

第四步:在 Web IDE 中使用

  1. 在 GitLab 顶部栏选择「搜索或跳转到」,找到项目并选中一个文件。
  2. 在右上角选择「编辑 > 在 Web IDE 中打开」。
  3. 用以下任一方式打开 Chat:在左侧边栏选择 GitLab Duo Chat;或在编辑器中选中代码后右键,选择 GitLab Duo Chat,再选择「解释所选代码片段」「修复」「生成测试」「打开快速聊天」或「重构」。
  4. 也可以使用快捷键:Windows 或 Linux 上为 ALT + d,macOS 上为 Option + d。
  5. 在消息框输入问题,按 Enter 或选择「发送」。

第五步:在 VS Code 中使用

先安装并配置 GitLab for VS Code 扩展。

  1. 在 VS Code 中打开一个文件——该文件不必位于 Git 仓库中。
  2. 在左侧边栏选择 GitLab Duo Chat。
  3. 在消息框输入问题,按 Enter 或选择「发送」。

若要在编辑器窗口中直接唤起快速聊天:Windows 与 Linux 用 ALT + c,macOS 用 Option + c;也可以在打开的文件中右键选择「GitLab Duo Chat > 打开快速聊天」,或打开命令面板选择「GitLab Duo Chat:打开快速聊天」。快速聊天打开后,输入 / 查看命令,选择「发送」或按 Command + Enter 提交。回答的代码块上方有「复制代码片段」与「插入代码片段」链接。退出时选择装订线中的聊天图标,或在聊天获得焦点时按 Escape。

第六步:在 JetBrains IDE 中使用

先安装并配置适用于 JetBrains IDE 的 GitLab Duo 插件,然后打开一个项目。Chat 有两种形态:聊天窗口与编辑器内的快速聊天。

聊天窗口的打开方式:

  • 在右侧工具窗口栏选择「GitLab Duo Non-Agentic Chat」。
  • 使用快捷键:Windows 或 Linux 为 ALT + d,macOS 为 Option + d。
  • 在打开的文件中右键,选择「GitLab Duo Chat > 打开聊天窗口」。
  • 选中代码后右键,选择「GitLab Duo Chat」,再选择「解释代码」「修复代码」「生成测试」或「重构代码」。
  • 对高亮显示的代码问题右键,选择「显示上下文操作」,再选择「使用 Duo 修复」。

打开后输入问题,按 Enter 或选择「发送」;输入 / 查看命令,输入 /re 筛选 /refactor 与 /reset。回答中代码块内的按钮可用于交互。Duo 操作的键盘或鼠标快捷键可在「设置 > 按键映射」中调整。

编辑器内快速聊天的打开方式:使用快捷键(Windows 或 Linux 为 ALT + c,macOS 为 Option + c);或选中代码后在浮动工具栏选择「GitLab Duo Quick Chat」;或右键选择「GitLab Duo Chat > 打开快速聊天」。输入问题后按 Enter 发送,使用代码块周围的按钮与回答交互,按 Escape 退出。

第七步:在 Visual Studio 中使用

先安装并配置 GitLab for Visual Studio 扩展,然后打开一个文件(同样不必位于 Git 仓库中)。打开 Chat 的方式有两种:在顶部菜单栏选择「扩展 > 打开 Duo Chat」;或在编辑器中选中代码后右键,选择「GitLab Duo Chat」,再选择「解释所选代码」或「生成测试」。随后在消息框输入问题并发送。选中的代码会随问题一起发送,因此可以针对该段代码追问,例如 Could you refactor this?。

第八步:在 Eclipse 中使用

先安装并配置 GitLab for Eclipse 插件,然后打开一个项目。在右上角选择 GitLab Duo Chat,或使用快捷键:Windows 或 Linux 为 Alt + D,macOS 为 Option + D。在消息框输入问题,按 Enter 或选择「发送」。

第九步:检查配置诊断

如果 Chat 行为异常,可以在 Chat 窗格右上角选择「状态」,查看 Duo 配置诊断与系统设置,包括系统版本管理、功能状态管理和功能标志。这一步能快速区分是权限、版本还是功能开关的问题。

第十步:管理会话历史与多会话

在 Duo 边栏中选择「GitLab Duo Chat 聊天历史」即可查看历史。在 17.10 及更高版本中,可以同时进行数量不限的对话。新建对话有两种方式:在边栏选择「新建 GitLab Duo Chat」,或在消息框输入 /new 并发送。新对话会替换上一个对话,记得在文本框下方关闭 Agentic 开关。在聊天历史中可以在对话之间切换;在 GitLab 网页界面中,还可以在「搜索特定会话」文本框输入关键词检索。

删除对话:选择「聊天历史」,在历史记录中选择「删除该会话」。默认情况下,单个对话在 30 天无活动后过期并自动删除,管理员可以修改该期限。

第十一步(管理员):配置对话过期策略

需要管理员权限。在右上角选择「管理员」,在左侧边栏选择「GitLab Duo」,选择「更改配置」,在「GitLab Duo Chat 对话」下选择按「自对话上次更新后」或「自对话创建后」计算过期,然后选择「保存更改」。

一个完整示例

下面以 VS Code 为例,走一遍从选中代码到把重构结果写回文件的完整流程。

  1. 确认前置条件:账号具备 Duo Chat 访问权限,实例已开启 GitLab Duo,VS Code 中已安装并配置 GitLab for VS Code 扩展。
  2. 打开文件:在 VS Code 中打开任意一个源码文件,该文件不必在 Git 仓库中。
  3. 选中目标代码:在编辑器中选中一段希望简化的函数实现。
  4. 唤起快速聊天:按 ALT + c(macOS 为 Option + c),或右键选择「GitLab Duo Chat > 打开快速聊天」。
  5. 提问:在消息框输入 Can you simplify this?,按 Command + Enter 或选择「发送」。选中的代码会随问题一起发送。
  6. 查看结果:回答中的代码块上方提供「复制代码片段」与「插入代码片段」,选择插入即可把改写结果放回当前文件。
  7. 继续追问:若想换一个方向,输入 /refactor 触发重构命令;若想彻底清空上下文重新开始,输入 /reset。
  8. 退出:按 Escape 关闭快速聊天。

同样的流程在 JetBrains IDE 中对应 ALT + c / Option + c 的快速聊天,在 Web IDE 中对应 ALT + d / Option + d 的侧边栏 Chat。若在网页界面操作,则先关闭 Agentic 开关,再在消息框提问,需要重开话题时用 /reset。

注意事项

输入与输出长度上限

每个 Chat 对话都有长度限制:输入上限为 200,000 个令牌(约 680,000 个字符),其中包含 Chat 能感知的所有上下文,以及该对话中此前所有的问题与回答;输出上限为 8,192 个令牌(约 28,600 个字符)。对话越长,可用于新问题的输入空间越小,必要时用 /reset 或新建对话来释放上下文。

历史保留与上下文窗口不是一回事

每个对话会保留数量不限的消息,但为了适配模型上下文窗口,只有最近 25 条消息会发送给模型。也就是说,聊天历史里看得到的早期内容,未必参与当前回答的推理。此外,在该功能启用之前创建的对话不会显示在聊天历史中。

会话过期

默认 30 天无活动后对话自动过期删除,管理员可调整该期限。重要结论不要只留在对话里,及时复制到代码或文档中。

非 Agent 模式的边界

本文讲的是非 Agent 模式 Chat:它回答问题、生成内容,但不会自主执行多步任务。若需要 Agent 能力,应使用 Duo Agent 平台中的 Agentic Chat。在网页界面与 Web IDE 中,务必确认文本框下方的 Agentic 开关处于关闭状态,否则进入的是另一种模式。

模型来源与隐私

Chat 可由不同语言模型驱动。在 JihuLab.com 或私有化部署上,默认使用 GitLab 托管的模型与基于云的 AI 网关;在 17.9 及更高版本的私有化部署上,可使用自部署模型,从而不向外部模型发送任何内容,安全性与隐私性更高。也可以使用其他受支持的模型或自带兼容模型。具体可选模型与默认值以官网当前信息为准。

页面与版本限制

私有化部署上,工作类页面、用户设置页面、帮助菜单中无法使用 Chat。多会话并行需要 17.10 及以上版本;自部署模型需要 17.9 及以上版本;整体体验建议 17.2 及以上版本。Duo Core 用户自 2026 年 5 月 21 日起无法访问非 Agent 模式 Chat,需要改用 Agentic Chat 或升级订阅。

反馈渠道

对某条回答不满意时,可使用回答消息中的反馈按钮提交评价,帮助改进后续表现。