要想知道Agent逻辑,就得先知道大语音模型的逻辑,要想知道大语言模型,就得知道机器学习的逻辑
机器学习
是研究学习算法的一门学问。 定义:从数据(经验)通过学习算法(任务)得到某个知识的理解(度量),这个过程就是机器学习的定义。 也可以简单理解现在有一组数据x和这组数据的结果y。我们要学习通过某种方法。来拟合这组数据和结果之间的映射关系y=f(x)。那么这个方法就是机器学习,这个拟合函数f(x)就是度量;对应的模型训练过程就是机器学习。通过语料数据训练得到的大语言模型就是机器学习对“语音”知识的理解。
从历史数据训练获得规律,从而进行预测新数据的结果。
大语言模型(LLM):
可以简单理解为训练出来的拟合函数,会以你的输入值作为函数输入,输出有可能的一个token。再反复循环以输入值和模型上一个输出的token,放一起继续作为函数输入,输出下一个有可能的token。
最开始的提示词功能。其实就是围绕着LLM来。研究如何优化自己的输入来使得LLM能产生更好更完美的输出。比如角色扮演,少样本等方法,其中部分方法逐步沉淀、融合进了现在的AI Agent里。
智能体(Agent):
是能够自主感知环境,制定计划,调用工具并执行多步任务的AI系统,无需人类在每一步介入即可完成复杂目标,agent = LLM(大脑) + Planning(规划) + Memory(记忆) + tools(工具)
简单理解就是你输入一个目标,LLM使用tool感知你的项目代码仓,使用检索tool去检索相关代码,再进行规划完成这个目标,要逐步完成哪些步骤,然后每个步骤LLM都进行输出或者调用tool去完成对应步骤输出,每个步骤都完成后就能实现目标,即结束。 举个例子,你可以让他使用React框架开发一个新项目并打包,它就会执行bash命令初始化一个React工程项目,然后在合适的文件夹创建合适的文件写上你需要的代码。最后执行npm run build命令打包。过程中遇到报错,他就会分析并解决报错,直到完成目标。 其中,执行bash命令去创建文件,写入代码等等,就是已经的最最基础的tool。大模型是没办法操作你的电脑的,他只能用这些tool来操作你的电脑环境。
LLM是怎么去调用tool的
1.Agent在API请求中传入了tool参数(工具说明书) 2.LLM经过训练,学会了在适当的时候输出一种特殊的结构化格式。 3.这个格式本质上就是一段json。描述我想调用哪个函数、传什么参数 4.Agent的代码解析这段json,执行真正的函数,再把结果回给LLM。
MCP:
简单理解,就是大模型训练数据里不会有的内容需要通过MCP连接第三方服务来获取,MCP就是让大模型主动调用接口去做一些事情,比如想要获取我们github上的issues。
Skills:
使用AI过程中,当你想要AI在遇到某特定场景时,指导他去怎么做,每次都要重复敲一遍提示词就会比较麻烦,于是乎你就会想到把这么一大段提示词写成一个md文件,起一个名字加一个描述,告诉LLM什么场景下读取这个提示词,这样就相当于把你这块的知识沉淀下来了。 举个实际的例子来说,就是如果你想让LLM帮你使用组件写个业务表格,但是LLM训练数据里没有这个组件的数据。那么这个时候最简单的就是你把这个组件的所有API写在提示词里,并举一个使用组件的代码示例,LLM就会使用这个组件了,这也就是few-shot提示词工程。而现在有了agent之后,直接将API和示例整理成一个skill的md文件,加上触发描述,后续Agent想要使用组件进行开发,直接将对应md文件作为提示词喂给LLM,这个过程就相当于LLM具备了使用这个组件的技能
规范驱动开发(SDD)(也翻译为规格驱动开发):
预先制定好结构化的规范文档,作为开发的唯一信任源,规范文档不是说开发规则规范,而是包含了目标约束条件,功能需求详细内容,非功能需求内容(安全、性能等)和测试标准的详细且完整的规范,能有效指导Agent具体且完整的开发,下发开发任务前,通过修改完善规范文档,减少返工,可能提高AI开发成功率,比较适合大需求。