Github Copilot Agent模式使用经验分享

Github Copilot Agent模式使用经验分享

本文总结了如何使用 GitHub Copilot Agent 模式,并分享实际操作经验。

前置设置

  1. 使用 VSCode Insider;
  2. 安装 GitHub Copilot(预览版)插件;
  3. 选择 Claude 3.7 Sonnet(预览版)模型,该模型在代码编写方面表现出色,同时其它模型在速度、多模态(如图像识别)及推理能力上具备优势;
  4. 工作模式选择 Agent。

操作步骤

  1. 打开 “Copilot Edits” 选项卡;
  2. 添加附件,如 “Codebase”、“Get Errors”、“Terminal Last Commands” 等;
  3. 添加 “Working Set” 文件,默认包含当前打开的文件,也可手动选择其他文件(如 “Open Editors”);
  4. 添加 “Instructions”,输入需要 Copilot Agent 特别注意的提示词;
  5. 点击 “Send” 按钮,开始对话,观察 Agent 的表现。

其它说明

  • VSCode 通过语言插件提供的 lint 功能可以产生 Error 或 Warning 提示,Agent 能自动根据这些提示修正代码。
  • 随着对话的深入,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 中使用 Deepseek API. 不清楚其效果如何.

响应缓慢问题

需要理解 token 消耗机制, token 输入是便宜且耗时较短的, token 输出贵很多, 且明显更缓慢.

假如一个代码文件非常大, 实际需要修改的代码行只有三行, 但由于上下文多, 输出也多, 会导致 token 消耗很快, 且响应缓慢.

因此, 必须要考虑控制文件的大小, 不要写很大的文件和很大的函数. 及时拆分大文件, 大函数, 通过引用调用.

业务理解问题

理解问题或许有些依赖代码中的注释, 以及测试文件, 代码中补充足够的注释, 以及测试用例, 有助于 Copilot Agent 更好的理解业务.

Agent 自己生成的业务代码就有足够多的注释, 检视这些注释, 就可以快速判断 Agent 是否正确理解了需求.

生成大量代码需要 debug 较久

可以考虑在生成某个特性的基础代码后, 先生成测试用例, 再调整业务逻辑,这样 Agent 可以自行进行调试,自我验证.

Agent 会询问是否允许运行测试命令, 运行完成后会自行读终端输出, 以此来判断代码是否正确. 如果不正确, 会根据报错信息进行修改. 循环往复, 直到测试通过.

也就是需要自己更多理解业务, 需要手动写的时候并不太多, 如果测试用例代码和业务代码都不正确, Agent 既不能根据业务写出正确用例, 也不能根据用例写出正确业务代码, 这种情况才会出现 debug 较久的情况.

总结

理解大模型的 token 消耗机制, 输入的上下文很便宜,输出的代码较贵,文件中未修改的代码部分可能也算作输出, 证据是很多无需修改的代码也会缓慢输出.

因此应尽量控制单文件的大小, 可以在使用中感受 Agent 在处理大文件和小文件时, 响应速度上的差异, 这个差异是非常明显的.

Read more

Windows 环境下 llama.cpp 编译 + Qwen 模型本地部署全指南

在大模型落地场景中,本地轻量化部署因低延迟、高隐私性、无需依赖云端算力等优势,成为开发者与 AI 爱好者的热门需求。本文聚焦 Windows 10/11(64 位)环境,详细拆解 llama.cpp 工具的编译流程(支持 CPU/GPU 双模式,GPU 加速需依赖 NVIDIA CUDA),并指导如何通过 modelscope 下载 GGUF 格式的 Qwen-7B-Chat 模型,最终实现模型本地启动与 API 服务搭建。 1.打开管理员权限的 PowerShell/CMD,执行以下命令克隆代码: git clone https://github.com/ggml-org/llama.cpp mkdir

无人机培训,蚂蚁智飞在线训练,AI赋能新培训/学习模式

