简介
Copilot CLI 的 /research 斜杠命令是用于深度研究和调查的强大工具。当您输入 /research 并随后提供您想了解的细节时,Copilot 会激活一个专门的研究代理,从您的代码库、相关的 GitHub 仓库以及网络中收集并处理信息。该内置自定义代理会生成一份带有引用的完整 Markdown 报告,并在 CLI 中提供简要摘要。您可以查看完整报告并将其保存为 GitHub gist,便于共享。
该命令旨在为代码库、API、库、软件架构以及其他技术主题的复杂问题提供详尽、带有充分引用的答案。
使用 /research 斜杠命令
在交互式 CLI 会话中,输入
/research TOPIC
/research TOPIC
其中 TOPIC 是您想要了解的内容的自然语言描述。
依据您授予 CLI 的权限,Copilot 可能会请求您授权,以便在编制研究时创建用于存放数据的目录。
研究完成后,Copilot 会向您展示关键发现的摘要,并提供指向包含完整报告的 Markdown 文件的链接。
查看和共享研究报告
您可以使用研究完成后显示的链接,在默认的 Markdown 编辑器中查看完整报告。
或者,按下 Ctrl+Y 在终端中打开当前会话的最新研究报告。
注意
按下 Ctrl+Y 时用于显示报告的应用程序由 COPILOT_EDITOR、VISUAL 或 EDITOR 环境变量的值决定(按此顺序优先)。如果这些变量均未设置,CLI 将在 Linux 上使用 vi,macOS 上使用 vim。
要共享报告,您可以将其保存为文件或创建一个 GitHub gist。
-
要创建 gist,输入
Copilot 提示 /share gist research
/share gist research要保存到文件,输入
Copilot 提示 /share file research [PATH]
/share file research [PATH]如果省略
[PATH]参数,文件将保存到当前工作目录,文件名将基于研究主题自动生成。 -
使用上下方向键和回车键,从本次会话期间创建的研究报告列表中选择您想共享的报告。
gist 的 URL 或文件路径将在 CLI 中显示。
使用 /research 的好处
-
深度优先于速度:普通聊天针对快速回答进行优化。
/research则侧重彻底性。它可以生成数百行的报告,包含架构图、代码片段和引用。 -
可保存且可共享的输出:报告会以 Markdown 文件形式保存到磁盘。您可以随时查看和共享它们。这使得研究产出成为永久性工件,而非瞬时的聊天信息。
-
跨仓库工作:登录 GitHub 后,代理可以在整个组织的仓库中搜索,获取任何公开或可访问的私有仓库中的文件,并搜索网络——不局限于本地代码库。
-
查询类型自适应:代理不会仅生成统一的“一刀切”报告,而是会根据您提出的是操作指南、概念性问题还是技术深度探索,自动调整响应格式。
-
自主运作:代理永不会通过澄清问题打断您。它会做出合理假设,并在 “置信度评估” 部分明确记录这些假设。
/research 的示例提示
代码库架构
/research What is the architecture of this codebase?
/research What is the architecture of this codebase?
为什么效果好:研究代理可以使用 grep、glob、view 等工具,作用域限定在当前工作目录。它能够遍历完整的项目树,读取关键文件,并综合生成架构概览——普通聊天往往只能提供表层信息。代理通常会生成架构图、组件拆解和数据流描述。
特定技术的工作原理
/research How does React implement concurrent rendering?
/research How does React implement concurrent rendering?
为什么效果好:代理使用专门工具从互联网抓取信息,并查看 GitHub 上实际的 React 源码。它被指示优先返回代码而非文档,并提供带行号的文件路径。
理解内部实现模式
/research How are feature flags implemented at our organization?
/research How are feature flags implemented at our organization?
为什么效果好:代理明确指示“始终优先内部/私有实现,而非公共/开源替代”,并首先使用 org:ORGNAME 查询搜索组织内部的仓库。它会寻找诸如 -hub、-service、-client 等内部命名模式。
技术或方法的比较
/research What's the difference between JWT and session-based authentication?
/research What's the difference between JWT and session-based authentication?
为什么效果好:代理会将响应适配为“概念/解释性问题”,提供叙述性解释、权衡与设计决策。比较三项或以上时,通常会使用表格。
流程/操作指南问题
/research How do I add an endpoint to the API?
/research How do I add an endpoint to the API?
为什么效果好:代理经过训练可以检测查询类型,并提供逐步指导,附带相关文档、联系人和系统的链接,专门针对流程/操作类问题。
深入特定代码库组件
/research How is the session management system implemented in this repo?
/research How is the session management system implemented in this repo?
为什么效果好:结合本地工具(grep、glob、view)以及代理的指令“追踪导入、调用和类型引用”以及“跟随依赖”,意味着它会遍历实际实现,而不仅给出高层回答。
何时可能不想使用 /research
-
快速、简单的问题:如果您仅想知道“这个函数做什么?”或“修复此 bug”,普通聊天响应更快也更合适。
/research设计用于需要大量调查的问题。 -
需要代码修改时:
/research生成报告,而非代码改动。它使用create工具保存报告文件,但不会使用edit、bash或其他代码修改工具。如果您希望代理真正修改代码,请使用普通提示(通常从计划模式开始)。 -
时间敏感的交互:研究比普通响应耗时更长,因为代理会进行大量工具调用(搜索代码、抓取文件、搜索网络)。如果您在编码过程中需要快速答案,普通聊天更合适。
需要考虑的事项及注意事项
-
报告与会话绑定:研究报告存放在会话专用的 research 目录中。如果开启新会话,之前的研究将在使用 Ctrl+Y 快捷键或
/share斜杠命令时不可在 CLI 中直接访问。不过,您仍可在相应的~/.copilot/session-state/SESSION-ID/research/目录下找到此前的报告。在 Linux 或 macOS 上,您可以在终端提示符下运行以下命令,列出最近的 10 个 CLI 会话目录:
Bash ls -dtl ~/.copilot/session-state/*/ | head -10
ls -dtl ~/.copilot/session-state/*/ | head -10 -
研究代理使用固定模型:研究代理硬编码为使用特定的 AI 模型(见 GitHub Copilot CLI 命令参考)。模型选择无法通过
/model命令配置。无论您在主会话中选择了哪种模型,研究代理始终使用已定义的模型。 -
报告质量随查询类型而异:代理会将您的查询分类为三种类型,并相应地调整响应。
- 流程问题 → 逐步指导(最少代码)。
- 概念问题 → 带上下文的叙述性解释。
- 技术深度探索 → 完整的架构图、组件章节和代码示例。
提示的表达方式可能影响代理对研究分类的选择。例如,您想要一次技术深度探索,却把问题写成“X 是什么?”,可能会得到概念性答案。此时可以更明确地改写提示,例如:“请对 X 进行技术深度探索,提供架构图和代码示例”。