GitHub Copilot 提示词工程

FreeGuideOnline 最新 2026-07-12

javascript // 不好:处理列表 // 好:将用户列表按注册日期降序排序,返回前10个用户的ID数组


### 2. 用结构化注释建立意图
在函数或代码块前使用详细的 JSDoc、Docstring 或普通注释,可以极大提升生成质量。

```python
# 计算移动平均值,窗口大小可配置,处理边界时用NaN填充
def moving_average(data, window):

Copilot 会根据注释推断你需要循环、切片和填充逻辑。

3. 提供范例(少样本学习)

展示一个或两个输入-输出的具体示例,比单纯描述更直接。尤其适合需要特定格式转换的场景。

// 输入:[{name: 'Alice', age: 30}, {name: 'Bob', age: 25}]
// 输出:'Alice (30), Bob (25)' 
// 请实现同名函数 formatUsers(users)

4. 分解复杂任务

不要用一句话描述一个完整功能,而是将其拆分为多个步骤,用注释逐步引导。

// 步骤1:从API获取订单数据
// 步骤2:过滤出状态为“已支付”的订单
// 步骤3:计算总金额
// 步骤4:格式化为货币字符串并返回

Copilot 会依次生成各个部分的代码,质量和可读性远超一次性生成的大块代码。

高质量提示的编写技巧

善用函数名和参数名

函数名就是对 Copilot 最直接的提示。使用动词和精确的名词,例如 fetchUserOrders 而不是 doStuff。参数名同样重要,userIdid 提供更多语义。

利用类型标注

在 TypeScript、Python (type hints) 或 Java 中,类型就是最好的提示。为参数和返回值添加类型,生成的实现将更贴合意图。

function groupByCategory(items: Item[]): Map<string, Item[]> {
  // Copilot 会自然理解需要按哪个字段分组
}

打开正确文件提升上下文

如果你正在写后端代码,却想知道前端接口格式,可以先打开前端的相关类型定义文件到相邻标签页,Copilot 会跨文件学习,无需手动复制。

使用“按行提示”和“下一步预测”循环

在循环或数据处理中,先写好一行典型的处理逻辑,Copilot 就能自动推断出剩余的相似行。例如写完一个 switch case,AI 会自动补全其他 case。

避免歧义与常见陷阱

  • 不要使用过于代称化的变量名dataresult 容易让 AI 困惑。
  • 为生成划定清晰边界:在需要结束的地方写 // 结束// --- 可以帮助 AI 停止生成。
  • 明确语言:Copilot 对英文注释响应最好,中文也可以,但混合使用可能降低准确性。建议核心逻辑用英文书写。

常见实战模式与案例

生成样板代码(Boilerplate)

用于重复性结构,如 Redux reducer、Vue 组件模板。

// 创建一个名为 Cart 的 Vue 3 组合式 API 组件,包含 items 状态、addItem 和 removeItem 方法

Copilot 将生成完整的 <script setup> 代码和模板结构。

数据转换与处理

最适合的领域之一。描述清楚源数据和目标形状。

# 将列表 [1,2,3,4] 转换成 [1, 'a', 2, 'b', 3, 'c', 4, 'd'] 的格式
# 字母与数字一一对应

调用常见 API

只需写下 API 文档的描述,Copilot 能生成 fetch 调用及错误处理。

// 使用 GitHub API 获取当前用户的 repos 列表,处理分页和401错误

自动编写单元测试

在测试文件中写一个描述性语句,即刻生成对应测试用例。

// 测试 calculateDiscount 在金额满100时打8折,不满100原价
test('should apply 20% discount when total >= 100', () => {