GitHub 发布了 GitHub intelligence,让 Copilot 在后续任务中也能利用从以往工作中学到的个人偏好和仓库惯例。开发者可以减少重复说明的精力,还能搜索未克隆到本地的相关仓库,了解分散在多个项目中的代码关系。
1. 将团队知识传递给下一项任务
GitHub intelligence 是一个让智能体利用 GitHub 数据图谱这一相互关联的数据网络所提供的上下文和学习成果的层。它利用个人偏好、仓库惯例、自定义指令以及相关仓库的代码,旨在减少每次会话重新收集知识的工作。可以将其比作把团队知识传递给下一项任务的笔记本。
这些功能分为延续记忆的记忆功能、回顾以往工作并更新记忆的 Dreaming,以及探索相关仓库的代码搜索。仓库记忆还可以包含某个特定例外为何重要,以及用于验证它的测试。
2. 记忆减少重复指令
记忆功能已在付费 Copilot 套餐中正式推出。它可在会话和客户端之间延续个人偏好及仓库惯例。Copilot 会话根据交互创建和整理记忆。
例如,它会记住用户希望拉取请求这种代码变更审核请求的描述以简短摘要开头,或记住团队期望使用的测试命令,并在后续工作中利用这些信息。用户可以在个人设置中查看或删除已保存的偏好。
记忆可在 Copilot 应用、命令行工具、编辑器、云端智能体、代码审核和移动应用等多种工作环境中创建。支持以交互方式处理记忆的环境包括 Copilot 应用、CLI 和 VS Code。
据公司公布,在公开预览期间接受评估且智能体使用了记忆的 Copilot CLI 会话中,93% 表现出更好地遵循开发者偏好的情况。在同一批评估对象中,42% 因会话上下文中包含记忆而使工作流程更加高效。
3. Dreaming 从以往工作中完善指令
Dreaming 是一项公开预览功能,通过回顾以往工作来改善下一次智能体会话的上下文。它有三种方式:根据个人对话整理记忆,改进仓库记忆、技能和指令,或将反复被采纳的代码审核意见转化为审核指令。技能是指智能体使用的工作流程。
Dreaming 可以添加、修改和删除个人及仓库记忆。对仓库中保存的技能和自定义指令文件的变更,会以拉取请求的形式提出,供团队审核。
4. 搜索尚未克隆的仓库
代码搜索帮助 Copilot 在无需本地克隆的情况下,查找相关项目和依赖项的代码、配置、模式(定义数据结构的规则)及文档。它支持按精确文本、符号(代码中的标识名称)和正则表达式(以模式描述字符串形式的规则)搜索,并可按仓库、路径和语言缩小范围。语义搜索则允许在不知道文件或函数名称时,通过描述代码的行为来查找代码。
例如,假设支付失败后的重试处理分散在支付服务、公共库和后台任务中。开发者可以通过 /research 询问各组件如何重试支付,以及重试可能在哪些地方重叠。
Copilot 会查看这些仓库中的实现和调用位置,帮助理解系统组件如何协作。它也可用于跨仓库查找迁移(将系统转移到新结构)的对象和旧 API 的使用位置、追踪与缺陷相关的实现,或在陌生仓库中查找组织已有的模式。减少开发者手动克隆项目、查找文件并将代码搬入对话的工作,是这种搜索的实际优势。
5. 更新记忆的便利伴随着成本和审核
Dreaming 是一项需要主动开启的功能。个人订阅者可在个人设置中开启个人记忆整理,并在各仓库设置中开启仓库 Dreaming。在组织和企业中,由管理员通过策略启用,企业管理员可将设置权限交给组织管理员。
仓库 Dreaming 在记忆功能的仓库访问设置所允许的范围内运行,用户也需要开启个人 Dreaming。每次运行 Dreaming 都会消耗 AI 积分,这是衡量 AI 功能使用量的单位。
减少重复指令和上下文收集工作的收益,另一面是更新记忆所需的积分成本,以及检查仓库文件变更建议的工作。团队在利用自动完善的指令时,也需要将审核建议的过程纳入工作流程。
GitHub intelligence 带来的变化在于,Copilot 正从每次等待说明的工具,转向利用团队积累的知识开始下一项任务的工具。
