# 使用GitHub Copilot CLI进行研究

使用 /research 斜杠命令调查复杂主题，并从您的代码库、GitHub 上的存储库和 Web 来源生成带引用的报告。

## 关于 Copilot CLI 中的研究

`/research`斜杠命令调用专门的研究代理。 它调查一个主题并生成引用的 Markdown 报告。 代理可以从您的本地代码库、组织内公开且可访问的私有存储库以及 Web 收集信息。

研究针对需要深入调查的复杂问题进行了优化。 有关跨 Copilot 表面的研究的概述，请参阅 [使用智能体进行研究](/zh/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/researching-with-agents)。

## 进行研究调查

1. 在交互式 Copilot CLI 会话中，输入：

   ```copilot copy
   /research TOPIC
   ```

   将 `TOPIC` 替换为对您要调查内容的自然语言描述。

2. 如果出现提示，请查看并批准代理所需的权限。 例如，智能体可以请求创建目录以在编译研究时存储数据的权限。

3. 等待检索完成。
   Copilot 显示关键结果的摘要。 它还提供指向完整 Markdown 报表的链接。

4. 查看报告，包括其来源和记录的假设。

## 编写有效的研究提示

说明你的问题、其范围和所需的响应类型。 如果相关，请包括要调查的存储库、组件、技术、约束或时间段。

研究代理会根据该问题调整其报告：

* 流程类问题通常会生成分步指导。
* 概念性问题通常产生叙述性解释和权衡。
* 技术深入探讨可能包括体系结构关系图和代码示例。

下面是一些示例研究提示以及解释它们为何效果很好的说明。

### 基本代码体系结构

```copilot copy
/research What is the architecture of this codebase?
```

**为什么工作出色**：研究代理能够访问当前工作目录范围内的 `grep`、`glob` 和 `view` 工具。 它可以浏览完整的项目树、读取关键文件并合成体系结构概述，这是正常聊天响应可能仅以表面方式执行的事情。 代理通常会生成体系结构关系图、组件细分和数据流说明。

### 特定技术的工作原理

```copilot copy
/research How does React implement concurrent rendering?
```

**为什么它效果良好**：该代理使用专用工具从互联网提取信息，并查看实际的 React 源代码GitHub。 它指示将代码优先于文档，并提供行号的文件路径。

### 了解内部实现模式

```copilot copy
/research How are feature flags implemented at our organization?
```

**为什么工作出色**：智能体被明确指示“始终将内部/专用实现优先于公共/开源替代方案”，并首先使用 `org:ORGNAME` 查询搜索组织的存储库。 它知道查找内部命名模式，例如`-hub`， `-service`。 `-client`

### 比较技术或方法

```copilot copy
/research What's the difference between JWT and session-based authentication?
```

**为什么它效果很好**：代理通过叙述性解释、权衡取舍和设计决策来调整其对“概念性/解释性问题”的回答。 它通常使用表来比较三个或多个项。

### 流程问题/操作手册问题

```copilot copy
/research How do I add an endpoint to the API?
```

**它为何有效**：代理经过训练以检测查询类型，并为流程/操作类型的问题提供分步指导，以及指向相关文档、联系人和系统的链接。

### 深入了解特定代码库组件

```copilot copy
/research How is the session management system implemented in this repo?
```

**为什么它效果良好**：将本地工具（`grep`、、`glob``view`）与代理的“跟踪导入、调用和类型引用”和“关注依赖项”的说明相结合，这意味着它将演练实际实现，而不仅仅是提供高级答案。

## 查看和共享研究报告

研究完成后，使用显示的链接在默认 Markdown 编辑器中打开完整报表。 或者，按 <kbd>Ctrl</kbd>+<kbd>Y</kbd> 打开当前会话的最新研究报告。

> \[!NOTE] <kbd>Ctrl</kbd>+<kbd>Y</kbd> 使用的编辑器由 `COPILOT_EDITOR`、`VISUAL` 或 `EDITOR` 环境变量按该顺序决定。 在 Linux 和 macOS 上，如果未设置这些变量，Copilot CLI 将使用 vi。

若要创建包含研究报告的 GitHub gist，请输入：

```copilot copy
/share gist research
```

若要将报表保存到文件，请输入：

```copilot copy
/share file research [PATH]
```

如果省略 `[PATH]`，则报告将保存到当前工作目录中，并以基于研究主题的文件名保存。

使用箭头键和 <kbd>Enter</kbd> 选择在当前会话期间创建的报表。
Copilot CLI 然后，显示 gist 的 URL 或已保存文件的路径。

## Considerations

* **研究报告属于会话**：报表选取器和 <kbd>Ctrl</kbd>+<kbd>Y</kbd> 快捷方式仅显示当前会话中的报表。 你仍然可以在`~/.copilot/session-state/SESSION-ID/research/`中访问以前会话的报告。
* **研究使用专用模型**：研究代理使用其配置的模型，而不考虑为主会话选择的模型。 您无法使用 `/model` 更改研究模型。
* **研究花费的时间比正常聊天要长**：代理搜索多个来源并生成详细的报告。 使用常规提示来快速提出范围较窄的问题。
* **研究不会进行代码更改**：研究工作流生成结果，而不是修改项目。 准备好实施更改时，启动或恢复正常的代理任务。