前言
感谢复旦计院分团委学生会给咱的机会、团校在三教五教的海报宣传,也很荣幸这次讲座能和彭鑫老师一起讲。这篇讲座主要是想为想参与 Agent 项目的同学做一个入门。本身的理解可能也非常浅薄,但最近也接触并实际参与了挺多的 Agent 项目(最近的一篇打算投 EMNLP Demo),在参与的过程中总结出来了很多经验,尽管不一定准确,但还是想把这么多宝贵的经历、在和很多大佬交流后得出的心得分享一下,希望对大家有所帮助!
https://mp.weixin.qq.com/s/EVKArnpSgGW39wPdsUhfJg (微信公众号推送)
Agent 在近年是趋势所向,无论是做产品还是水 paper 都是最热门的方向,所以对工业界和学术界都非常有影响力。而相对于非常硬核的一些工作,Agent 骗投资也更容易(bushi)。那为什么呢?因为这个东西是最能落地的方向之一,他的产生就是为了解决某一个实际的、非常有需求的问题(水 paper 另计)。
其实在 NLP 的鄙视链相对较低,因为普遍认为科研属性比较低,工程的属性比较强,而对科班知识的门槛较低。有人称 2025 为 Agent 之年,就是因为这个东西非常好发 paper,
Agent 是什么
如前言所说,Agent 现在真的非常热门,在我们的生活处处都是。因此笔者在此随便举几个 Agent 的例子,你可能就能理解 Agent 大概是个什么东西了
- Cursor / Copilot
- Deep Research / Deep Search
- Manus
是指利用大语言模型(如 GPT 系列)构建的智能系统。他相对于传统的软件来说,会用到大模型的能力,并且会通过微调 / 一些规则 / 适应的手段来在这个领域表现地比传统软件更出色.
所以说一个 Agent 相对于传统软件比较强,而相对于 Base Model 来说更能适配特定领域的任务,因此大家可以理解为一个很能改善我们生活体验的结合大模型的软件
Agent 的实现及流程
以一个非常简单的传统翻译软件 / 结合 LLM 的翻译 Agent 为例子
- 传统的翻译软件可能是:
- 用户输入一段文字
- 检测每个字
- 在字典里面找
- 返回对应的词
- 把每个翻译后的词拼接到一起
- 把答案显示给用户看
- 基于 LLM 的 翻译 Agent 就可以变成
- 用户输入一段文字
- 把用户输入的 Text,结合目的(比如说:Please translate the above text into Chinese, the output format should be… )做一个 Prompt,输入给大模型(本地部署的也行,调用 api 也行)
- 你的 Prompt 应该约束了模型输出的格式,因此可以根据他的格式直接提取答案(就是,可以去掉推理过程)
- 把答案显示给用户看
以一个传统的机器人客服为例
- 传统的机器人客服可能是:
- 用户输入一段文字
- 通过规则来检测文字里面包含的文字,检测关键词
- 通过关键词,找一下对应的回答(比如说检测到【购买】/【椅子】/【买】等字词就自动返回商家椅子的购买链接)
- 把答案显示给用户看
- 基于 LLM 的 客服 Agent 就可以变成
- 用户输入一段文字
- 把店家所有的信息,比如所有拥有的商品、每个商品的属性(比如椅子高度、价格等等)、店家的公司名称等等都作为 Prompt / Context 的一部分(现在的模型 Context 都很长,因此给的信息就算有很多也没问题的)
- 把用户输入的 Text(例如“X 型号椅子的高度是多少”) 输入给大模型
- 大模型输出一个针对性答案给用户
即便上述只是两个非常简单的例子,本身的实现也不难,但是结合了 LLM 的 Agent 的效果大家可以明显想象到效果是比原本纯编程 / 纯基于规则的软件要好的。
再以两个稍复杂一点的例子,这两个例子基本是只能基于大模型才能实现,因此不能像上述 2 个例子一样和传统方法做横向对比
- Cursor / Copilot
自动代码补全、交互式代码生成、代码理解的端对端 Agent。以交互式代码生成为例子,他会把用户的 input 结合 Codebase 的 Context 来交给大模型,生成代码后嵌入到对应的文件。而这个 Agent 也集成了一些其他功能,比如可以一键 Reject 所有生成过的代码等等。
- OmniParser
这个是微软推出的一款通用的屏幕解析工具,能够将用户界面(UI)截图转换为结构化格式,从而提升现有的基于大语言模型(LLM)的 UI 代理能力。可以通过解析 UI 来端对端操作电脑。给个例子就是,比如你想要打开 B 站 Up 主瑟雷希最新一期的视频,你直接跟这个 Agent 说(他有一个输入界面,可以让用户直接与其对话),那么他就会将你当前电脑屏幕的截图作为输入,喂给大模型,大模型对图像进行理解,找到你的浏览器并操作你的电脑(OmniParser 是通过 pyautogui 库实现的),把鼠标指针移动到他检测到的浏览器的桌面的位置并点击打开,然后输入 B 站网址(模型本身有相关知识),再次对当前屏幕截图进行理解,找到搜索框并搜索瑟雷希…最后打开最新一期视频。
这个是开源的,大家可以看看他的源码来具体确认实现方法:https://github.com/microsoft/OmniParser
相关知识的学习途径
无需多言,最好的入门方法我认为是看 Paper,简单看一下相关的综述,然后就可以实际去看一篇 Agent 的 paper 了。因为 Agent 本身的理解门槛其实不算高,因此也没什么科班的前置知识、或者一个系统化的教程需要去看。
不过从哪些会议以及哪些 Track 看确实有些讲究。
这里就从软件工程的会议的 Agent,还有 NLP 的会议的 Agent 来说,两者是存在一定差异的。 AI 会议的 Agent 定位更加广泛,只要他提出了一个好的方法,在架构方面做了一些精妙的设计,对模型本身做了一些优化,从而实现了一个更好的效果,那么他可能就可以中(特别是现在 ai 会里面的审稿人群魔乱舞),但是这个 agent 落地的方向并不一定是一个企业实际且常有的问题。 软件工程更加专注于解决一个具体的软件工程领域的问题,且这个问题通常都是业界/学术界实际会遇到的有价值的问题。比如有专门的运维 Agent 的会议(如 AIOps)。本身也是聚焦于软件工程的一些思想,对于“系统”这个概念会比较看重,而对于模型本身可能没那么重视(当然,就算是 NLP 的会的 Agent 也鲜有去动模型架构的,基本也不会自己去重新训一个模型,最多微调一下,这里说的重视是一些 paper writing 和讲故事上的东西),而 NLP 领域的话没有 system design 的观念。
发 Paper
Agentic 工作近期热点
虽然前面提到,有人称 2025 为 Agent 之年,但其实 Agent 的热潮其实在前两年就已经开 始了,因此不少创新点已经被做掉了,想水 paper 其实也是没那么好水的。不过,笔者这里可以简单给一些非常浅薄的例子作为思路,创新和 idea 本就是发 paper 之中最难的一环,大家想做创新其实只能靠多看 paper,多思考。
- Multi-Agent Multi-Agent 即多个 Agent 协作,不同 Agent 都可以是一个不同角色、专门负责某一领域的 Agent。形式可以是多个不同的 LLM、CLIP 模型、基于规则的 Agent… 不同 Agent 专门负责一个领域,通常效果更好。是在前两年就非常 fashion 的一个 idea,是一个对设计比较讲究的方案。但是普遍的缺点是因为不同 Agent 需要互相协作,因此速度比较慢/延迟比较高。Multi-Agent 也是有相关综述的,大家感兴趣的话可以去看一下。
- 多模态 Agent 本身就是为了落地,而很多实际应用/落地的方向就是需要在视觉/语音等等地方的信息,而涉及多模态的设计和方案通常都比较复杂,灵活多变,因此发挥空间很大,所以此处列为一个有机会做出创新的点。