00:00
微软真正干活的不是大模型,而是harness,那什么是honess?它又包含哪些功能呢?点赞收藏关注走起,欢迎来到蛋先生说事听不懂算我的。兄弟姐妹们有没有经常说到这一句,Adrian=model+honess,什么意思呢?就是Model负责思考哈,Ness斯负责干活哈。Ness斯的本意是马具,套在马身上就可以把马力变成拉车的动力,那在A人智里就可以把大模型的智力变成解决实际问题的生产力。这里问个问题,像LA圈这种爆火的智能体框架算不算harness呢?此处可以暂停一下,把你们的答案打在弹幕上,噔噔噔,我来揭晓答案了。LA圈其实算不上,为什么呢?因为Harnesss是夹在模型和真实环境之间的,完整运行时开箱即用,比如CI形式的cloud code, 又比如SDK形式的cloud a j SDK importt以下就能抛弃完整的。
01:18
非准乱time。而LA券这类框架呢,只是提供了搭honess的零件和抽象组装,这是还得你自己来。那Honey斯到底都包含哪些功能呢?它的功能设计可以参考人类,你个人又自主解决任务,除了靠大脑,还得靠什么记忆工具、制度、同事文档等等。就拿解决一个bug来说,光靠大脑转可不够,得查查这个模块之前改过什么,得翻翻历史wiki,得用编辑器改代码,得找同事review,往主分支合并还得走审批。想系统的了解harness的功能可以参考这篇论文,他把生产及harness斯拆成了7个子系统。接下来咱们就好好聊聊这7个子系统到底都是些什么?第一个Adrian loop, 整个系统最核心的中央。
02:18
控制流,其他大部分子系统都是围绕它提供能力支撑的,那它是接鉴了人类的什么呢?我们在处理问题时,大多都是走一步看一步。就拿早上出门找不到小电驴钥匙来说,可能的排查过程是这样的,多半在昨晚穿的那件外套口袋里放,口袋没有,那大概在玄关抽屉里拉,抽屉还是没有,会不会压根就没带回家?下楼看车钥匙果然插在车上。这种走一步看一步在控制上是怎么实现的?核心就是推理、行动、观察的循环,也就是react循环,生产级别的循环得考虑这些事情,既然是循环,就得设计停止条件,某一步执行失败了,就有失败恢复工具之间是。
03:18
串行还是并行,得有并发调度,还有休息历史,这些状态也需要状态管理。第二个l LM integration a之所以区别于其他应用,就在于它带脑子了,所以这一只系统解决的就是怎么把脑子接进来的问题,这个就没法接近人类了,因为人类的大脑是不能换的。但A人的大模型不仅可以换,甚至还能同时使用多个模型接入,又解决的自然适合大模型的通讯问题,一共分为三层,第一层通讯适配层,解决的是怎么通讯的问题。调大模型本质上就是调API,而各家大模型的API五花八门,所以这一层负责处理入仓怎么转换,连接怎么建立,比如认证用SSE还是web。
04:18
体连接等等,以及出餐怎么解析。第二层上下文提示层解决的是发什么给大模型的问题,也就是通过prop组装,把又发给大模型的系统提示词、动态上下文等提示内容整理的井井有条。第三层策略控制层解决的是怎么发才最优的问题,比如怎么省钱,Prop catchche, 用哪个模型最合适,Model routineing, 让模型想多声s thinking regioning effort. 第三个就厉害了,它决定了A能做什么以及怎么做,这就是tools and actions, 一句话概括,一静移动,静就是静态描述。回答能做什么的问题,第一得知道有哪些工具,所以需要一份工具清单,也就是。
05:18
工具注册表。第二得知道每个工具怎么用,所以需要一份说明书,包括工具名称、用途以及入餐出餐的ski码动,就是执行过程,回答怎么做的问题。第一得知道用这个工具安不安全,所以需要权限校验,注意这里只负责在执行前拦截做校验,具体怎么判是下边子系统5的职值。第二得知道能不能同时使用多个工具,有些工具一起用会出问题,比如get commit和get push同时执行就容易冲突,所以得为每个工具声明是否并行安全,至于怎么调度,是前面仔细统一a loop的职持。第三得提供工具的执行环境,是直接在本地执行还是在隔离的沙箱里,注意决策权在接下来的执行。
06:18
同事那里第4得知道工具具体怎么执行,是进程内直接调函数还是协议转发给外部服务器,比如NCP工具就是后置,最后得知道工具返回的结果怎么处理,比如脱敏、格式化、错误处理、写回绘画历史等。那现在主流的工具提供方案向MCP和s skills是不是属于这个子系统?当然不是,这也是最容易误解的地方,该子系统只关心工具的注册和执行,这一工具是以哪种方案提供,归后面的子系统7管,咱们到那再说。就拿MCP来说,从MC cp server获取工具清单不是这里的职值,这里只副制把拿到的清单注册到工具注册表里。再比如skills的可执行脚本,本质上只是最基础的需要工具的。
07:18
库参这个子系统只要内置一个需LL工具,比如bash,就能执行skills的脚本了。第4个memory and contest主要借鉴了人类的记忆,分为绘画记忆和跨绘画记忆两种。先从memory开始,比如我问前面聊到哪个子系统是跟思维链相关的,然后你的就是子系统1a loop啊,这就是绘画记忆,你靠回忆咱们刚才聊的内容才答出来的。那跨绘画记忆呢?比如我问思维链的进化史还记得一些细节不?假如你看过这一期外挂变内置大模型工具调用与思维链的能力进化史,并有记忆点笔记,那你可能会翻一下笔记就能回答了,这就是夸绘画记忆,在别的绘画里记过一些笔记。当被问到。
08:18
本绘画之外的问题时,就能靠检索笔记来回答。靠着跨绘画记忆,A软会越来越懂你,越来越懂项目,越来越懂环境。那Contest呢?Contest决定的是最终给到大模型看的内容。它是怎么决定的呢?一是获取相关内容,通过检索工具,比如grab,在跨绘画记忆仓库、代码文件等地方检索相关信息。二是加工内容,因为上下文窗口是有限的,得用截断、压缩、摘要等手段确保内容不溢出,所以它的产出就是上下文中相关的动态提示词部分。第5个safety and permissions, 前面提到工具执行前需要进行权限校验,那具体怎么校验就是这个子系统的职责了,围绕一个动作的执行。
09:18
全流程试房一共三道防线,事前栏、事中关、事后查。事前栏就是根据规则进行审批,完整的审批流程一般是1~3层,闸门规则先判,规则判不了就LLM判,LLM也判不了就人类判。判定结果只有三种,AR around、电脑、ask, 只有ask会往上升级。特别像人类的逐级审批流程,那所有工具执行的权限校验都要走这么一套审批吗?当然不是,还是参考人类,有些是组长就能拍板,直接返回allow电缆,不用上报,有些事确实要走满三层,层层上报,还有些事可以跳过前面几层,直接让总监来批。这些规则就叫赤列,他管的是怎么判,相当于整条审批链的路由表,决定着审批流程最终。
10:18
怎么走?那是根据什么来判断的呢?除了执行的工具本身,还有工具的输入。比如未给模型的网页文件里可能藏着诱导他的指令,所以得给这些不可信内容打标记,做扫描,防止下毒。那是终关呢?审批通过了也不能保证模型永远不犯错,所以执行时可能需要把它关进笼子,就是砂箱隔离,甚至他能碰的文件、能访问的网络,事后查就是所有动作都要留下审计日志,出了事才能追溯。第6个是团队协作,也就是把复杂问题拆成多个简单小问题的解决思路,这就是orration编排。那怎么拆呢?一种是生成并协调子代里sub agent, 一种是连接其他的agent,无论是子代里还是外部agent本。
11:18
际上都是与其他A软协作,那实际应用中该怎么决定用哪种呢?这个简单,就像实现一个方法一样,如果已经有现成的微服务,相当于A准直接连接它就行了,如果没有,一开始也别过度设计,用最简单的方式先作为项目里的一个内幕方法实现,相当于SA等。后来发现很多项目都在用这个方法了,再把它抽成微服务共享出去就可以了,最后一个拿下它就大结局了。顺便总结一下,仔系统一提供了主流程,只系统2~6都是在完善主流程的各个环节,而最后这个子系统7只是对前面6个子系统的扩展,毕竟千人千面,谁也不可能满足所有人的需求,所以需要扩展性,这就是tensability。具体扩展啥呢?
12:18
对于仔系统一,A loop可以通过钩子hosts在关键节点上定制逻辑向每步执行前、执行后会获开始和结束等生命周期事件,对于子系统2 l lm integration, 可以通过provider插件接入新的脑子,对于子系统3 tools and actions, 可以通过支持MCP协议,增加自定义工具机制来扩展能做什么。对于子系统是memory and contest, 可以通过支持skills机制来扩展懂什么?对于子系统5 safety and permissions, 可以通过策略扩展怎么判这张审批路由表,也就是policy as code. 最后设置系统6 orchestration, 比如定义一个专属的sub engine, 写一份声明式配置文件就够了。再比如通过支持AC。
13:18
PA toa这些协议来连接其他的A准对了,还有一个大礼包机制插件PAINS,一个插件可以同时打包多个子系统的扩展。OK到这里,Honey的整体全貌就算是相对系统的介绍了,但每个子系统是怎么实现的?有哪些实现方案?这些可是可以讲好多集的,那你们想先拆哪个呢?评论区告诉我呗哦对了,如果你觉得honey斯还有一些功能没被提及到,也欢迎在评论区聊聊哦,那今天就到这了,点赞收藏关注,拜拜。
我来说两句