Help us learn about your current experience with the documentation. Take the survey.

GitLab Duo 智能代理聊天

  • 层级:Premium, Ultimate
  • 附加组件:GitLab Duo Core, Pro, 或 Enterprise
  • 提供方式:GitLab.com, GitLab 自托管, GitLab 专用
  • 状态:Beta
  • 大语言模型:Anthropic [Claude Sonnet 4](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)
  • 在使用自托管模型的 GitLab Duo 上可用:不支持

此功能的可用性由功能标志控制。 有关更多信息,请参阅历史记录。

GitLab Duo 智能代理聊天是 GitLab Duo 聊天的增强版本,可自主代表您执行操作,以更全面地回答复杂问题。

虽然普通聊天基于单一上下文回答问题,但智能代理聊天会在您的 GitLab 项目中跨多个来源搜索、检索并整合信息,提供更详尽且相关的答案。智能代理聊天还可以为您创建和编辑文件。

“智能代理”意味着智能代理聊天:

  • 自主使用大语言模型来确定所需信息。
  • 执行一系列操作来收集该信息。
  • 为您的问题制定回应。
  • 可以创建和更改本地文件。

对于更大的问题(例如理解代码库或生成实施计划),请使用GitLab Duo 代理平台的软件开发流程

概览请参见 GitLab Duo 智能代理聊天

使用智能代理聊天

您可以在以下位置使用智能代理聊天:

  • GitLab UI。
  • VS Code。
  • JetBrains IDE。
  • Windows 版 Visual Studio。

前提条件:

  • GitLab Duo Core、Pro 或 Enterprise 附加组件。
  • Premium 或 Ultimate 订阅。
  • 您拥有分配的席位或对 GitLab Duo 聊天的访问权限。
  • 您已为您的 GitLab 实例或组开启了测试版和实验性功能

在 GitLab UI 中使用智能代理聊天

要在 GitLab UI 中使用智能代理聊天:

  1. 前往符合前提条件的组的某个项目。
  2. 在右上角,选择 GitLab Duo 聊天。屏幕右侧会打开一个抽屉式面板。
  3. 在聊天文本框下方,开启 智能代理模式(测试版) 切换开关。
  4. 在聊天文本框中输入您的问题,然后按 Enter 键或选择 发送。交互式 AI 聊天可能需要几秒钟才能生成答案。
  5. 可选步骤。提出后续问题。

在 VS Code 中使用智能代理聊天

前提条件:

您只能在满足以下条件的项目中使用智能代理聊天:

  • 托管在 GitLab 实例上。
  • 属于符合前提条件的组。

要使用智能代理聊天:

  1. 在 VS Code 中,前往 设置 > 设置
  2. 搜索 agent platform
  3. Gitlab › Duo 代理平台:已启用 下,选中 启用 GitLab Duo 代理平台 复选框。
  4. 在左侧边栏中,选择 GitLab Duo 代理平台(测试版) ( duo-agentic-chat )。
  5. 选择 聊天 标签页。
  6. 如果出现提示,选择 刷新页面
  7. 在消息框中输入您的问题,然后按 Enter 键或选择 发送

智能代理聊天的对话不会过期,并且永久存储。您无法删除这些对话。

在 JetBrains IDE 中使用 Agentic Chat

前提条件:

要在项目中使用 Agentic Chat,项目必须满足:

  • 托管在 GitLab 实例上。
  • 属于满足前提条件的群组。

要使用 Agentic Chat:

  1. 在您的 JetBrains IDE 中,转到 设置 > 工具 > GitLab Duo
  2. GitLab Duo Agent Platform (Beta) 下,选中 启用 GitLab Duo Agent Platform 复选框。
  3. 如果提示,重启您的 IDE。
  4. 在左侧边栏中,选择 GitLab Duo Agent Platform (Beta) duo-agentic-chat )。
  5. 选择 聊天 标签页。
  6. 在消息框中输入您的问题,然后按 Enter 键或选择 发送

Agentic Chat 中的对话不会过期,会永久存储。您无法删除这些对话。

在 Visual Studio 中使用 Agentic Chat

前提条件:

要在项目中使用 Agentic Chat,项目必须满足:

  • 托管在 GitLab 实例上。
  • 属于满足前提条件的群组。

要使用 Agentic Chat:

  1. 在 Visual Studio 中,转到 工具 > 选项 > GitLab
  2. GitLab 下,选择 常规
  3. 对于 启用 Agentic Duo 聊天(实验性),选择 True,然后点击 确定
  4. 选择 扩展 > GitLab > 打开 Agentic Chat
  5. 在消息框中输入您的问题,然后按 Enter 键。

拥有多个对话

您可以与 Agentic Chat 进行无限数量的并行对话。

您的对话会在 GitLab UI 和您的 IDE 中的 Agentic Chat 之间同步:

  • 在 GitLab UI 中,您 Agentic Chat 历史记录中的所有对话均可见。
  • 在您的 IDE 中,最近 20 个对话可见。问题 1308 建议更改此设置。

要管理您的对话并查看 Agentic Chat 历史记录:

  1. 在 GitLab UI 或您的 IDE 中打开 Agentic Chat。

  2. 输入您的问题,然后按 Enter 键或选择 发送

  3. 创建新的 Agentic Chat 对话:

    • 在 GitLab UI 中:在抽屉右上角,选择 新建聊天 duo-chat-new )。
    • 在您的 IDE 中:在消息框右上角,选择 新建聊天 plus )。
  4. 输入您的问题,然后按 Enter 键或选择 发送

  5. 要查看您的 Agentic Chat 历史记录:

    • 在 GitLab UI 中:在聊天抽屉的右上角,选择 聊天历史记录 history )。
    • 在您的 IDE 中:在消息框的右上角,选择 聊天历史记录 history )。
  6. 要在对话间切换,请在您的 Agentic Chat 历史记录中选择相应的对话。

  7. 仅限 IDE:要在聊天历史记录中搜索,请在 搜索聊天 文本框中输入您的搜索词。

