GitHub Copilot Agent 模式能极大提升编码效率,但也需要一些配置技巧。这里结合实际操作经验,梳理一下关键设置和避坑指南。
前置环境准备
首先确保使用 VSCode Insider 版本,并安装 GitHub Copilot(预览版)插件。在模型选择上,推荐尝试 Claude 3.7 Sonnet(预览版),它在代码编写方面表现优异;其他模型则在速度、多模态识别或推理能力上各有优势,可根据需求切换。工作模式务必设置为 Agent。
操作流程
进入 "Copilot Edits" 选项卡后,可以按需添加上下文附件,例如整个代码库(Codebase)、当前错误信息(Get Errors)或终端最近命令(Terminal Last Commands)。
接着指定 "Working Set" 文件集,默认包含当前打开的文件,你也可以手动勾选其他相关文件(如 Open Editors)。最后输入具体的 "Instructions",明确告诉 Agent 需要注意的提示词,点击 Send 即可开始对话。
最佳实践与配置建议
VSCode 的语言插件提供的 lint 功能会生成 Error 或 Warning,Agent 能自动根据这些反馈修正代码,效果通常不错。
随着对话深入,生成的代码修改可能会逐渐偏离预期。建议每次会话聚焦一个明确的主题,避免对话过长。达到短期目标后结束当前会话,再启动新任务。
"Working Set" 下的 "Add Files" 提供 "Related Files" 选项,可智能推荐相关文件。同时注意控制单个代码文件的行数,以免 token 消耗过快。
建议先生成基础代码,再编写测试用例,便于 Agent 根据测试结果调试和自我校验。为限制修改范围,可在 settings.json 中添加如下配置,只修改指定目录下的文件:
{
"github.copilot.chat.codeGeneration.instructions": [
{"text": "只需修改 ./script/ 目录下的文件,不修改其他目录下的文件."},
{"text": "若目标代码文件行数超过 1000 行,建议将新增函数置于新文件中,通过引用调用;如产生的修改导致文件超长,可暂不严格遵守此规则."}
],
"github.copilot.chat.testGeneration.instructions": [
{"text": "在现有单元测试文件中生成测试用例."},
{"text": "代码修改后务必运行测试用例验证."}
]
}
常见问题与对策
输入需求得不到想要的业务代码
大任务容易导致注意力分散,需要将任务拆分成较小的子任务,每次会话只处理一个小点。喂给单次对话的上下文量需要自己揣摩,太多和太少都会影响理解。
虽然 DeepSeek 等模型在解决注意力分散问题上表现更好,但通常需要在 Cursor 等特定编辑器中集成 API,实际效果视情况而定。
响应缓慢问题
理解 Token 消耗机制很重要。Token 输入便宜且耗时短,输出则昂贵且慢。如果一个代码文件非常大,实际需要修改的行很少,但由于上下文过多,输出也会变多,导致 Token 消耗快且响应慢。
因此,必须考虑控制文件大小,及时拆分大文件和大函数,通过引用调用保持轻量。
业务理解问题
Agent 的理解或许依赖代码注释和测试文件。补充足够的注释和测试用例,有助于它更好地把握业务逻辑。检视 Agent 生成的注释,也能快速判断其是否理解了需求。
生成大量代码需 Debug 较久
可以在生成某个特性的基础代码后,先生成测试用例,再调整业务逻辑。这样 Agent 可以自行进行调试和自我验证。它会询问是否允许运行测试命令,完成后读取终端输出来判断代码是否正确。如果不正确,会根据报错信息修改,循环往复直到测试通过。
当然,这需要你对业务有更深入的理解。如果测试用例和业务代码都不正确,Agent 既不能写出正确用例,也不能写出正确业务代码,这种情况才会出现 Debug 较久的局面。
核心总结
理解大模型的 Token 消耗机制是关键。输入的上下文很便宜,输出的代码较贵,文件中未修改的代码部分也可能被计入输出成本——证据是许多无需修改的代码也会缓慢输出。
因此应尽量控制单文件的大小。在实际使用中感受 Agent 在处理大文件和小文件时的响应速度差异,这个区别是非常明显的。

