开发一个Agent
这篇文章不是一个从0到1的新手教程,只是简单谈谈自己开发Agent的心得体会。
首先,我将这篇文章分成三个部分,分别是回答外部的问题,回答Agent的问题,回答自己的问题。
外部的问题
我面临最多的问题有两个:一个是为什么需要开发一个Agent,而不是用SKILL搞定;一个是为什么不用LangChain框架。
第一个问题提出的逻辑很简单,开发一个Agent费时又费力,在大家对Agent还比较陌生的时候,会觉得这是一个比较有难度的事情。同时市面上可靠的Agent工具已经足够多,Cursor、Claude、Codex、Hermes、OpenClaw都绝对是一个更好的选择。面对这个问题,我的回答很简单:市面上的Agent讲究的是通用性,我们需要Agent专注力更集中来保证结果更好;提供一个SKILL,其配套的环境信息,执行代码反而更加复杂,同时也不能统一调整Agent让其表现更好。
坦白来说就是开发一个Agent没有那么困难,SKILL使用起来因人而异,很有可能根本都不会去用。
第二个问题一般是对Agent开发有过了解的人提出来的,但是我没有学过LangChain的任何知识,所以我不对这个库做评价。我只讲一个朴实的观念——如果我不懂底层在处理什么,那么我就不可能做好一件事情;框架会帮我们解决一些麻烦的地方,比如适配不同模型之间的格式,但也会帮我们带来一些麻烦,正如Anthropic的博客中所说的那样,百分之九十的问题都是框架带来的。
内部的问题
内部的问题都可以归成一类:为什么输出的结果不好。 我们可以有多种解释,AGETN对应的能力不是这个,比如我们对外提供的功能是统计,图标趋势展示。如果是让输出csv文件就不太行;模型缺少有效的上下文,在我们和用户沟通的时候,我们总会忽略我们牢牢掌握的先验知识忘记提供给AI或者不知道怎么提供给AI;模型不太好,这个解释在如今的情形下我认为比较乏力。
处理内部的问题是十分有意思的,很多时候是在和自己的认知在对话。如果模型按照你理解的方式运行下去,那么所做的只是要补充功能即可;如果你觉得你提供了一切,但是模型却没有按照你设想的道路走下去。那么在不能怀疑模型能力的前提下,你就要考虑该怎么去重新建立自己的认知了。一种很好的方式提供所有对话让AI去分析为什么没有如愿所偿,但是也不是事事都能如愿所偿。
自己的问题
自己的问题就是自己的问题,我如很多开发一样,当我发现我们从一些大模型得到的总结,写出的具体代码比自身更为出色的时候,是有一些额外的思考的,只是我不像大多数人表达的那样对自己产生怀疑。我的思考是,过去我们依赖搜索引擎寻找实践经验,借助自身架构设计,提高代码的可维护性,这一切的根本便是我们不想一直反复编写这些基础代码。所以目前来看AI只是增强了我们过去的体验,还可以给我们需求以外更多的时间去学习。
说在最后
最后其实没什么要说的,只是觉得那样子结尾不太好。