蚂蚁智飞-无人机在线训练产品,是维坤智能科技(上海)有限公司研发的,以微信小程序为载体的综合性无人机学习与训练平台。包含caac无人机执照和无人机专门作业场景所需要的理论学习和模拟训练两大内容,旨在于可以全方位提升学员在无人机领域的专业素养与实践技能,满足不同层次学员从入门到精通、从通用学习到专业应用的多元学习需求。         产品围绕无人机caac考试和无人机特定场景作业需求,搭建了全面的理论课程学习体系,在实操模拟方面,产品配备在线模拟器,不仅能实现基础飞行操作模拟,还针对专业场景应用,推出如电力巡检模拟以及其他场景模拟,充分锻炼学员实际操控能力,也帮助学员深入了解特定行业中无人机的运用。为满足学员多样化学习节奏,设置了自定义学习计划功能,学员可依自身情况,灵活规划理论学习、刷题、实操模拟练习的安排,高效掌握巩固必备知识。 小程序端,可刷题、接单 一、CAAC专业版         根据《民用无人驾驶航空器操控员执照考试管理办法》要求提供CAAC专业版课程,课程内容包括理论课程、模拟飞行课程、地面站课程、学员学习评价等模块,学员在线学习评价通过后可由教

【PZ-VU9P & PZ-VU13P】璞致FPGA开发板:Xilinx Virtex UltraScale Plus核心板与开发板深度解析

1. 璞致FPGA开发板与Xilinx Virtex UltraScale Plus架构解析 第一次拿到璞致PZ-VU9P开发板时,就被它沉甸甸的金属散热片震撼到了。这可不是普通的FPGA开发板,而是搭载Xilinx旗舰级Virtex UltraScale Plus芯片的"性能怪兽"。先说说这个16nm工艺的Virtex UltraScale Plus架构,它就像是FPGA界的"超级跑车引擎"——在计算密集型应用中,既能飙出26Gbps的GTY收发器速度,又能通过3D-on-3D芯片堆叠技术实现惊人的能效比。 实测在图像处理项目中,VU13P的378万个逻辑单元可以同时处理4路8K视频流,而功耗仅为上代产品的70%。这种性能突破主要来自三大黑科技: * UltraRAM:片上集成432Mb超大容量存储,相当于给数据修了条"高速公路匝道",避免频繁访问外部DDR造成的拥堵 * CLB架构升级:每个可配置逻辑块(CLB)包含8个查找表+16个触发器,布线资源增加40%,我在做波束成形算法时实测布线成功率提升明显 * DSP48E2切片:支持27x18乘法运算和48位累加,做矩阵

UniDex:为自我为中心人类视频开发一款用于通用灵巧手控制的机器人基础套件

UniDex:为自我为中心人类视频开发一款用于通用灵巧手控制的机器人基础套件

26年3月来自清华、姚期智上海研究院、中山大学和UNC Chapel Hill的论文“UniDex: A Robot Foundation Suite for Universal Dexterous Hand Control from Egocentric Human Videos”。 由于收集真实机器人远程操作数据的成本高昂、手部形态的异质性以及控制的高维度,灵巧操作仍然面临挑战。UniDex,是一个机器人基础套件,它将大规模的以机器人为中心数据集与统一的视觉-语言-动作 (VLA) 策略以及用于通用灵巧手控制的实用人机数据采集设置相结合。首先,构建 UniDex 数据集,这是一个以机器人为中心的数据集,包含来自自我为中心人类视频数据集的 5 万多条轨迹,涵盖八只灵巧的手(6-24 个自由度)。为了将人类数据转换为机器人可执行的轨迹,采用一种人机交互的重定向程序来对齐指尖轨迹,同时保持合理的手-物体接触,并且处理显式的 3D 点云,其中人手部分被掩码以消除狭窄的运动学和视觉间隙。其次,引入功能-执行器-对齐空间(FAAS),这是一个统一的动作空间,它将功能相似的执行器映射到共享坐标