注意
GitHub Copilot 使用 AI。 检查是否有错误 请参阅“应用卡片:GitHub Copilot 智能体”。
介绍
Slack 中的 Copilot cloud agent 集成让你能够直接在 Slack 工作区中与 Copilot cloud agent 交互,并包含在适用于 Slack 的 GitHub 应用中。 在 Slack 消息、线程或直接消息中,可以使用对话的上下文启动 cloud agent 会话来调查、规划、编写代码以及创建问题和拉取请求。 还可以选择模型、连接模型上下文协议(MCP)服务器、跨多个存储库工作以及利用 Copilot Memory。 团队的协作决策与代码保持联系,弥合讨论发生位置与实现所在位置之间的差距。
有关其他 Copilot 集成的信息,请参阅 Copilot集成。
安全注意事项
在 Slack 中 @mentionGitHub 之前,请考虑 Copilot cloud agent 会将整个线程捕获为你的请求的上下文,并根据讨论理解和实施解决方案。 此上下文存储在代理生成的项目中。 如果要限制上下文,可以改为向 Slack 应用发送直接消息 GitHub 。
了解协作会话、权限、代码通道和沙盒
Copilot 使用的标识取决于你是在直接消息还是共享上下文中与它交互。
-
在直接消息中使用 Copilot 时,它可以为你采取措施,例如创建拉取请求或问题,以及回答问题。 它会使用你已关联的GitHub个人账户的权限来执行这些操作。
-
当您在共享环境中使用 Copilot 时,例如在群组讨论串或频道中,Copilot 会以其应用身份而非您的个人帐户创建内容,例如拉取请求。
注意
由 Copilot 在共享上下文中创建的拉取请求会使用应用的身份。 如果您使用存储库规则集,由于这些拉取请求不会归属于某个个人,因此在合并前还需要额外一次批准,前提是该存储库本身已要求至少一次批准。 此项已默认启用。 请参阅“规则集的可用规则”。
只有对为会话选择的每个存储库具有 写入 访问权限的用户才能触发 Copilot 进行更改或引导该会话,但任何会话参与者都可以提供输入。 工作区的来宾成员以及仓库的外部协作者无法在 Slack 中通过 Copilot 发起或主导会话。
Copilot 会参考对话中的所有消息来开展工作。 整个线程成为该工件的决策上下文。
Slack 代码
当要求 Copilot 执行任务时, Copilot cloud agent 将创建一个名为 Slack Code 的专用代码通道。 你可以在这里与 Copilot 协作完成任务,也可以根据需要邀请队友一起参与。 建立代码通道后,以独占方式引导会话通过该通道。
Copilot 管理代码通道并显示有关会话的详细信息,例如工作存储库、分支、问题或拉取请求链接、状态和正在使用的模型。 代码通道旨在同一时间仅用于一个会话:每个任务一个通道。 会话结束后,系统会询问您是否要将该频道存档。 存档后,通道及其历史记录仍可查看且可搜索,如果需要,可以重新打开通道。
保护云沙盒
当 Copilot cloud agent 开始处理来自 Slack 的任务时,Copilot 会继续在 安全云沙盒中异步运行,并在结果准备就绪后发布结果。 你可以继续通过 Slack 进行指导,也可以在 GitHub、终端或你偏好的代码编辑器中继续处理代理生成的成果物。
先决条件
- 你必须拥有一个 GitHub 帐户,通过 Copilot 付费计划才能访问 Copilot。
- 你必须拥有 Slack 帐户,并且是工作区的成员。
- 您必须已安装适用于 Slack 的 GitHub 集成。 请参阅“将 GitHub 与 Slack 集成”。
- 如果您通过组织或企业(包括具有托管用户的企业)获得Copilot,则默认启用Copilot in the cloud 策略,但所有者可以将其关闭。 Copilot 在无需单独设置的云沙盒中运行你的 Slack 会话。 请参阅“管理组织或企业的云沙盒”。
将GitHub应用连接到帐户GitHub
首次在 Slack 中使用 GitHub 集成时,应用会提示你将其连接到帐户 GitHub 。 然后,如果出现提示,请设置默认存储库。
默认仓库会提供 Copilot 在响应提示时使用的上下文;此外,除非您在提示中指定了仓库,否则由 Copilot cloud agent 会话创建的问题和拉取请求也会在该默认仓库中打开。 不能为直接消息设置默认代码仓库,因此在直接消息中,在提示中为代码仓库命名。
首先,请执行以下操作:
- 在 Slack 中,通过键入
@GitHub打开与 GitHub 应用的直接消息,或在线程中 @mentionGitHub 应用。 - 按照提示连接 GitHub 帐户,如果出现提示,可以选择设置默认存储库。
- 要查看你还可以做什么,请在线程中通过键入
@GitHub help来 @mention 应用。
在 Slack 中使用 GitHub 应用
你可以向 GitHub 应用发送直接消息,或在线程中 @mention 它。 机器人将响应消息,并根据请求执行任务。
必须具有对每个默认存储库或提示中指定的每个存储库的写入访问权限,才能触发 Copilot cloud agent 工作。 如果没有对相关存储库的写入访问权限,仍可以通过在 Slack 线程中提供输入来帮助指导 Copilot,当 Copilot cloud agent 在拉取请求中进行更改时,这些输入将作为上下文。
用户可以在拥有Copilot cloud agent访问权限的任何存储库上调用write。 对于企业拥有的存储库,管理员必须安装和配置 Slack 应用,并指定 Slack GitHub 应用可以访问的存储库。 有关配置 GitHub Apps的详细信息,请参阅 通过 GitHub 市场安装 GitHub App 以用于组织。
-
在 Slack 中,通过键入
@GitHub打开与 GitHub 应用的直接消息,或在线程中 @mention 应用。 -
键入提示,然后发送。 您可以在请求中用自然语言描述存储库和分支。 例如:
@GitHub Add "Hello World" to the README in octo-org/octo-repo on the develop branch -
Copilot cloud agent 将发起一个 cloud agent 会话,并在 cloud agent 完成后,返回其计划进行的更改摘要,以及指向其在指定存储库中创建的产物的链接。
还可以回复 GitHub 通知并提及 @GitHub,并附带一个任务。 例如,要求它调查失败的工作流或解释拉取请求中的更改。 对话和链接 GitHub 资源为工作提供上下文。
跨多个存储库工作
会话最多可以处理同一组织或个人帐户拥有的 11 个存储库。 必须具有对每个所选存储库的写入访问权限。 启动任务时选择存储库,或在提示中命名它们。 例如:
@GitHub Update the API in octo-org/service and its client in octo-org/web. Open a pull request in each repository and link the changes.
在开始工作之前检查仓库集。 更改通道默认值会影响新会话,而不会影响正在运行的会话的会话记录。
使用 Copilot 创建议题
你可以要求 Copilot 直接从 Slack 创建 GitHub 问题,将对话转换为可操作的任务。 只需用自然语言描述你的需求,Copilot 就会为你创建问题单。
你可以创建单个议题,也可以一次性创建多个具有父子关系的议题。
当你对应用执行 @mention 操作时,应用会使用完整的线程历史记录作为其所创建问题的上下文信息。 若要保持上下文的焦点,请考虑启动新线程或发送直接消息。
-
在 Slack 中,要求 Copilot 创建一个或多个问题,并指定目标存储库。
若要创建单个问题,请执行以下操作:
@GitHub In octo-org/octo-repo, create a feature request to add fuzzy matching to search.一次性创建多个议题:
@GitHub In octo-org/octo-repo, open separate issues for adding fuzzy matching to search, paginating the results list, and caching search queries.要创建具有父子关系的议题:
@GitHub In octo-org/octo-repo, create an epic to redesign search, with child issues for fuzzy matching, pagination, and query caching.注意
只能在您已拥有权限创建问题的存储库中使用 Copilot 来创建问题。 此功能不会更改您的访问权限或绕过存储库权限。
-
Copilot 创建问题并回复,并附上每一项的链接。 每个问题都包含标题和说明,并且根据提示 Copilot 还可以添加标签、分配者和问题类型等元数据。
为通道设置默认存储库
可以为每个 Slack 通道设置一个或多个默认存储库。 默认存储库为 Copilot 提示提供上下文,因此每次让它执行任务时,无需指定存储库。 可以选择的存储库取决于通道的默认所有者。 不能使用 Copilot 为直接消息设置默认仓库。
如果通道没有任何默认存储库,Copilot 会将你在该通道的第一个会话中使用的存储库设置为默认存储库。
注意
默认存储库和其他通道设置在该通道内共享,因此任何更改都适用于在该通道中使用Copilot的每个人。
- 在通道中,运行
@GitHub settings。 - 如有必要,请使用 “选择所有者” 或 “编辑所有者” 选择帐户或组织。
- 使用 “选择存储库”,或对于现有选择,使用 “编辑存储库” 选项,来选择存储库。
- 保存所做的更改。 第一个存储库标记为主存储库。
如果未指定存储库或分支,Copilot 会使用通道的默认存储库及其默认分支。 可以清除默认存储库,以便在新建对话时询问要使用哪些存储库。 在会话中指定存储库不会更改通道默认值,也不会将该通道订阅到存储库通知。
选择模型
您可以选择 Copilot cloud agent 在 Slack 中启动的会话所使用的模型。 若要仅更改当前对话的模型,请要求 Copilot 选择模型。 这会更改聊天的模型,包括其代码通道,而不更改通道默认值。
若要为频道中的新对话设置默认模型,请执行以下操作:
- 在该频道中运行
@github settings。 - 单击 “编辑模型”。
- 选择一个模型,然后保存所做的更改。
如果清除通道的模型设置,新对话将使用标准默认模型。 模型选择取决于可用性和组织的策略。 有关模型的详细信息,请参阅 AI 模型比较。
使用 MCP 服务器
为存储库配置的 MCP 服务器可供Copilot在该存储库中工作时使用,因此,可以按照与Copilot cloud agent上的GitHub相同的方式对其进行配置。 若要在 Slack 中使用 MCP 服务器,请在 Copilot 所使用的默认存储库之一中配置它们。
使用 MCP 服务器时,请记住以下几点:
- 在自己的设置中配置的 MCP 服务器仅用于你启动的会话。
- 存储库管理员配置服务器、允许的工具和凭据。
- 启用服务器之前,请检查工具和数据访问。
- 如果会话无法启动,因为存储库的 MCP 配置无效或太大,请让存储库管理员更正配置,然后重试。
若要了解 Copilot cloud agent 如何与 MCP 配合工作,请参阅 模型上下文协议 (MCP)。 若要为存储库(包括机密和验证)设置 MCP 服务器,请参阅 为存储库配置 MCP 服务器。
使用 Copilot Memory
注意
Copilot Memory 当前处于 公开预览 且可能会发生更改。
Copilot Memory 有助于 Copilot 记住有关存储库和首选项的事实,以便它可以随着时间的推移更有效地工作。 Copilot Memory 默认为单个 Copilot 计划启用。 对于企业和组织管理的套餐,管理员必须首先启用该策略。 如果 Copilot Memory 已为你启用,Copilot 则会在处理你开始的任务时自动存储记忆,并将这些记忆应用于后续工作。
存储库事实仅适用于其学习所在的存储库,个人首选项仅适用于你自己的交互。 可以在设置中查看和删除记忆内容。 有关详细信息,请参阅“关于GitHub Copilot内存”。
延伸阅读
- GitHub.com 和 GitHub Mobile 上的GitHub Copilot - 了解更多关于Copilot cloud agent以及它如何支持你。