智能体虽然看起来很复杂,做起来也很复杂,但换一个角度发现它其实很简单——智能体就类似于公司新来的员工,而开发人员就是那个带新的老人。
为什么说智能体就是一个新员工呢?
一个新员工入职需要做什么?
首先,新员工入职要了解公司的基本信息,主营业务以及自己所在的部门,工作内容等;这些是不是特别像模型的系统提示词——system prompt;告诉模型你是干啥的,扮演什么角色,有哪些基本约束等等。
其次,新员工入职之后需要办理基本的入职手续,和配备基本的办公设施,如工牌,银行卡,电脑,还有同事和部门领导,财务,人事的联系方式等;并且还会告诉你,有什么问题,你可以找谁谁谁。
而这些部分属于员工的基本信息,部分属于外部工具;这就类似于智能体系统提示词中设定的角色信息和配置的工具。
不知道你发现了没有,其实这个就是智能体的运作流程,先通过系统提示词告诉智能体是干啥的,有哪些基本信息;再配置工具告诉智能体你可以使用这些工具,如电脑可以用来办公,开会可以去会议室,喝水有茶水室等。
再有就是,在工作中我们应该都听过这句话,给你一个任务你先看看,试试能不能做出来,如果有问题来问我。
而智能体的运作流程也是如此,我们把角色,工具配置好之后,我们让智能体去解决我们的问题;这时,智能体就会根据自身的经验进行处理,但最终的结果可能是错的或者不符合规范,这就像我们刚到一家公司时,领导可能会说你功能是做出来了,但做的不够完善,不符合我们公司的规范,然后给你一些建议,让你去优化一下。
对待智能体同样如此,最简单的智能体就是什么都不告诉它,只需要把工具丢给它,让它自己想办法去解决问题,虽然最终的结果可能往往不尽人意。
但公司招人的目的是干活的,不是添乱的;所以,我们需要一个办法来提升智能体的准确率,或处理问题的方法;如ReAct Agent模型,就是通过告诉智能体,你第一步要干啥,第二步要干啥,第三步要干啥。
不但要会使用工具,同时还要对处理结果进行自主判断是否真的完成,还是说出了问题;如果除了问题,就去换个方式再尝试一下等等。
所以从这个角度来看,智能体容易犯错,性能不稳定也就情有可原了;而我们作为开发人员,需要做的就是尽可能地去优化整个流程,如优化提示词,优化工具描述,使用更强的模型等等。
最终的目的只有一个,那就是让智能体表现得更好,处理复杂问题的能力更强。