本文主要介绍了在软件开发中使用代理(agents)的相关内容,包括新的开发工作流、不同模型的使用及对比、引导式方法等,具体如下:
- 新的开发工作流:GitHub Copilot 推出代理模式后,引发了编码辅助产品的快速发展。文中以构建一个简单的 Angular 应用程序为例,展示了使用 GitHub Copilot 代理模式的开发过程,包括直接生成应用和引导式方法两种方式。
不同模型的使用及对比:
- LLM 引擎很重要:在使用 GitHub Copilot 代理模式时,选择 LLM 模型很关键。文中以“Claude Sonnet 4”和“o4-mini (preview)”为例,展示了不同模型在生成代码时的差异,“Claude Sonnet 4”生成的代码更符合预期,而“o4-mini (preview)”则需要更多的迭代和手动干预。
- 感觉“不完全掌控”:即使“Claude Sonnet 4”生成的代码工作良好且有良好的文档,但仍让人感觉“不完全掌控”,需要仔细检查代码和文档以确保其准确性。
引导式方法:
- 成为架构师:采用引导式方法,先设计解决方案的结构,制定实施计划,然后将任务分解为小步骤,逐步让代理执行,以保持对开发过程的掌控。
- 定义代理遵循的最佳实践:通过“指令文件”定义代理应遵循的最佳实践,如命名约定、编码风格等,并使用 ChatGPT 等生成式 AI 帮助定义。这些最佳实践可以作为项目交付物的一部分,在团队中共享和强制执行。
- 在团队层面共享和执行最佳实践:将定义的最佳实践版本化到项目仓库中,确保所有开发者都遵循,从而提高代码质量。
- 选择合适的模型:不同的 LLM 模型在生成代码时效果不同,如 GPT-4.1 在生成工作应用程序时几乎不需要修正,但质量不如“Claude Sonnet 4”。
- 速度重要但不是一切:引导式方法虽然比传统方法快,但牺牲了一些速度,以确保生成的解决方案符合设计要求,易于理解和维护。
- 结论:代理可以是开发者的强大工具,但也存在失去控制的风险。为了在利用代理的力量的同时保持对创建内容的控制,可以采用混合人类架构知识和代理有效性的工作流。经验在控制代理行为方面很关键,需要不断积累经验以更好地与代理合作。
技术细节:
- 在 VSCode 中使用 GitHub Copilot 代理:GitHub Copilot 代理集成在 GitHub Copilot 聊天中,可以选择代理模式和 LLM 引擎,并使用聊天让代理执行任务。
- 解决方案的设计和实施计划:先设计解决方案,列出实现计划,然后逐步执行,以确保代码质量和可维护性。
- 实施步骤及其提示:详细列出了构建“Search wiki app”的实施步骤,包括创建 WikiService、WikiCard 组件、WikiListComponent 和配置 WikiList 为起始页等,并提供了相应的提示和代码状态。
- 指令、最佳实践和上下文:定义了代理应遵循的指令和最佳实践,包括编码标准、测试要求、访问控制等,并展示了这些指令在代码生成中的体现。指令可以通过“元提示”生成,并根据项目需求进行定制。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。