慕雪即将更新一套AI Agent智能体开发的专栏,本文是这个专栏的引言。

1. 写在前面

在先前的【AI】AI对26届计算机校招的影响一文中,慕雪简述了一下当前AI发展对26届校招产生的影响。

目前校招的变化,还只是在笔试、面试形式上发生的影响,暂时还没有出现在面试内容中考核校招生对AI Agent开发理解程度的情况。但慕雪认为,开发岗中开始考核AI Agent开发相关内容,一定会发生,只是时间问题罢了。

以后的开发岗,包括前端、后端、客户端、测开,都一定会考核AI Agent开发相关的知识点,包括但不限于如下几点:

  • 基础:编程学习中是否会使用AI工具辅助?如何使用?能否很好的使用?
    • 目前美团秋招中引入的vibe coding环节本质上就是在考核这一层,算是AI时代的研发基本功。
  • 初级:是否能够编写一个很好的Prompt(Prompt工程,现在变成Context工程了)
  • 中级:是否了解AI的Function Calling和MCP?是否调用过OpenAI格式接口与AI交互?
    • 最佳实践:为自己的前后端项目引入一个界面使用方式的AI问答机器人。
  • 高级:是否了解AI Agent?有没有编写过AI Agent为自己的项目赋能?
    • 最佳实践:在自己的项目中引入了AI Agent,并且这个Agent能够感知当前系统的状态,告知用户下一步应该做什么,最好是能够直接帮助用户操作
    • QA最佳实践:在自己的项目中引入AI Agent,进行测试用例编写、测试用例覆盖率获取、优化测试用例的全环节。这部分可以和CI/CD结合。
    • 注意,了解AI Agent不只是了解Agent开发框架,还需要对主流Agent可以调用的工具进行了解,比如browser-use、codebase、git、命令行工具等等……

慕雪认为:明年27届秋招就会开始考核这些内容了。所以,如果你能够相比于其他竞争对手,提前了解AI Agent相关的信息,想办法在自己的项目中引入一个AI Agent,绝对能在互联网大厂的校招生招聘中大大的提分(特别是测试开发岗位)。

了解AI相关动态的第一步,就是把国内的“AI三大顶会”关注起来,他们是微信公众号:

  • 机器之心
  • 量子位
  • 新智元

除了上面这三个“顶会”,InfoQ也可以关注一下。

2. 专栏内容

2.1. 说明

本专栏将帮助大家,从写Prompt与AI交互开始,一直到在自己的项目中编写一个测试用例Agent的项目实战(选这个主题,是因为它和语言、项目不强依赖,基本上所有前后端项目都可以干上去)。

整个专栏不需要你对AI有任何了解,只需要了解Python基础语法即可。不会Python也没关系,Python是最好学的语言了,现在都有AI了,把文中涉及到的代码贴给AI让他给你解释解释,是最快的学习方式。

同时,整个专栏的所有资料都会在我的个人博客和我的Github上更新,不会涉及到任何知识付费内容!不过呢,后续为了测试,会涉及到调用硅基流动的OpenAI API,各位跟随本专栏学习的时候,会在硅基流动上会有一定API调用费用支出。

2.2. 目录

本专栏目录如下:

  1. 引言(本文)
  2. 当前有哪些常见的大模型呢?(大模型平台收集)
  3. 如何写好一个Prompt(其实慕雪也不是很会,所以只是抛砖引玉)
  4. 使用Python,编写第一个通过OpenAI API与大模型交互的代码(AI时代的hello world)
  5. 什么是Function Calling和MCP?(这部分其实已经有了,见本站MCP协议介绍)
  6. 什么是Agent?(概念引入)
  7. 使用OpenAI Agent框架,编写一个最简单的Agent范例
  8. 常用的Agent可调用工具有哪些?(引入主流MCP工具)
  9. 项目实战:在自己的项目中引入一个用例编写全流程Agent。

注意,请不要把OpenAI API和OpenAPI给搞混了,OpenAI API专门指代OpenAI公司发布的与AI交互的API请求格式,而OpenAPI含义是某个系统对外开放的API。本质上,OpenAI API也是OpenAPI的一种。

2.3. 测试用例Agent实战

2.3.1. Agent工作流程图

其中针对项目实战中的用例编写Agent做一定解释,常见的用例编写Agent涉及到如下环节

flowchart TD
    A([Agent启动]) --> C[生成/更新测试用例]
    C --> D[运行自动化测试]
    D --> E[收集覆盖率报告]
    E --> F{覆盖率达标?}
    F -->|否| G[定位未覆盖代码]
    G --> H[智能补充测试用例]
    H --> D
    F -->|是| I[生成测试报告]
    I --> J([Agent休眠/等待下次触发])
    
    style A fill:#90EE90
    style J fill:#FFB6C1

在传统时代,上面的所有步骤,都涉及到人去做。即便传统的CI/CD工具(如Jenkins)能够帮助我们完成运行测试+覆盖率报告卡控的步骤,用例编写、覆盖率报告分析、补充用例的环节也还是需要人去做。

现在AI Agent的诞生,让测试用例编写的所有的流程都可以实现Agent“自回归”了。所谓自回归,就是Agent能够根据测试用例运行结果(谁失败了?)和覆盖率报告(哪里没覆盖到?)动态的修改测试用例,直到达成我们设定的覆盖率指标。人只需要去设定何时触发这个流程,剩下的所有事情都由AI代劳。

在传统的对话式AI交互的模式下,是无法实现AI自回归编写测试用例的。这个非常简单的流程图,直接体现了AI Agent对整个行业的巨大影响。你想想,原本需要一个对项目有了解的同学才可以编写这个项目的测试用例。现在AI来了,只要你会写Agent,直接咔咔编写一个Agent工作流和对于Prompt,一启动,AI框框干,压根不需要人的介入,我们只需要检查AI工作的结果对不对就行了。

长期来看,AI Agent的引入对项目开发效率的提升是非常大的,这也是为什么现在所有互联网公司都在整AI专项,AI相关的新闻更是常常刷屏。

2.3.2. 什么是测试用例覆盖率?

对不了解测试用例覆盖率指标的同学做一个简单的解释。

覆盖率指标包含函数覆盖率、行覆盖率、分支覆盖率:

  • 函数覆盖率:运行项目后,有哪些函数被调用了?
  • 行覆盖率:运行项目后,有哪些代码行被执行了?
  • 分支覆盖率(进阶):运行项目后,代码中if判断相关的分支命中了几个?

编程语言是C、C++、Object-C的项目,常用的覆盖率工具是lcov。本站之前编写过lcov工具安装配置的博客:安装locv,学C++方向的同学可以先试试开启自己项目的覆盖率统计并收集一下lcov报告。

JAVA这边常用的覆盖率工具是jacoco,学JAVA的同学可以去了解一下。

针对一个项目,常见的测试方式包含单元测试、集成测试(接口测试)、系统测试。其中,单元测试和集成测试是能够获取到测试用例覆盖率的。本Agent实战项目将以单元测试为例进行Agent用例编写,这也是能给你的项目加上一个AI Agent的最快、最稳妥的方式。

3. The end

由于专栏涉及到的内容比较多,慕雪平时工作也挺繁忙的,只有周末有时间更新。所以整个专栏的更新随缘。我尽量在26年的暑期实习招聘(27届暑期实习招聘)开始之前完成整个专栏。

所有内容都是慕雪本人对AI Agent开发的愚见,仅供参考,不保证有效性!更不保证学了本项目一定能在面试中有大优势!