对话内容的截断

由于 LLM 上下文窗口限制,对话会被截断至 200,000 个令牌(约 800,000 个字符)。

创建自定义规则

在 VS Code 或 JetBrains IDE 中,如果您希望 Agentic Chat 在每次对话中都遵循特定指令,可以创建自定义规则。

前提条件:

在您创建任何自定义规则之前存在的对话不会遵循这些规则。

  1. 在您的 IDE 工作区中,创建一个自定义规则文件:.gitlab/duo/chat-rules.md

  2. 将自定义规则输入到该文件中。例如:

    - 不要在生成的代码中添加注释
    - 解释要简洁
    - JavaScript 字符串始终使用单引号
  3. 保存文件。

  4. 要让 Agentic Chat 遵循新的自定义规则,请开始新对话,或使用 /clear 清除现有对话。

    每次修改自定义规则时都必须执行此操作。

智能代理聊天功能

智能代理聊天通过以下功能扩展了聊天能力:

  • 项目搜索:可通过关键词搜索在项目中查找相关问题、合并请求及其他工件。智能代理聊天不具备语义搜索能力。
  • 文件访问:可在本地项目中读取和列出文件,无需手动指定文件路径。
  • 创建和编辑文件:可创建文件并在多个位置编辑多个文件。这将影响本地文件。
  • 资源检索:可自动获取当前项目的有关问题、合并请求及流水线日志的详细信息。
  • 多源分析:可将来自多个来源的信息结合,为复杂问题提供更完整的答案。你可使用模型上下文协议将智能代理聊天连接到外部数据源和工具。
  • 自定义规则:对话可遵循你指定的任意自定义规则。
  • 仅在 GitLab UI 中的智能代理聊天 - 提交创建:可创建并推送提交。

聊天功能对比

功能 聊天 代理式聊天
询问通用编程问题
获取关于编辑器中当前打开文件的答案 是。在您的问题中提供文件的路径。
提供指定文件的相关上下文 是。使用 /include 将文件添加到对话中。 是。在您的问题中提供文件的路径。
自动搜索项目内容
自动创建和修改文件 是。让它修改文件。注意,它可能会覆盖您手动进行但尚未提交的更改。
无需指定ID即可检索问题和合并请求(MR) 是。通过其他条件搜索。例如,合并请求或问题的标题或指派人。
整合来自多个来源的信息
分析流水线日志 是。需要Duo Enterprise附加组件。
重启对话 是。使用 /reset 是。使用 /reset
删除对话 是。使用 /clear
创建问题和合并请求
使用Git 是,仅限IDE
运行Shell命令 是,仅限IDE
运行MCP工具 是,仅限IDE

用例

当您遇到以下情况时,代理式聊天可能特别有用:

  • 需要整合来自多个文件或GitLab资源的答案时。
  • 想在不指定确切文件路径的情况下询问代码库相关问题。
  • 尝试了解项目中问题和合并请求的状态。
  • 希望有文件为您创建或编辑。

示例提示

Agentic Chat 在处理自然语言问题时效果最佳。以下是一些示例:

  • 阅读项目结构并解释给我听,或 解释这个项目
  • 在此代码库中找到处理用户认证的API端点
  • 请解释 <应用名称> 的授权流程
  • 如何在此仓库中添加GraphQL突变?
  • 展示我们应用程序中错误处理的实现方式
  • 组件 <组件名称> 有用于 <x> 和 <y> 的方法。能否将其拆分为两个组件?
  • 能否为 <目录> 中所有的Java文件添加内联文档?
  • 合并请求 <MR URL> 和合并请求 <MR URL> 是否完全解决了此问题 <issue URL>?

故障排除

使用 Agentic Chat 时,您可能会遇到以下问题。

网络连接问题

由于 Agentic Chat 需要网络访问来获取资源,网络限制可能会影响其功能。

若要帮助解决 Agentic Chat 的网络问题,请参阅 GitLab Duo Agent Platform 网络问题故障排除文档

Agentic Chat 未在IDE中显示

您可能会发现 Agentic Chat 在您的IDE中不可见。若要解决此问题,请确保:

  1. 您已在 VS CodeJetBrains IDE 设置中启用了 Agentic Chat。
  2. 您的IDE工作区中打开了一个项目,且该 项目已连接到GitLab项目
  3. GitLab项目位于组命名空间中
  4. 您拥有Premium或Ultimate订阅。
  5. 已启用GitLab Duo
  6. 对于GitLab.com上的顶级组或GitLab自托管实例,您的 GitLab Duo实验性和测试版功能已开启。如有必要,请联系管理员。

响应时间慢

Agentic Chat 处理请求时存在显著延迟。

此问题是由于 Agentic Chat 需要进行多次API调用以收集信息,因此响应通常比Chat长得多。

权限有限

Agentic Chat 只能访问您的GitLab用户有权限访问的资源,这与Chat相同。

搜索限制

Agentic Chat 使用基于关键词的搜索而非语义搜索。这意味着 Agentic Chat 可能会遗漏不包含搜索所用确切关键词的相关内容。

反馈

由于这是测试版功能,您的反馈对我们改进它很有价值。请在 issue 542198 中分享您的经验、建议或问题。

相关主题