Transcription
当你用人工智能构建任何东西时,一开始就必须正确处理的最关键的事情之一是决定你需要的复杂性级别。你需要一个完整的代理系统,还是一个简单的 LLM 调用或工作流就足以解决你的问题?所以,在这段视频中,我想回顾一下我们现在看到的五种人工智能代理复杂性级别。然后,我还想分享我们目前在生产环境中与我们正在构建的客户系统一起工作的经验,以及这些系统在最近几个月是如何发展的。现在,一如既往,我将通过一些图表和代码示例来引导你,以便你能够跟随。现在,如果你是频道的新成员,欢迎你。我的名字是 Dave Abalar。我是一名人工智能工程师,在该领域拥有十多年的经验。我拥有人工智能学士和硕士学位,并且我经营着自己的人工智能开发公司,名为 Data Luminina,在那里我们帮助我们的客户利用人工智能解决方案和系统进行构建和自动化。在这里,在这个频道上,我分享所有实用的收获,以便你也能学习实用的 AI 工程。好了,让我们开始讨论五种复杂性级别。现在,作为这段视频的快速介绍,对于级别 1、2 和 3,我将很快地进行,因为这些是我们频道上已经详细介绍过的概念和模式。我将在下方链接详细信息。对我来说,更有趣的是展示我们目前在生产环境中正在工作的项目,以及我们现在可以使用一些新发布的 SDK 做些什么,特别是,我们如何将所有这些整合到生产系统中。这才是这段视频的主要目标。所以,请知道所有代码示例都可以在 GitHub 存储库中找到。我会很快地浏览它们。这段视频的目标不是逐行讲解。我假设你已经对我们在这里讨论的内容有了基础知识。如果没有,你可以随时在自己喜欢的人工智能编辑器中打开它,然后一步一步地进行。这才是你最终学习的方式。所以,让我们从最简单的级别开始。再次,我假设你对此很熟悉。这就是我们所说的增强型 LLM。在这里,我们进行一次 LLM API 调用。我在存储库中有所有这些的代码片段,但我不会详细介绍,因为我再次假设你已经熟悉了。我们进行一次简单的 API 调用。我们使用结构化输出。这就是我们可以围绕它构建系统的方式。所以,让我们转到级别二。这就是我们主要使用所谓的定向无环图来处理提示链和路由的地方。在过去的两年里,这正是我在这个频道上一直在宣传的。不要陷入花哨的代理系统。只需选择你想要自动化的任何流程,然后决定你是否可以对系统的第一步、传入的数据进行分类。有哪些类别?所以,这是一个客户服务工单的例子。它是关于账单问题的吗?它是技术问题吗?还是一个一般性问题?这是 LLM 可以分类并据此做出决定的事情。然后,基于此,你可以拥有非常确定的 if-else 规则来决定如何处理该工单。现在,重要的是要理解,尽管所有这些人工智能进步和像 Open Claw 等代理框架在生产中非常酷,但 DAG(定向无环图)仍然是你在 B2B 中可靠地自动化系统,尤其是在大规模自动化系统中的基础。但是,创建此类系统的一个大挑战是,每当你开始一个新项目时,你都会从简单开始,从像这样的概述开始。它非常易于维护,每个人都能理解它在做什么。你的代码库相当精简,但然后你开始添加更多内容。你开始自动化越来越多,最终你可能会得到一个像弗兰肯斯坦一样的定向无环图。所以,不要考虑这里的例子,而是考虑它的 20 倍或 30 倍,通常有多个开发人员在 DAG 的不同分支上工作。现在有各种模式你可以使用。你可以进行一些分解。你可以使用微服务,但最终它会变得越来越复杂,找出正确的路径,尤其是在出现问题时进行调试,只会变得越来越复杂。这是你在为大型组织、大型团队、大量数据处理生产系统时面临的最大挑战之一,那就是复杂性。最近,我们通过引入更多带有工具系列的边缘节点,在我们的生产系统中取得了一些进展。所以,我再次假设你已经熟悉了工具调用。有一个供你使用的工具调用代理的示例。但基本上,它归结为,而不是做出硬性的 if-else 决策或字典查找,我们在程序上说“这就是你要做的”,我们给 LLM 一系列工具。所以它可以查看数据库。它可以查找策略,代理、人工智能、LLM 真的决定该怎么做。它也可以在一个循环中做到这一点,甚至可以调用多个工具。现在,这才是你真正称之为代理的。代理在循环中推理工具。现在,我们发现大多数人要么属于两种阵营之一。所以,他们说,“是的,你应该只构建代理系统。你应该只给它工具,让它自己解决。”而另一些人则更倾向于,“不,它需要是一个 DAG。它需要是确定的。”但关键是,最好的系统结合了两者。而这正是我们现在正在做的,因为模型变得越来越强大。但我们仍然真的想从结构化的地方开始,尽可能地路由和分类,并且只将工具作为最后的手段。现在,这目前是如何工作的,我想在这里截取这个截图。实际上,让我为你放大一点。所以,这是我刚刚从 Langfuse 截取的截图,这是我们用于所有客户系统的监控工具。在这里左边,你可以看到这个工作流经历的所有事情的完整跟踪,我点击了这个工作流中的一个特定步骤,这里我们有一个 ChatGPT 5.2 进入聊天,在这里你可以看到所有的工具调用。所以,如果你在这里看到,比如在这个“分析工单备注”之上,之前还有五个步骤。所以,我想向你展示这个,因为正如我所说,这是一个我们已经优化了一年半的系统。它是一个客户服务支持系统。它自动化了几乎整个公司的客户服务团队,只将真正需要人工干预的工单升级。它就是这样工作的,它就是这样运行的。所以,我认为这张图片比一千个单词或教程更有说服力,因为你可以从中学习很多。所以,我们现在所做的是,在某些情况下,例如在 Denaware 缺陷代理的边缘节点,我们给它一系列工具,这就是你在右边看到的。所以,为了解决这个问题,代理有时需要请求缺失的信息,比如餐具套装里有多少件。然后它还可以获取特定的产品规则。所以,对于这个产品套装,实际的规则是什么?也就是说,知识库里有什么关于公司政策的,关于换货或退款的。在边缘节点拥有这个以及所有这些工具调用现在效果非常好。然后你可以看到,如果我向下滚动一点,你可以看到它决定进入这里,并且它决定在这种情况下它需要请求缺失的信息。好的。所以,我想带你通过这个例子来展示一个生产系统的演变,它总是从尝试尽可能简单地解决问题开始。好的,我们有更多的边缘情况。让我们创建一个我们可以控制的图。哦,项目真的变得越来越复杂。让我们专注于边缘节点。在那里我们引入了一些工具调用。所以,这些是我们目前在生产环境中运行的系统的基本级别。所以,我刚才分享的项目来自一个我们已经合作了很长时间的客户。这就是我们用我们的开发公司所做的。现在,如果你是一名工程师,并且你一直在考虑承担副业项目的想法,也许作为自由职业者开始,甚至是你自己的 AI 开发公司,但你真的不知道从哪里开始,或者如何找到第一个项目,你可能想查看描述中的第一个链接。有一段视频是我去讲解我如何可能帮助你。我已经经营了一个社区四年多了,我们专门帮助开发人员和数据专业人员开始自由职业。做什么,不做什么,如何找到你的第一个项目,你需要知道的一切才能开始。所以,如果这听起来很有趣,请务必查看一下,你就可以加入我们,与我们一起工作。现在,当我们进入级别四时,事情就变得更有趣了。所以,在这里我们进入了所谓的代理容器。这些是为工具提供动力的容器。例如 Open Claw Cloud Codec CLI。在这里,我们比 LLM 深入得多,拥有大量工具。我们还为它提供了一个完整的运行时访问权限,一个完整的运行时,它可以执行 bash 执行,它有文件系统访问权限,它可以进行 grep 搜索,网络搜索,我们可以通过 MCP 或只是脚本为它提供外部 API。然后在这个代码库中,在第四部分代理容器中,我有一个关于如何使用 Cloud Agent SDK 来完成的例子。所以,有一个 Python SDK。你可以 pip install cloud-agent-sdk。它在后台使用 Entropic,但它非常酷,因为它提供了与 Cloud Code 中相同的功能和特性,但实际上是在你自己的应用程序中。所以,它可以运行 bash 命令,它可以搜索文件,它可以上网,这也是你可以开始感觉到的,“看,这有点棘手,因为这非常强大,但使用像 Cloud Code 这样的工具,当你坐在机器后面,并且你在循环中,并且你在查看事物时,这是一种情况,但在生产系统中,它可以真正地爬取文件系统,进行查找,可能进行更改,爬取互联网,这很棘手,它非常强大,但这就是为什么它非常实验性。所以,我将展示几个使用 Cloud Agency SDK 作为容器的例子,但你也可以用替代方案来设置它。你可以用 Pydantic 或 LangGraph 构建类似的东西。如果你看看 Openclaw 是如何构建的,他们使用了 Pymono。这是一个 TypeScript 库,但这是他们使用的代理编码代理容器。但这是一个非常新的、不断发展的领域。所以,让我们通过几个例子来了解一下,因为这真的很酷,如果你看到它组合在一起。所以,我将首先向下滚动到底部,这样你就可以看到我们要做的。你几乎可以通过该 SDK 设置一个 Claw 代理,并且有很多参数可以填写。所以,你可以为它提供工具访问权限。你可以说,这些是允许的工具、系统提示、MCP 服务器、权限、最大预算,甚至子代理环境变量。有很多东西可以配置,但这基本上设置了一个 Cloud Code 类的环境,你可以在你的后端应用程序中运行它。所以我在这里设置了一个快速的系统提示,说它可以浏览我们在这里的知识文件夹。所以我在这里放了一些 markdown 文件供它浏览,然后是允许的工具。所以,它可以读取,它可以 glob,它可以 grep,然后这里有一些 MCP 工具。所以,你也可以添加自定义工具,这基本上就是一个工具规范,通过它可以调用 API。所以,我们可以把所有这些都整合在一起。我们可以决定输出格式。所以,即使对于结构化输出,我们也可以设置一个最大预算,然后我们就可以启动它了。所以,目标不是逐行讲解。如果你想了解它是如何工作的,请转到这个文件,你可以仔细研究一下。但我想向你展示,当我们转到终端并运行它时,它看起来是什么样的。所以,如果我们现在启动代理四,并将其客户服务请求发送给它。所以,我们基本上给它一个简单的提示,比如“嘿,这是客户的消息,请浏览一下。”你现在可以看到,只需几行代码,它就在这个代理循环中。所以,它正在使用它所能访问的所有工具。所以,你可以看到它正在进行 glob 模式匹配,比如“我有什么可以访问的?”所以,我可以看到所有文件。让我读取它们。它正在浏览这些。然后在这里你可以看到它正在读取退款确认.md。所以,在这里你可以看到,我们正在让它变得非常代理化。你也可以看到为什么将它放入生产系统是危险的。现在,权限基本上是开放的。你绝对可以使其更安全。你可以将其放入容器中。你可以说,“嘿,不要上网。”你现在不能更改任何文件。这基本上是“ YOLO 模式”。在这里,你可以看到它创建了所有工件,即要采取的行动。但这正是我看到代理系统未来发展方向的地方。不仅仅是模型变得更好,能够用更多的工具和更多的上下文进行推理,而是围绕它的代理容器是如此非常重要。这就是为什么 Cloud Code 等现在如此出色。是因为代理容器。所以,作为一名人工智能工程师,这是一个非常重要的领域,需要了解不同类型的人工智能容器,并从它们使用的模式中学习。例如,Pymono,这都是开源的。所以,你甚至可以查看这里的工具,即使它是 TypeScript。我假设你们大多数观看者是 Python 工程师,但你可以看看模式,或者只是让 Cloud Code 创建一个 Python 版本,你就可以开始理解这一切是如何组合在一起的。所以,如果我们再深入一个级别,那就是多代理编排。我还有一个例子。因为 Cloud Code Agent SDK 中已经嵌入的一个很酷的功能是,如果我回到代理,抱歉,在这里回到设置,你可以看到你甚至可以在这里添加代理参数。所以,一个代理遵循代理定义,但它有另一种描述提示的方式。你可以为其提供工具访问权限,你还可以指定一个模型。真正的区别在于,编排器决定调用的每个代理都有一个单独的上下文窗口。所以,这是个大问题,对吧?尤其是在你进行更长的任务,更长的时间跨度时。你可能需要搜索知识库。代理可能需要深入研究某事,然后它会膨胀上下文窗口,一旦找到答案,你可能已经达到了 70% 到 80%。如果你使用这种带有子代理和编排器的模式,通过它们在 Cloud Agent SDK 中的设置方式,它们都有一个单独的上下文窗口。所以,它们会生成一个 Cloud Code 的单独版本,一个单独的窗口,然后再次出去,进行研究,然后向编排器报告。所以,编排器的上下文保持干净。现在,同样,这不是你只能用 Cloud Agent SDK 做的事情。你也可以用 Pydantic、LangGraph 进行多代理编排。在那里,你对是否要共享上下文窗口或是否要从头开始有更多的控制权,但 Claw Agent SDK 使设置变得非常容易,而且也很有趣去尝试,但还很早。所以,正如我所说,我们目前还没有在任何生产系统中使用它,并且正在内部进行测试,因为它在某些情况下是不可靠的。它也可能相当昂贵。那么,这让我们现在处于什么位置?所以,在这个最终的图表中,我结合了所有五个。我们有增强型 LLM,我们有定向无环图,这是整个工具调用,代理容器,甚至多代理编排器。然后,作为一名工程师,你应该记住的是,一如既往,使用能够完成工作的最简单的级别,并将它们结合起来。你可以结合它们。它不是非此即彼的方式,但仅仅从你的 DAG 开始,并在其中使用简单的增强型 LLM 节点,这仍然是可靠的 AI 工程的基础。我们已经看到,LLM 模型现在已经足够强大,可以在边缘节点中使用工具调用。这完全没问题。但只有在复杂性增加时,并且当你真正需要时才使用它们,因为一个确定性的、几乎是确定性的 DAG 总是比一个带有五个工具调用的 LLM 节点更容易维护和创建单元测试。然后这里有一个最终的表格来总结这一切。对吧?所以,考虑成本,考虑延迟。这些多代理系统运行时间长,而且花费金钱。在某些情况下,这完全没问题。如果你有一个编码代理,你没问题。花钱,花 10 分钟,花你想要的时间。如果你能解决问题,那完全没问题。在另一端,你有简单的自动化,廉价的快速自动化,我们只是希望它们快速并且我们希望它们更具确定性,对吧?这就是概述。这就是全景,所有五个结合在一起。我们现在根据我们正在解决的每个问题战略性地决定我们需要什么,但我们结合它们。我们将所有这些整合到一个系统中。好了。所以,这就是五种人工智能代理复杂性级别,以及我们目前在生产中使用的有效方法,以及我认为未来将走向何方。在我看来,拥有这些不同复杂性级别的心理模型非常重要。不仅在决定为你的项目使用什么时进行推理,而且在新工具出现时也是如此。例如,就像上个月我们对 Open Claw 进行了所有炒作,对吧?对我来说,总是很有趣的是,大多数人根本不知道像 Open Claw 这样的工具底层的抽象是什么,以及它是建立在什么之上的。所以,他们认为,大多数人认为现在我们有了 Open Claw。这是一个全新的 AI 范式,突然之间它可以做到,我们可以自动化一切,因为 Open Claw。现在,不要误会我,Open Claw 是一个很棒的项目。它构建得很好。它非常酷,但它基本上建立在我们已经知道的所有底层原理之上,对吧?使用 LLM,为它们提供工具,拥有正确的系统提示,现在它只是借鉴了像 Cloud Code 这样的编码代理的原理。所以,也能够创建文件,爬取文件系统,搜索文件。现在,突然之间,你可以将其挂钩到像 WhatsApp 这样的东西。你拥有一个非常神奇的系统。你作为一名工程师现在理解它,并且可以将其分解,这样每当有新技术或新趋势或 AI 的爆发,人们说一切都在改变时,你知道我们每周都会有,你可以看穿它,然后看到“啊,这只是另一个代理容器,我们有一个 LLM,我们有一堆工具,我们有文件,我们有提示”,因为这就是全部。好了,到这里这段视频就结束了。我还想稍微更新一下我一直在做什么,因为如果你关注这个频道一段时间了,你就知道我没有像我希望的那样在 YouTube 上保持一致。我喜欢更一致,但它很棘手。你知道,你们大多数人可能当我想到我时,你会想到“YouTube 上的 Dave”,对吧?但对我来说,在幕后,我现在经营着三家企业。而 YouTube 对我来说只是其中的有趣部分,只是分享我正在做的事情。但有时它就是太忙了。而且这三家企业,我不是一个人在经营所有事情。当然,我为所有不同的企业都有联合创始人,但幕后仍然有很多事情在发生。所以,对于 YouTube,我一直在努力寻找,好吧,我什么时候有时间?但我也真正想分享什么?因为再次,如果你关注我一段时间了,你就知道,我喜欢坚持基础知识,而不是真正陷入炒作的事情,对吧?这里是 Open Claw,它改变了一切。你需要知道的视频。有很多这样的人,但这真的不是这个频道的风格。你关注我并来到这些视频不是因为这个。但话又说回来,如果你看看当前的人工智能工程的现状,除了我在这段视频中描述的变化之外,过去两年并没有太大变化。就像真的,听起来很疯狂。人工智能有很多事情在发生,但人工智能工程原理,我们在这里分享的东西基本上还是一样的。所以,我已经涵盖了其中大部分主题。所以,现在我也在努力弄清楚,我真正想涵盖什么?其中一个想法就是分享我幕后工作的更多内容。我认为这可能真的很有趣。所以,它不像教程那么专注,而是更多地分享其中的见解。但是,我也很好奇。这就是为什么我在这里有点唠叨,想问你,嘿,你想让我涵盖什么?你想看什么?你目前在做什么?你正在努力解决什么问题?有哪些挑战?对吧?所以,是的,这是其中一件事。而且,我刚从近一个月的开普敦之旅回来,我们在那里举办了一个大型人工智能活动,与该领域的一些顶级创作者一起。我将在这里放一张照片。你可能会认出其中的一些面孔。所以我花了一个月时间在开普敦。而且,我当时也想在那里录制一段视频,但每当我不在我的办公室,没有这些设备时,我总是会懈怠。所以,也有这种情况。所以,是的,生活就是忙于创业,与人联系,旅行,然后不幸的是,有时 YouTube 会稍微退居其次。但我仍然在这里为你服务。我没有计划退出。我想继续。我想至少等到我们有了某种形式的 AGI 时,我想乘上人工智能的浪潮。我想在那里。我想分享我们如何能够与它合作,以及我们如何围绕它构建系统,这一切看起来是什么样的。但是,如果你一直看到最后,请告诉我。我感谢你。感谢观看,然后我将在下一期视频中见到你。