最近一直投入精力到我的 Sheet Chat 上,对系统进行了一些列的改造,将插件的概念升级为 Agent, 同时尝试开发多 Agent 协作,这篇文章主要是对 Agent 开发的一些思考。
什么要有 Agent
Agent 相对于大语言模型,就相当于人类的大脑和双手,现在大语言模型在智力,知识储备上已经超越了99%的人类,但是它如果没有双手,你就只能和他聊天,所有必须借助 Agent 去完成具体的任务,而人类,最终也可能是 AI 的 Agent,你能想象吗,群里有位领导@你,让你执行某个任务,排期也定好了,他了解任务的各种细节,还能给你具体的指导,你都不能反驳,卷不卷?
前端同学如何开发 Agent
首先要强调一下 UI 对 Agent 的重要性,可以类比早期 DOS 操作系统,人们只能通过命令和他交互,直到图形用户界面,才带来计算机应用的大规模普及,提示词就是命令,现在只是聊天,远远不够,要让更多的人进来,给大语言模型开发 UI,扩大的应用场景,这样才能让大语言模型发挥更大的价值。
但是,现在有个矛盾,现在大量的的 UI 的都是前端和客户端同学开发,而大语言模型的框架,大多都是基于 Python 的,比如 LangChAIn,虽然也有 Js 版本,但是设计思路都基于 Python 版本的,微软推出 semantic-kernel,支持 Python 和 C#, 社区也有很多开源应用,基本都是 Python,也有 NodeJs 的,核心流程基本是跑在客户端或者服务器端,大模型应用执行流程一般是比较长,应用的状态管理就会比较复杂,不是提供一个接口的事,前端要实时获取服务器端的状态,架构上就会比较复杂,在真正开始开发 Agent 之前,你要先完成如下的工作:
服务器端跑 Agent
搭建一个 IM 服务器,也就是一个消息总线,有基于XMPP/Matrix/MQTT开源IM协议的开源项目可以自行部署,如果 IM 没有自己的UI,需要找个开源的 IM UI 框架,如果自己不搭建 IM 服务器,可以使用现有的,比如微信,钉钉,飞书提供 Hook 接口提供聊天机器人
搭建一个 Agent 服务器,接收消息,唤起 Agent 提供服务,用 Python/C#/NodeJs 等等都行
完成以上工作,你才能去写 Agent,在IM的聊天系统里,响应消息,开发UI。
客户端跑 Agent
使用 Python 开发客户端应用,Python 的客户端 UI 不太了解怎么做,但是 Python 的 Web 框架很成熟,UI 用前端的技术栈,加上 Python 的 Agent 开发框架,套上一个跨平台框架,比如 Electron ,应该是最好的客户端选择,这个方案适合算法/数据工程师,补充一下前端知识就可以搞起来。
或者全栈使用微软的跨平台方案 MAUI,使用 C# 版的 semantic-kernel 开发应用,这个方案适合 C# 工程师,也是很好的选择,毕竟有微软大力支持的 semantic-kernel 框架。
NodeJs 跑 Agent,以上的方案对前端同学都有一定的学习成本,对于前端工程师,要怎么搞呢?不想用 Python,可以用 NodeJs 版本 LangChain.js 提供 Agent 开发能力,然后需要一个 NodeJs 版本 IM 服务,提供消息总线的能力,前端用一个 IM UI 框架比如 chatui,这样也是可以的。 babyagi-ui 这个开源项目给 BabyAGI 加了 Web UI, 把 Python 版本 BabyAGI 迁移到 NodeJs版本,使用 LangChain.js 库,可以参考一下。还有OpenAgents 这个开源项目,可以上手试试。
浏览器跑 Agent
在我的项目里,没有用 NodeJs 运行 Agent 的方案,因为资源有限,只有一个免费 Vervcel 服务器,NodeJs 版本 IM 服务也没有找到合适的,所以的我的 Agent 是跑在浏览器里的,近乎是 0 成本,前端是用蚂蚁开源IM UI 框架chatui,Agent 的其他能力可以通过其他接口来支持,但是,如果用户关掉浏览器,Agent 执行就中断了。如果套上 Electron,加上 Node 来提供底层服务的接口,对于小规模的服务,这个客户端方案应该也是可以的。
是否要用 GPT-4
AutoGPT 和 BabyAGI 都是用 GPT-4 来支持的,我的项目是用的 GPT-3.5 的 API,拆任务偶尔会让人无语,所以加了一个UI提示框让用户去确认一下,其他的任务还好,个人感觉,用 GPT-3.5 需要很强的提示词功底,如果用 GPT-4 应该是没问题的,如果用 GPT-3.5, 其他的能力需要用 Agent 来弥补,GPT-4 相当于是架构师,有比较好的任务规划、拆分、协调能力,GPT-3.5是程序员,可以完成架构师拆好的具体的可执行的任务,这就是《人月神话》中关于主刀医生和助理医生的关系。
未来的系统,可能会用一个超级大模型做大脑,比如 GPT-4来做核心任务规划,加一群垂直小模型来提供具体服务,也就是 HuggingGPT 的思路.
总结
本文介绍了一下我在 Sheet Chat 我咋开发 Sheet Chat 过程中的一些思考,为什么要有 Agent、前端如何给 Agent 开发 UI ,以及是否一定要用 GPT-4,如果大家觉得还不错,麻烦点赞,关注,收藏三连,谢谢~
参考
大模型智能体 LLM Agent
XMPP vs Matrix vs MQTT: which instant messaging protocol is best for your chat application?
什么是 .NET MAUI?
semantic-kernel
chatui.io
OpenAgents
babyagi-ui
文章来自 “ 知乎 “,作者 Refector 专注 Agent 开发
发评论,每天都得现金奖励!超多礼品等你来拿
登录 后,在评论区留言并审核通过后,即可获得现金奖励,奖励规则可见: 查看奖励规则