关于 GitHub Copilot CLI
GitHub Copilot CLI 在终端中提供类似聊天的界面,可以在计算机上自主创建和修改文件并执行命令。 可以要求 Copilot 对 Active Directory 中的文件执行任何操作。
GitHub Copilot CLI 可以根据说明和配置生成定制更改,包括 bug 修复、实现增量新功能、原型制作、文档和代码库维护等任务。
在处理任务时, Copilot 代理可以访问本地终端环境,可以在其中更改代码、执行自动测试、运行 linters 并执行环境中可用的命令。
该代理已在各种编程语言中进行了评估,主要支持的语言为英语。
代理的工作原理是结合使用自然语言处理和machine learning来了解任务,并在代码库中进行更改以完成任务。 此过程可以细分为多个步骤。
输入处理
输入与相关的上下文信息相结合,形成提示。 该提示将发送到大语言模型进行处理。 输入可以采用纯自然语言、代码片段或对终端中文件的引用的形式。
语言模型分析
然后,提示通过大语言模型传递,该模型是一个神经网络,已基于大量数据进行了训练。 语言模型分析输入提示,以帮助代理有关任务的原因并使用必要的工具。
响应生成
语言模型根据对提示的分析生成响应。 此响应可以采用自然语言建议、代码建议、文件修改和命令执行的形式。
输出格式设置
代理生成的响应已设置格式,并向你显示。 GitHub Copilot CLI 使用语法突出显示、缩进和其他格式设置功能,为生成的响应增添清晰度。
代理可能还需要在本地环境中执行命令,并在文件系统中创建、编辑或删除文件,以便完成任务。
在交互式聊天窗口中返回响应后,你可以向代理提供反馈。 然后,代理将该反馈重新提交到语言模型,以进一步分析。 代理根据反馈完成更改后,代理将返回其他响应。
Copilot旨在为你提供最相关的任务解决解决方案。 但是,它可能并不总是提供你要查找的答案。 你负责查看和验证由其 Copilot 生成的响应,以确保它们准确且合适。 有关详细信息,请参阅本文后面的“ 改进结果 GitHub Copilot CLI”部分。
用例 GitHub Copilot CLI
可以在各种方案中委托任务 Copilot ,包括但不限于:
-
**基本代码维护:** 处理与安全相关的修补程序、依赖项升级和目标重构。 -
**文档:** 更新和创建新文档。 -
**功能开发:** 实现增量功能请求。 -
**改进测试覆盖率:** 开发用于质量控制的其他测试套件。 -
**原型制作新项目:** 绿地化新概念。 -
**设置环境:** 在终端中运行命令以设置本地环境以处理现有项目 -
**查找执行任务的正确命令:**Copilot 可以为命令提供执行您尝试完成的任务的建议。 -
**说明不熟悉的命令:**Copilot 可以提供命令功能和用途的自然语言说明。
改进结果 GitHub Copilot CLI
GitHub Copilot CLI 可以支持各种任务。 为了增强收到的响应并解决代理的某些限制,可以采取各种措施。
有关限制的详细信息,请参阅本文后面的 “限制” GitHub Copilot CLI部分。
确保任务的范围明确
GitHub Copilot CLI 完成任务时,利用提示作为关键上下文。 你提供的提示越清晰、范围越广,结果就越好。 理想的提示包括:
- 明确说明要解决的问题或所需的工作。
- 关于何为好的解决方案的完整验收标准(例如,是否应该有单元测试?)。
- 有关哪些文件需要更改的提示或建议。
使用其他上下文自定义体验
GitHub Copilot CLI 生成建议的更改时,利用提示和存储库的代码作为上下文。 为了增强 Copilot性能,请考虑实施自定义 Copilot 说明来帮助代理更好地了解项目以及如何生成、测试和验证其更改。 有关详细信息,请参阅“[AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions)”。
将 GitHub Copilot CLI 用作工具,而不是替代品。
虽然 GitHub Copilot CLI 它可以是生成代码和文档的强大工具,但请务必将其用作工具,而不是替代人工编程。 应始终查看和验证由 GitHub Copilot CLI 其生成的命令,以确保它满足你的要求,并且没有错误或安全问题。
使用安全编码和代码评审做法
虽然 GitHub Copilot CLI 可以生成语法正确的代码,但它可能并不总是安全的。 应始终遵循安全编码的最佳做法,例如避免硬编码密码或 SQL 注入漏洞,并遵循代码评审最佳做法,以解决代理的限制。 应始终采取与你编写的任何使用非独立创作的材料的代码相同的预防措施,包括确保其适用性的预防措施。 这些预防措施包括严格的测试、IP 扫描和安全漏洞检查。
提供反馈
如果遇到任何问题或限制 GitHub Copilot CLI,建议使用 /feedback 命令提供反馈。
GitHub Copilot CLI的安全措施
Copilot约束的权限
默认情况下, Copilot CLI:
- 只有对在其中调用的目录 GitHub Copilot CLI 以及下面的文件和文件夹具有访问权限。 确保信任此目录中的文件。 如果 Copilot 希望访问当前目录外的文件,它将请求权限。 仅当信任该目录的内容时,才授予它权限。
- 在修改文件之前,将请求权限。 在授予权限之前,请确保它正在修改正确的文件。
- 在执行可能很危险的命令之前,将请求权限。 在授予运行权限之前,请仔细查看这些命令。
可以使用各种命令行选项授予Copilot CLI特定权限或所有权限:例如,--allow-tool=[TOOLS...]``--allow-all-tools( --allow-all 或其等效的斜杠命令,以便在/allow-all交互式会话中使用)。 有关详细信息,请参阅“GitHub Copilot CLI 命令参考”。 通常,当你在 Autopilot 模式下使用 Copilot CLI 时,你将授予它完全权限以允许它自主完成任务,而无需你在任务上工作时批准活动。 有关详细信息,请参阅“允许 GitHub Copilot CLI 自主工作”。
有关使用 GitHub Copilot CLI安全做法的详细信息,请参阅 关于 GitHub Copilot CLI 中的“安全注意事项”。
使用自己的模型提供程序时的数据处理
配置为 Copilot CLI 使用自己的模型提供程序时,系统会将提示、代码上下文和生成的响应直接发送到配置的提供程序。 它们不是通过 GitHub的。 你负责查看和遵守所选提供商的服务条款和数据处理策略。
遥测
在没有脱机模式的情况下使用自己的模型提供程序时, Copilot CLI 继续像往常一样发送遥测 GitHub 数据。 此遥测不包括提示或代码,但它包含使用情况元数据。
如果将环境变量COPILOT_OFFLINE设置为 true 来启用脱机模式,则会禁用所有遥测。 在脱机模式下, Copilot CLI 仅向配置的模型提供程序发出网络请求。
身份验证和功能可用性
GitHub 使用自己的模型提供程序(BYOK)时不需要身份验证。 如果没有 GitHub 身份验证,以下功能不可用:
*
/delegate,它将会话移交给 GitHub服务器端 Copilot
*
GitHub MCP 服务器
*
GitHub 代码搜索
在脱机模式下,还会禁用基于 Web 的工具(如 web_fetch 代码搜索和 GitHub 代码搜索)。
不回退到 GitHub托管模型
如果模型提供程序配置无效, Copilot CLI 则退出并显示错误。 它不会回退到 GitHub托管的模型。 常见故障(例如连接被拒绝、身份验证错误、找不到模型和超时)会生成用户友好的消息,并提供可操作指南。
局限性GitHub Copilot CLI
根据代码库和输入数据等因素,在使用 GitHub Copilot CLI时可能会遇到不同级别的性能。 以下信息旨在帮助你理解系统限制的适用范围和与 GitHub Copilot CLI 相关的性能关键概念。
作用域受限
所使用的 GitHub Copilot CLI 语言模型已在大量代码上训练,但仍具有有限的范围,可能无法处理某些代码结构或模糊编程语言。 对于每种语言,收到的建议质量可能取决于该语言训练数据的数量和多样性。
潜在偏见
大型语言模型使用 GitHub Copilot CLI的训练数据和所收集的上下文可能包含可能被工具延续的偏见和错误。 此外, GitHub Copilot CLI 可能偏向于某些编程语言或编码样式,这可能会导致建议不理想或不完整。
安全风险
GitHub Copilot CLI 基于存储库中问题或注释的上下文生成代码和自然语言,如果不仔细使用,可能会公开敏感信息或漏洞。 在合并之前,应仔细查看通过 GitHub Copilot CLI 彻底生成的所有输出。
代码不准确
GitHub Copilot CLI 可能会生成看似有效的代码,但实际上可能不是语义或语法正确的,或者可能无法准确反映开发人员的意图。
若要降低代码不准确的风险,应仔细评审和测试生成的代码,尤其是在处理关键或敏感应用程序时。 还应确保生成的代码遵循最佳做法和设计模式,并符合代码库的整体体系结构和样式。
公共代码
GitHub Copilot CLI 即使“建议匹配公共代码”策略设置为“阻止”,也可能生成与公开可用的代码匹配或接近匹配的代码。 请参阅“[AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code)”。
法律和法规注意事项
用户在使用任何 AI 服务和解决方案时需要评估潜在的特定法律和法规义务,这些 AI 服务和解决方案可能不适合在每个行业或场景中使用。 此外,AI 服务或解决方案并非设计用于适用服务条款和相关行为准则所禁止的用途,也不得以其中所禁止的方式使用。
命令执行中的风险管理和用户责任
在请求或允许 GitHub Copilot CLI 执行命令时,需要额外的警告,特别是有关某些建议命令的潜在破坏性。 你可能会遇到文件删除或硬盘驱动器格式化的命令,如果不正确使用,可能会导致问题。 尽管某些情况下可能需要此类命令,但在接受和运行这些命令时需要小心。
此外,你最终负责由 GitHub Copilot CLI该命令执行的命令。 这完全是决定是否使用由 GitHub Copilot CLI该命令生成的命令。 尽管存在故障保护机制和安全机制,但你必须了解执行命令会带来固有的风险。 GitHub Copilot CLI 提供强大的工具集,但应谨慎对待其建议,并确保命令符合你的意图和要求。
延伸阅读
-
[AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot) -
[ GitHub Copilot 信任中心](https://copilot.github.trust.page/)