介绍
Copilot 命令行界面(CLI) 的 斜杠命令是可用于深入研究和分析的强大工具。 当输入 后跟要了解的详细信息时,Copilot 将激活专用研究代理,以便从代码库、相关 GitHub 存储库以及网络中收集并处理信息。 此内置自定义代理生成包含引文的综合 Markdown 报告,以及 CLI 中的简要摘要。 可以查看完整的报表并将其另存为 GitHub上的 gist,以便于共享。
该命令旨在提供有关代码库、API、库、软件架构及其他技术主题的复杂问题的详尽且有充分引用的解答。
使用斜杠命令
在交互式 CLI 会话中,输入:
/research TOPIC
/research TOPIC
要了解的内容的自然语言说明在哪里 。
根据您授予 CLI 的权限,Copilot 可能会请求您授予创建一个用于存储数据的目录的权限,以便在编译研究时使用。
研究完成后,Copilot 将显示关键调查发现摘要,并提供指向包含完整报告的 Markdown 文件的链接。
查看和共享研究报告
可以使用研究完成时显示的链接在 Markdown 文件的默认编辑器中查看完整报告。
或者,按 CtrlY 在终端中打开当前会话的最新研究报告。
注意
按下 CtrlY 时用于显示报告的应用程序由 , , 或 环境变量的值决定(按照该顺序的优先级)。 如果未设置这些设置,CLI 将在 Linux 上使用 vi 或在 macOS 上使用 vim。
若要共享报表,可以将其保存到文件,也可以创建 GitHub gist。
-
若要创建一个代码片段(gist),请输入:
Copilot prompt /share gist research
/share gist research要将内容保存到文件中,请输入:
Copilot prompt /share file research [PATH]
/share file research [PATH]如果省略参数 ,该文件将保存到当前工作目录中,其中包含基于研究主题的文件名。
-
使用向上/向下键和回车键,从您在当前会话中创建的研究报告列表中选择要共享的报告。
gist 的 URL 或文件的路径显示在 CLI 中。
优点
-
重视深度而非速度:普通聊天功能已优化以快速响应。 已经过全面优化。 它生成可以长达数百行的报表,其中包含体系结构关系图、代码片段和引文。
-
保存和可共享输出:报表作为 Markdown 文件保存到磁盘。 可以随时查看和共享它们。 这使得研究输出成为永久项目,而不是暂时性聊天消息。
-
跨存储库工作:登录到 GitHub时,代理可以跨组织的存储库进行搜索、从任何公共或可访问的专用存储库中提取文件,以及搜索 Web-它不限于本地代码库。
-
查询类型适应:响应格式会自动调整,以满足您对操作指导问题、概念问题或详细技术深入探讨的询问需求,而不是生成通用的标准报告。
-
自主操作:代理永远不会打断你询问问题以澄清。 它做出合理的假设,并在“置信度评估”部分明确记录这些假设。
示例提示
基本代码体系结构
/research What is the architecture of this codebase?
/research What is the architecture of this codebase?
为什么工作出色:研究代理能够访问当前工作目录范围内的 、 和工具。 它可以浏览完整的项目树、读取关键文件并合成体系结构概述,这是正常聊天响应可能仅以表面方式执行的事情。 代理通常会生成体系结构关系图、组件细分和数据流说明。
特定技术的工作原理
/research How does React implement concurrent rendering?
/research How does React implement concurrent rendering?
为什么它正常工作:代理使用专用工具从 Internet 拉取信息,并查看 GitHub上的实际 React 源代码。 它指示将代码优先于文档,并提供行号的文件路径。
了解内部实现模式
/research How are feature flags implemented at our organization?
/research How are feature flags implemented at our organization?
为什么它工作得很好:明确指示代理“始终将内部/专用实现优先于公共/开源替代项”,并首先使用查询搜索组织的存储库。 它知道查找内部命名模式,例如, 。
比较技术或方法
/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?
为什么工作出色:将本地工具(、、)与代理的“跟踪导入、调用和类型引用”和“关注依赖项”的指令相结合,意味着将演练实际实现,而不仅仅是提供简要答案。
何时可能不需要使用
-
快速简单的问题:如果只想了解“此函数的作用是什么?” 或“修复此 Bug”,正常聊天消息会更快、更合适。 专为需要广泛调查的问题而设计。
-
需要更改代码时: 生成报表,而不是代码修改。 它使用该工具保存报表文件,但不使用其他代码修改工具。 如果需要代理实际更改代码,请使用正常提示(通常从计划模式开始)。
-
时间敏感的交互:研究花费的时间比正常响应长,因为代理会进行许多工具调用(搜索代码、提取文件、搜索 Web)。 如果在编码流中需要快速答案,则正常聊天会更好。
考虑事项和注意事项
-
报告与会话相关联:研究报告存储在特定于会话的研究目录中。 如果启动新会话,则使用 CtrlY 快捷键或 斜杠命令时,之前的研究将在 CLI 中不可用。 但是,可以从相应的 目录访问以前的报表。
在 Linux 或 macOS 中,可以在终端命令提示符处使用以下命令列出 10 个最新的 CLI 会话目录:
Bash ls -dtl ~/.copilot/session-state/*/ | head -10
ls -dtl ~/.copilot/session-state/*/ | head -10 -
研究代理使用特定模型:研究代理硬编码为使用特定 AI 模型(请参阅 AUTOTITLE)。 无法通过 命令配置模型选择。 无论为主会话选择哪种模型,研究代理始终都使用定义的模型。
-
报表质量因查询类型而异:代理将查询分类为三种类型,并相应地调整其响应:
- 处理问题 →分步指南(最少的代码)。
- 概念性问题 →上下文的叙述性说明。
- 技术深入探讨 →完整的体系结构关系图、组件部分和代码示例。
您措辞提示的方式可能会影响代理对于研究分类的选择。 例如,如果你希望进行深入的技术讨论,但将问题表述为“什么是 X?”,你可能会获得概念性答案。 在这种情况下,可以针对提示重新措辞,以更明确地表达希望 Copilot 生成的报告类型。 例如:“给我一个技术深入分析 X,其中包含架构图和代码示例。
延伸阅读
- AUTOTITLE
- AUTOTITLE