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 中使用智能代理聊天:
- 前往符合前提条件的组的某个项目。
- 在右上角,选择 GitLab Duo 聊天。屏幕右侧会打开一个抽屉式面板。
- 在聊天文本框下方,开启 智能代理模式(测试版) 切换开关。
- 在聊天文本框中输入您的问题,然后按 Enter 键或选择 发送。交互式 AI 聊天可能需要几秒钟才能生成答案。
- 可选步骤。提出后续问题。
在 VS Code 中使用智能代理聊天
前提条件:
- 您已安装并配置了 VS Code 的 GitLab Workflow 扩展,版本为 6.15.1 或更高。
您只能在满足以下条件的项目中使用智能代理聊天:
- 托管在 GitLab 实例上。
- 属于符合前提条件的组。
要使用智能代理聊天:
- 在 VS Code 中,前往 设置 > 设置。
- 搜索
agent platform。 - 在 Gitlab › Duo 代理平台:已启用 下,选中 启用 GitLab Duo 代理平台 复选框。
- 在左侧边栏中,选择 GitLab Duo 代理平台(测试版) ( )。
- 选择 聊天 标签页。
- 如果出现提示,选择 刷新页面。
- 在消息框中输入您的问题,然后按 Enter 键或选择 发送。
智能代理聊天的对话不会过期,并且永久存储。您无法删除这些对话。
在 JetBrains IDE 中使用 Agentic Chat
前提条件:
- 您已安装并配置了适用于 JetBrains 的 GitLab 插件(版本 3.11.1 或更高)安装和配置适用于 JetBrains 的 GitLab 插件。
要在项目中使用 Agentic Chat,项目必须满足:
- 托管在 GitLab 实例上。
- 属于满足前提条件的群组。
要使用 Agentic Chat:
- 在您的 JetBrains IDE 中,转到 设置 > 工具 > GitLab Duo。
- 在 GitLab Duo Agent Platform (Beta) 下,选中 启用 GitLab Duo Agent Platform 复选框。
- 如果提示,重启您的 IDE。
- 在左侧边栏中,选择 GitLab Duo Agent Platform (Beta)( )。
- 选择 聊天 标签页。
- 在消息框中输入您的问题,然后按 Enter 键或选择 发送。
Agentic Chat 中的对话不会过期,会永久存储。您无法删除这些对话。
在 Visual Studio 中使用 Agentic Chat
前提条件:
- 您已安装并配置了适用于 Visual Studio 的 GitLab 扩展(版本 0.60.0 或更高)安装和配置适用于 Visual Studio 的 GitLab 扩展。
要在项目中使用 Agentic Chat,项目必须满足:
- 托管在 GitLab 实例上。
- 属于满足前提条件的群组。
要使用 Agentic Chat:
- 在 Visual Studio 中,转到 工具 > 选项 > GitLab。
- 在 GitLab 下,选择 常规。
- 对于 启用 Agentic Duo 聊天(实验性),选择 True,然后点击 确定。
- 选择 扩展 > GitLab > 打开 Agentic Chat。
- 在消息框中输入您的问题,然后按 Enter 键。
拥有多个对话
您可以与 Agentic Chat 进行无限数量的并行对话。
您的对话会在 GitLab UI 和您的 IDE 中的 Agentic Chat 之间同步:
- 在 GitLab UI 中,您 Agentic Chat 历史记录中的所有对话均可见。
- 在您的 IDE 中,最近 20 个对话可见。问题 1308 建议更改此设置。
要管理您的对话并查看 Agentic Chat 历史记录:
-
在 GitLab UI 或您的 IDE 中打开 Agentic Chat。
-
输入您的问题,然后按 Enter 键或选择 发送。
-
创建新的 Agentic Chat 对话:
- 在 GitLab UI 中:在抽屉右上角,选择 新建聊天( )。
- 在您的 IDE 中:在消息框右上角,选择 新建聊天( )。
-
输入您的问题,然后按 Enter 键或选择 发送。
-
要查看您的 Agentic Chat 历史记录:
- 在 GitLab UI 中:在聊天抽屉的右上角,选择 聊天历史记录( )。
- 在您的 IDE 中:在消息框的右上角,选择 聊天历史记录( )。
-
要在对话间切换,请在您的 Agentic Chat 历史记录中选择相应的对话。
-
仅限 IDE:要在聊天历史记录中搜索,请在 搜索聊天 文本框中输入您的搜索词。
对话内容的截断
由于 LLM 上下文窗口限制,对话会被截断至 200,000 个令牌(约 800,000 个字符)。
创建自定义规则
在 VS Code 或 JetBrains IDE 中,如果您希望 Agentic Chat 在每次对话中都遵循特定指令,可以创建自定义规则。
前提条件:
- 对于 VS Code,请安装并配置适用于 VS Code 的 GitLab Workflow 扩展(版本 6.32.2 或更高)安装和配置适用于 VS Code 的 GitLab Workflow 扩展。
- 对于 JetBrains IDE,请安装并配置适用于 JetBrains 的 GitLab 插件(版本 3.12.2 或更高)安装和配置适用于 JetBrains 的 GitLab 插件。
在您创建任何自定义规则之前存在的对话不会遵循这些规则。
-
在您的 IDE 工作区中,创建一个自定义规则文件:
.gitlab/duo/chat-rules.md。 -
将自定义规则输入到该文件中。例如:
- 不要在生成的代码中添加注释 - 解释要简洁 - JavaScript 字符串始终使用单引号 -
保存文件。
-
要让 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中不可见。若要解决此问题,请确保:
- 您已在 VS Code 或 JetBrains IDE 设置中启用了 Agentic Chat。
- 您的IDE工作区中打开了一个项目,且该 项目已连接到GitLab项目。
- 该 GitLab项目位于组命名空间中。
- 您拥有Premium或Ultimate订阅。
- 已启用GitLab Duo。
- 对于GitLab.com上的顶级组或GitLab自托管实例,您的 GitLab Duo实验性和测试版功能已开启。如有必要,请联系管理员。
响应时间慢
Agentic Chat 处理请求时存在显著延迟。
此问题是由于 Agentic Chat 需要进行多次API调用以收集信息,因此响应通常比Chat长得多。
权限有限
Agentic Chat 只能访问您的GitLab用户有权限访问的资源,这与Chat相同。
搜索限制
Agentic Chat 使用基于关键词的搜索而非语义搜索。这意味着 Agentic Chat 可能会遗漏不包含搜索所用确切关键词的相关内容。
反馈
由于这是测试版功能,您的反馈对我们改进它很有价值。请在 issue 542198 中分享您的经验、建议或问题。