
一、介绍
在AI快速发展的当下,逃避不是解决问题的方法。但对于很多普通人或者说普通的开发者来说,融入AI又有一定的难度。不是说会在提示框里写几个提示词就表示已经驾驭AI了。这离着正确的打开AI的应用还有着很大的距离。不过,不要着急,现在就从创建一个Agent开始,一步步的开始踏进这个领域。
二、Agent应用
在前面已经对Agent进行了分析,Agent对于大多数人来说,它就是一个用户与大模型应用间的管家。如果开发者有钱有闲的话,可以“雇佣”一个“Agent”,但对于很多人来说,不论精力和应对场景如果自己能够写实现一个更适合自己的Agent则会更加有利。
那么创建一个Agent怎么创建呢?它需要哪些技术呢?有没有什么门槛或特殊的要求呢?那么就从些问题展开,来对Agent实现的全流程进行一个整体的说明。
三、Agent创建模式和流程
对于这种新兴的技术,没有标准化一说。但在发展的过程中经过总结也有一些创建模式,常见的有以下几种:
反思模式
这种模式一般会增加一个反馈节点,在智能体输出相关结果后,通过结果与实际的需求进行对比并迭代再次生成结果。实现逐渐逼近用户需求的过程工具调用模式
通过各类工具调用,让大模型可以主动在各种平台查找相关资料。即大模型不光可以自己推理还可以根据外部工具查找的结果进行分析对比并给最终的结果计划模式
这种模式更适合于复杂的情况,需要进行任务拆解并形成一个任务队列,并可以在子任务运行过程中进行动态的调整并再次执行。有点类似于前面提到的子Agent多agent协作模式
这个就好理解了,通过多个Agent互相协作,让他们以不同角色来共同完成任务。一般来说它适合于更加复杂的任务。前面提到的Agent Swarm和Agent Teams就是这类
既然已经有了创建的模式,那么实际应用中就可以根据自己的需求来动态的使用上面的几种模式,不是说哪种最好,哪种不好。一种不行就多种,组合使用。只要能用最少的资源达到自己的目的。就是最合适的。一般来说,创建Agent的流程如下:
明确目标
要明白自己的目的是什么,明确需要给什么数据或资源进行输入,然后希望能够得到什么结果。比如下面这个例子:输入关键词 -> 自动拆解数据维度 -> 工具搜索网络 -> 向量化存储(RAG) -> 反馈数据质量 -> 生成带引用标注的结果架构设计
这个其实对实现Agent来说非常重要,比如构建方式是使用上面的哪种模式(LLM+工具?)还是组合式工作流。是使用单代理还是多代理?使用有状态的流程图(LangGraph)还是使用其它。对于技术实现采用Langchain还是AutoGen等。是否需要设计自己的API和工具接口如何处理等等构建功能模块
一般包括LLM,提示词模块,记忆系统和外部知识库以及相关的工具模块。它和架构设计密切相连。工作流建模
无论是人还是AI其实都擅长于在固定的工作流下工作,这样的工作效率和准确性也最好。也就是说,通过结构化的方式对Agent中的任务操作进行操作步骤、决策方法、逻辑控制及工具调用等进行定义。让Agent的工作流程模型化。这样可以让Agent调用LLM时指令更清晰准确、防止出现不可控情况并利用相同类似问题。同时,也更利于优化Agent并实现多Agent协作。
常见的工作有ReAct模式、图工作流模式、循环重试工作模式、顺序工作模式等。Prompt编排与控制
其实归要到底,想和AI更好的交互,就得符合AI的习惯。就和编程一样,计算机不会错,错的永远是编程者。为了让Agent交互更准确高效,就需要进行Pompt的编排和控制。将用户输入的不同的提示按照一定的逻辑和顺序以及相关条件性进行组合形成一个完整的“提示词组”送入LLM执行。并且通过各种约束手段来防止提示词的风险,比如一些反人类或违法的问题等。安全与验证
通过测试,Agent开发者可以对生成的Agent进行相关的验证。保证其结果的准确性和有效性,并对其相关的调用工具和数据来源等进行较验。还可以对其它指令等进行验证。
同时,可以利用访问控制体系(比如权限隔离层如Sandbox)和边界安全控制以及审计等广式对Agent的整体进行风险评估和安全审查,确认是否符合设计的要求管理维护
对于Agent来说,往往不是一锤子买卖,特别是企业用户。所以需要对用户应用Agent的结果进行收集分析,并对相关应用到的知识库进行维护和更新,从而不断的迭代升级Agent。让其更适合于实际环境的应用场景。
Agent技术还在不断的发展,所以大家不要简单的停留在对当前技术的了解,那只是在此刻前的一种暂态,要不断的持续的跟进和学习,甚至是创新。
四、Agent创建的方法
Agent创建的方法一般有三种情况:
从头开发实现
这种是最初的形式,也是最强大、灵活的一种方式,不过对于大多数的想实现一个自己Agent的人说,难度最大的一种。不但需要有一定的编程知识还需要有接口设计和AI相关应用框架如LangChain等的技术点储备。当然,实际上也很少有人从头开发,大多从一个其它相类似的Agent开始进行完善即可利用无代码架构实现
这是目前比较常见一种方法,很大模型公司都提供了网页上无代码实现的机制。通过流程管理和框图拖拉即可按需生成一个Agent。这种实现也相当简单方便,但灵活性就差些了利用工具实现
这种是最简单的,一般象一些公司提供了App,在上面可以简单的交互即可生成一个Agent。它和第二种无代码实现类似,但更简单。但相对来说灵活性更差一些。象现在的Trae等都是如此
五、工具实现
具体的实现方法,网上的资料太多了,这里不再赘述。但对于小白来说,可以使用Trae进行Agent的创建,先入门。毕竟这种方式的创建非常简单只有两步:
配置工具
配置工具很好理解,根据实际需求,配置相关的搜索、文件读写、命令行或利用的提供的扩展增加自己认为的合适的相关工具即可编写提示词
在提示词框内编写相关的需求,如实现的目标,如何执行以及最终结果的要求等等
这里需要提醒的是,无论是Agent还是别的工具,目的都是为使用者服务的。千万不要本末倒置,陷入细节中去。
六、总结
AI的发展目前速度非常快,不管这种状态是否正常。现实情况是,它已经闯入你的生活。每个人要有自己的鉴别能力,拥抱新技术,但不能为新技术所困。
夜雨聆风