目录

一些Copilot的介绍(Some Introcution of Copilot)

什么是Copilot?(What's Copilot?)

如何开始使用Copilot?(How to be avaible to use Copilot?)

Copilot的优点(Advantages of Copilot)

正式开始我的项目重构(It's time to start using Copilot)

什么是MCP?

回到正题(Back to my project)


一些Copilot的介绍(Some Introcution of Copilot)

        最开始我是怎么接触到Copilot的呢?我承认我的动机可能并不是那么的好,25年的时候,我有一门课,这门课的期末成绩主要由课设项目来评定,老师会在上课的时候带着我们一步步去完成项目,我们在完成老师课堂的基础的情况下,再进一步去添加上自己横向的东西。不管怎么说,我对这门课不是很有兴趣,基本就没有跟着老师做。然后当时想着是到期末花个几天时间一口气把课设做完,结果是我还是高估了自己了,最后想开始做的时候,才发现,即便是学过的编程语言,学过的技术栈,很长一段时间没有去用基本也忘了个一干二净了,这时候我就把目光转向了AI...

        怎么个过程记不清了,总之最后就是发现了Github上刚刚发布没多久的Copilot,稍微了解一下什么是Copilot之后,从Github学生认证到生啃最开始并不完善的Copilot,在这个过程中,我还是总结出了很多相关的经验的,我也会在后续分享我的项目的时候提到这些经验。总之,从最简单的什么是Copilot开始进行介绍吧。

什么是Copilot?(What's Copilot?)

        Copilot 是 GitHub 提供的 AI 编程助手:它能在你写代码时,基于上下文自动给出补全、函数实现、测试、解释代码、生成文档等建议,帮你更快完成开发。用我的理解来说,Copilot就是基于项目开发、代码编程这种特殊场景下的智能体Agent。

        Copilot常见的使用场景包括:

  1. 代码自动补全:类似早期的GPT completion API的功能,不过更加针对Coding的相关场景。
  2. 根据注释生成代码:最常见的使用场景,根据用户编写的Prompt信息生成对应一段的代码,或者整个的工程文件(也是我项目重构主要用到的功能)。
  3. 解释现有代码含义:非常适合快速理解别人的项目,或是初学者通过项目来快速学习编程知识。一般也是通过Prompt编辑后,让Copilot在代码对应的地方添加上注释,来增加代码的可读性。
  4. 生成单元测试:也是非常好用的一个使用场景,可以完成一些简单的测试来确保代码的健壮性,甚至是在代码出现问题的适合通过单元测试来快速排查出问题的所在。
  5. 在IDE内充当助手:这个场景是我最近才发现的,我用PyCharm IDE的时候,在插件市场发现了有Copilot的插件,安装后基本等同于就在IDE上多了一位专业顾问的角色。上述1-4的任何功能,甚至于代码之外的对话聊天,这个顾问都可以满足你。

如何开始使用Copilot?(How to be avaible to use Copilot?)

        首先,你需要注册一个Github的账号,Github账号注册之后,请参考下面这个视频通过Github的学生身份认证:

Bilibili:GitHub学生认证教程

        通过学生认证之后,就可以正式开始使用Copilot了,很遗憾的是,现在的Copilot其实是删减版的,原本可以选用非常多的大模型的,就在2026年3月开始,Copilot只能使用GPT-5.1~5.3-Codex了。不过严格意义上来说还是可以用的(至少我用到现在没有发现什么跟之前相比不对劲的地方)

Copilot常用的主界面(建议收藏该网站):https://github.com/copilot/agents

打开后,在左边的菜单栏里选择Agent(智能体)

打开后就是Copilot Agent的交互界面了,如下图所示:

Copilot的优点(Advantages of Copilot)

        前面已经介绍到了Copilot本身的一些适用的场景了,严格来说这些也是Copilot的优点。但是这些优点我可以用GPT完成,也可以用Deepseek去完成,虽然可能Coding的效果没有Copilot好把。但是我这里要说到Copilot我个人认为最重要的优点:一个是Copilot结合了Github repository,另一个是Copilot的宏观、项目视角。

        这两个优点其实都是衍生自Github的repository(仓库),Github仓库的优点我这里就不需要展开介绍了,无论是版本回滚,还是branch分支,甚至是Git Clone.... Github仓库简直夯爆了。这里Copilot的项目本身是存放在Github仓库里的,自然而然就继承了Github仓库的所有优点,并且衍生出了更多的优点:向Copilot发出prompt后,我们获得的结果并不会直接覆盖我们原先的项目,而是会以一个branch的形式生成,并且向我们发出一个PR(Pull Request)。我们在仓库界面点开这个PR后,我们可以审阅Copilot的思维过程,本次工作总结,以及具体的精确到代码行的对项目的修改。我们可以在人工审阅之后,二次确保Copilot的结果是符合预期的,再把这个branch merge(覆盖)到我们的main(项目本身)。自此往复,不断进行版本迭代,从而完成项目的开发。甚至我们在项目的开发中,发现很久之前的某一次merge并不符合预期,我们可以精确找到那一次merge之前的版本,在branches里选择出对应的分支,并进行版本回退,这对于我们的项目开发是非常有帮助的。此外,结合上Github仓库还会有:便于多人协作、对多语言/多框架项目友好等优点,我这里就不展开说了。

        此外,对于项目本身更重要的是,Copilot结合Github仓库之后,可以更好的从一个宏观、项目的视角去对项目进行更好的版本迭代与开发。每一次我们发出新的Prompt的时候,不需要像其他大模型一样,把整个项目再发一次给大模型(甚至有些会超出接收的大小限制)。Copilot会自动从Github仓库读取出整个文件,并且在每次工作的时候,先会从头到尾的去把你的项目给弄懂之后,再结合你本轮给出的Prompt进行后续的工作。

正式开始我的项目重构(It's time to start using Copilot)

        我的项目Github地址:https://github.com/illim1table/HarvestHub

        将我Day1里提到的Prompt输入给Copilot,大模型选择GPT-5.3-Codex(一定要注意左下角的Github仓库要选对,如果没有的话则需要先创建一个仓库):

        然后点击右下角的发送,等待Copilot完成我的工作,可以在左边的菜单中或者这个对话框的下方找到Copilot正在进行的工作。点开之后,我们可以看看Copilot是怎么思考的:

这里的截图是我的Copilot以及完成了我给出的工作,可以看到他只进行了9m48s的时间,非常的迅速!最开始Setting up environment配置环境,可以看到Copilot主要完成了(接下来我会用代码块的形式详细介绍Copilot的工作流程,其中绿色的部分是我的备注说明部分):

Setting up environment

Start agent firewall

配置Agent防火墙

Clone repository illim1table/HarvestHub

从我的main复制出一份项目到新的branch

Start 'playwright' MCP server

Start 'github-mcp-server' MCP server

这两步都是启动MCP服务器,关于什么是MCP我会在下面进一步介绍

什么是MCP?(What's MCP and MCP server)

        既然这里Copilot提到了MCP Server,并且在最开始的配置环境中就配置好了MCP Server。那么就插个题外话,什么是MCP服务器?

        MCP服务器的全称是:Model Context Protocol Server,直译过来就是模型上下文协议服务器,这样完全听不懂这个概念是什么意思。这里我就进一步说明一下:随着AI的发展,行业已经慢慢从最开始的Completion补充文字的AI到能跟人Chat对话的AI,再到能够自己独立完成工作的智能体Agent。随着越来越多的智能体Agent的出现,我们前面提到的Prompt里说到一个好的Prompt需要规范的输入和输出。那么随着我们Agent的增多,模型的增多,就会出现不同类型的输入输出。这种时候如果没有一个统一的规范去约束的话,就会造成额外的开销去进行二次规范,甚至可能导致客户端之间无法进行协作。而MCP的出现,就是为了减少这种二次规范的开销,让用户与Agent只需要关注眼前的任务就可以了,而不需要为额外的负担分心,不用为去为Agent调用的每个工具写一套私有的对接。打个比喻,Agent就是项目经理负责理解目标、制定策略、决定下一步做什么。MCP客户端就是经理办公室把 CEO 的指令按统一格式分发给各部门,再汇总结果反馈回来。而MCP服务器就是各个的职能部门,通过把上头细分后下发的任务逐个完成。

        这里就很好理解了,这里初始化MCP服务器,就是把我们解决项目编程过程中可能会用到的基本的工具都初始化了,实际上你把MCP服务器初始化的下拉菜单打开,就可以看到里面有很多的工具了:

回到正题(Back to my project)

Let me start by exploring the repository structure to understand what's already there, then implement the required changes based on the problem statement.

在初始化之后,每一次正式开始处理之前,都会分析我们的仓库,通过仓库现有的信息来了解项目目前的进度。

The problem statement is asking me to:

  1. Set up a full-stack agricultural products trading platform ("汇农亩场")
  2. Backend: Python (FastAPI) with a health check endpoint and mock product list API
  3. Frontend: JavaScript (Vue) that calls the backend and renders results
  4. Create prompt archive files in /prompt/input/sprint1_init.md and /prompt/output/sprint2_next.md
  5. Provide startup commands

上述五点就是将我们发出的Prompt进行了进一步的凝缩总结。

进入到下一块的Copilot工作流程:

Let me first explore the existing repository structure.

View repository

Check git history

View README.md

除了分析仓库的结构外,Copilot还会分析最关键的.git文件和README文件,这里推荐在README里面添加上项目的基本描述,也能够方便后续Copilot对项目快速进行了解。

Now I have a clear picture. The repository is basically empty and I need to build the entire project structure for the "汇农亩场" agricultural products trading platform. Let me plan this out and implement it.

经过上述的分析,这里Copilot已经基本了解了我的项目的一切基本情况了,由于此时我才刚刚创建仓库,仓库是空的,所有其实也没有什么参考的意义。

Progress update: Initial plan for Sprint 1 project structure

接下来就正式开始Copilot的工作了。

Now let me create all the files simultaneously:

可以看到这里Copilot在分析完要做的工作之后,将工作流并行进行处理了。

Create directory structure

Create 8 files

首先是创建了项目最基础的文件,包括:requirement以及相关init文件。

Now let me create the frontend files:

Create 7 files

接下来进一步开始创建前端的文件,这里创建文件的部分都可以在PR里的File changed下具体查看删减的内容。(这之后还有后端、Prompt文件的创建,这里就省略了。

List all files in the project

Install backend dependencies

Validate backend imports

从这里开始,Copilot就会开始对自己生成的代码进行相关测试工作了。

Start backend and test endpoints

Both endpoints work perfectly. Now let me run a code review:

基本测试正常,最后Copilot再对代码进行一次审查。

Review changes with Copilot code review

Let me fix both issues:

发现了两个问题,这里Copilot开始解决这两个问题。

Edit 3 files

Validate after fixes

Run CodeQL security scan on changed files

最后,再运行CodeQL进行最后的检查,后续检查没有问题的部分我就不再进行截图了。

        最后的最后,Copilot会对本次的工作进行一个总结,在总结中,可以方便我们直观的直到本次Copilot完成的工作以及如何去运行我们的项目:

        当然,这里的IP地址需要根据你所使用的环境进行更改,这里就不进一步展开了。只是需要注意的是,我们要仔细观察Copilot总结里提到的一些需要根据情况修改的参数,除了这里的IP之外,还有代码内的可变参数,需要手动修改的API KEY之类的参数...

        最后附上一张我的项目主页的图片吧(Copilot的审美还是不赖的):

        这里还有一些问题,例如图片Copilot采用的是从在线的URL里获取图片,后续我会手动补上本地的图片。而且基本的功能也还没有实现,这也很正常,毕竟这里只是一次Session的工作量,我们的后端还没有完成SQL相关的操作,其他功能模块的代码也没有编写。这里顺带给出Copilot自动生成的后续第二次工作的Prompt:

Sprint 2 输入 Prompt

📌 请将此文件保存至项目根目录 /prompt/output/sprint2_next.md,并在下一轮对话开始时将以下内容发送给 AI。


你是一位资深的全栈开发工程师,正在与我共同开发"汇农亩场"农产品交易平台。我们已完成 Sprint 1(项目初始化与基础接口跑通),现在进入 Sprint 2:数据库连接与用户模型设计

项目背景(延续 Sprint 1)

  • 技术栈:FastAPI(后端)+ Vue 3(前端)+ MySQL(数据库)
  • Sprint 1 成果
    • 后端目录结构已建立,/api/health 和 /api/products(Mock 数据)接口已就绪。
    • 前端页面可以调用后端接口并渲染商品卡片列表。
    • 项目结构如下:
      backend/
      ├── main.py
      ├── requirements.txt
      └── app/
          ├── models/product.py
          └── routers/{health,products}.py
      frontend/
      └── src/{App.vue, components/ProductList.vue, api/index.js}
      

Sprint 2 任务目标

请完成以下内容:

1. 数据库连接配置

  • 使用 SQLAlchemy(异步版本 asyncmy 或 aiomysql)连接 MySQL。
  • 配置文件使用 backend/app/core/config.py,通过 .env 文件管理数据库连接信息(DB_HOSTDB_PORTDB_USERDB_PASSWORDDB_NAME)。
  • 在 backend/app/database.py 中创建 AsyncEngine 和 AsyncSession

2. 用户模型设计

设计并实现以下数据库表(ORM 模型,放在 backend/app/models/user.py):

字段名类型说明
idINT PK AI主键,自增
usernameVARCHAR(50)用户名,唯一
emailVARCHAR(100)邮箱,唯一
hashed_passwordVARCHAR(128)加密后的密码
roleENUM用户角色:consumer / seller
is_activeBOOLEAN是否激活,默认 True
created_atDATETIME注册时间

3. 用户注册 / 登录接口

  • POST /api/auth/register:接收 usernameemailpasswordrole,注册新用户(密码用 bcrypt 加密)。
  • POST /api/auth/login:接收 email + password,验证成功后返回 JWT Token。
  • 使用 python-jose 生成 JWT,有效期 30 分钟。
  • 新增 backend/app/routers/auth.py 路由文件。

4. 前端对接(可选,优先后端)

  • 在前端添加一个简单的登录表单组件 frontend/src/components/LoginForm.vue
  • 登录成功后将 JWT 存入 localStorage,并在页面顶部展示用户名。

输出要求

  1. 提供所有新增/修改文件的完整代码,并在代码块上方注明文件路径。
  2. 提供数据库初始化 SQL(或 Alembic migration 命令)。
  3. 提供更新后的 requirements.txt
  4. 更新 Sprint 3 的 Prompt,保存到 /prompt/output/sprint3_next.md,内容聚焦于商品模型持久化与分类管理

        今天的文本工作量还是比较大的,但是如果你只考虑实际的工作时间的话,Copilot只花了不到十分钟就完成了上述这些工作,为我们的项目搭好了一个最基本的框架。不得不说AI在处理这种简单重复的任务的能力已经远超一般的程序员了,但是随着项目越来越复杂,AI会不会逐渐开始力不从心,出现“幻觉”,甚至是出现最明显的错误呢?随着我们后续工作的进行,我也很期待答案是怎么样的。明天Day3开始,我应该就会在一次的Blog里总结出多次工作的结果了,不会再像今天一样把一次的Copilot从输入的Prompt到思考、工作的流程,再到下一次输入的Prompt进行详细的展示了。不过如何有其他衍生的需要解释的概率(特别是Agent开发相关的概念),我估计还是会花费一些篇幅去进行说明的吧,有些概念甚至我也不知道,一边说明的过程也算是自己在学习的过程了:)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