스크립트
00:00:00大家好,我是 Karan Vedya,Composio 的联合创始人兼 CTO。
00:00:19当今大多数智能体工具调用
00:00:21仍然发生在一个领域。
00:00:23不用猜,就是软件工程。
00:00:26其他所有类型的工作都远远落在后面。
00:00:29如果模型不断进步,那么
00:00:32为什么我们仍然局限于智能体编程?
00:00:35这就是我今天要回答的价值数万亿美元的问题。
00:00:43三年前,编程智能体还只是自动补全。
00:00:47如今,软件工程已经完全实现了自动化。
00:00:50我们从不断按 Tab 键演变为让 Claude 大显身手。
00:00:56这简直就像魔术一样。
00:00:59为什么编程领域的发展会如此之快?
00:01:04大多数人会认为是模型的原因。
00:01:06是的,在过去两到三年里,模型确实有了很大的提升,运行环境也是如此,
00:01:13例如 Claude Code、Codex、Cursor。
00:01:17但仅凭它们自己是远远不够的。
00:01:20它之所以能成功,是因为围绕编程的所有基础设施和系统
00:01:26本来就是为智能体设计的。
00:01:27代码自带了智能体所需的支持。
00:01:31你有代码仓库、提交历史、测试、CI/CD、代码审查、代码检查工具,如果出错了还能回滚。
00:01:39诸如此类。
00:01:39正是这些围绕代码的系统,让你能够信任智能体。
00:01:45现在,我们将这些同样出色的智能体应用到其他所有领域,比如客服、财务、销售。
00:01:54但是在编程领域表现极其出色的智能体在这些地方却像是在盲人摸象,因为
00:02:00其他领域根本不存在围绕编程的那套基础设施。
00:02:04那么,我们该如何填补编程智能体与知识工作智能体之间的鸿沟呢?
00:02:11我们认为关键在于六个核心要素,而编程领域拥有这全部六个要素,知识工作却一个也没有。
00:02:19而这正是我们需要构建的。
00:02:20首先是集中化。
00:02:24编程智能体之所以运作得如此出色,
00:02:26部分原因在于它们非常接近真实数据源。
00:02:34它们知道做什么、为什么这样做以及如何去做。
00:02:37你给它们代码仓库、基础设施即代码,然后闭环让模型发挥作用。
00:02:43大显身手。
00:02:44智能体从单一地点(即代码库)开始,获取所需的一切。
00:02:51这正是当今知识工作所缺失的。
00:02:55例如,一笔单独的交易分散在五个不同的平台上。
00:03:00记录在 Salesforce 中,文档在 Notion 中,电子邮件在 Gmail 中,对话在
00:03:05Slack 中,支持历史记录在 Zendesk 中。
00:03:09这里没有单一的真实数据源,也没有获取所有信息的集中地点。
00:03:14编程则是独立的,而每个应用程序都有自己的登录名。
00:03:18在知识工作智能体开始干活之前,它必须先去获取所有的线索,
00:03:23并把它们自己串联起来。
00:03:27而这仅仅是编程智能体起步时的基础点。
00:03:30它本来就拥有这一切。
00:03:32所以,你又怎能指望知识工作智能体做到与编程智能体同等水平的工作呢?
00:03:39因此,我们要构建的第一件事就是缺失的中枢。
00:03:42一个汇聚了你所有应用、所有连接、所有登录信息的单一场所。
00:03:46这样智能体就不需要去做把它们全部缝合在一起的苦差事。
00:03:51它们可以在一个地方找到所有内容。
00:03:55它们获得的是编程智能体起步时就有的基线,即代码库,以及跨所有技术栈的信息,
00:03:59全都集中在一个地方。
00:04:02这就是你起步的基础,你还可以向你的智能体授予写入权限。
00:04:09智能体需要的下一件事是历史感,也就是回溯过去的能力。
00:04:16在代码中,这是白送的。
00:04:18Git 记录了进入的每一项内容、做出的每一次更改。
00:04:23因此智能体随时可以回过头去查看某项更改是如何做出的。
00:04:27为什么某个东西管用,为什么某个东西不管用。
00:04:31想想你实际会要求你的智能体去做的那类事情。
00:04:34我们过去因为某些故障不得不回滚一项更改,但这相当难办到。
00:04:40你能看一看并把它恢复回来吗?
00:04:43它只需通读历史记录,把它找回来并开始处理。
00:04:46历史记录不只是给智能体准备的。
00:04:49这也是为了让你保留一份代理正在做什么的记录。
00:04:53你可以看到智能体在做什么,它在哪里搞砸了,它在哪里做成了成功的事。
00:04:58与其盲目相信代理所说的话,你完全可以直接打开相关的应用
00:05:04去查看它究竟做了什么。
00:05:09现在,把同样的问题拿到知识工作领域来问。
00:05:12是什么导致 CRM 变成今天这个状态的?
00:05:16我的同事是怎么写出那封促成这笔交易的出色邮件的?
00:05:22升级支持问题甚至关闭支持问题的实际流程是什么?
00:05:27答案散落在数百个应用程序中,而且没有一个保存了历史记录。
00:05:31所以智能体没有记忆。
00:05:33它几乎每次都从空白状态开始。
00:05:36完全不知道之前尝试过什么、什么管用、什么不管用。
00:05:40而且你也没有任何东西可以查看。
00:05:44一旦智能体运行完毕,它会告诉你它已经成功完成了。
00:05:47你并不知道它是不是真的成功完成了。
00:05:49没有办法知道它做得对不对。
00:05:52而这正是所缺失的:工作记录。
00:05:56现在,由于一切最终都通过单一地点运行,也就是实现了集中化,
00:06:02我们可以在它之上构建一个层,即记录层。
00:06:06智能体在每个应用中所采取的每一个动作都可以被记录下来。
00:06:12它触碰了什么、跳过了什么、什么管用、什么不管用。
00:06:17通过这一点,首先,智能体获得了记忆。
00:06:20它能够回看以前是如何处理类似任务的,什么取得了成功,并再次复制它。
00:06:28它不会每次都从空白状态开始。
00:06:31第二,你获得了信任。
00:06:33你终于可以清楚地看到智能体到底在做什么了。
00:06:36因此,你不用再祈祷它能做对事情,而是可以回头检查,如果它做了不好的事情就能及时抓住它。
00:06:44随着你越来越多地看到它做正确的事情,你就会建立起信任,并把更多的任务卸载给它。
00:06:50智能体需要的下一件事是上下文。
00:06:53仔细想想,上下文其实有两种。
00:06:57第一种是平台的形态,即架构。
00:07:01事物如何相互流转,事物是如何绑定的,数据流向如何。
00:07:05这有点像高级工程师脑子里装着的地图,而初级工程师通常需要三个月才能摸清。
00:07:12第二种是风格。
00:07:13这不是指客观上什么是对的,而是更偏向于在你们公司什么才叫做好。
00:07:19也就是你们做事的方式,比如检查工具、类型检查等等。
00:07:24也许你会使用别人根本不会用的 TypeScript 装饰器。
00:07:29这并不完全写在某本操作指南里。
00:07:32它更多地存在于你的代码库中。
00:07:34它在你的代码库中随处可见。
00:07:35因此智能体可以直接去查看并弄清楚规范、你的喜好、检查工具、格式化工具等等。
00:07:45现在,谈到知识工作,也是一样的道理。
00:07:48假设你正在为客户写一份文档。
00:07:50甚至在动笔之前,我都必须打开数据库来提取他们的使用情况,事后检查他们实际是如何使用各种功能的,
00:07:58还要打开 Salesforce 查看他们的交易详情。
00:08:01只有到那个时候,我才能开始写文档的第一行。
00:08:05答案并不是孤立存在于其中任何一个工具里的。
00:08:09我之所以能写出这份文档,是因为我把所有这些工具的线索串联到了我脑海中的一个单一上下文中。
00:08:15因此,把历史和上下文结合起来,这就是你映射组织运作方式的方法。
00:08:21而这部分内容是智能体无法轻易获取的。
00:08:26因此,正如我们做了集中化和日志记录——我们刚刚构建的那个记录层,它赋予了智能体记忆并让你检查它做了什么——
00:08:36还带来了一件更有趣的事情。
00:08:38如果你记录了足够多每个智能体在做的事情,你就会开始发现规律。
00:08:42你会开始看出组织是如何运作的,并开始形成技能,这某种程度上就是对组织运作方式的提炼。
00:08:51哪些方法管用,哪些不管用,过去是什么导致了失败,等等。
00:08:57记录不再仅仅是发生过的事情的历史。
00:09:01它是你的公司如何运营的写照。
00:09:03它实际上在三个不同的层面上发挥作用。
00:09:06一个工具通常是如何工作的,这适用于每个人。
00:09:09公司是如何做事的,以及你更喜欢如何做事。
00:09:13在你看开,什么才叫做好。
00:09:15而这正是知识工作智能体所缺少的上下文。
00:09:19工作到底是如何完成的。
00:09:21某种意义上的真实操作手册。
00:09:23以及公司和个人用户的偏好。
00:09:27现在智能体可以查询这些内容,不用再盲目猜测公司是如何运营的了。
00:09:34编程智能体之所以如此出色的另一个原因。
00:09:37它们会自我测试。
00:09:38工作会自我检查。
00:09:40进行验证。
00:09:41就在智能体编写代码的同时,一连串的检查随之而来。
00:09:44单元测试可以捕捉到微小的失误。
00:09:47集成测试则能捕获那些仅影响三层之外组件的问题。
00:09:52如果有什么地方出错了,类型系统甚至根本无法正常工作和运行。
00:09:57编译器甚至都无法构建。
00:10:00在此之上还有各种软件检查。
00:10:02静态检查器、格式化工具、bugbot.md、评审技能等等。
00:10:06这些能够确保代码符合你们团队喜欢遵循的标准。
00:10:12这些都不需要你操心。
00:10:14智能体会独立完成整个循环,确保代码符合标准并能够成功运行。
00:10:21现在,想象一下——不久前,我把我的 open claw 用在了一次招聘拓展上。
00:10:28向候选人发送群发邮件。
00:10:30它运行了。
00:10:31它发送了大量的邮件。
00:10:34你们当中有些人可能也收到了我那个open claw发出的邮件。
00:10:37它完全执行了我告诉它要做的事。
00:10:40但这也是一场灾难。
00:10:42那种最终会登上推特、头顶还挂着我的名字的灾难。
00:10:46是的,我想你们能看出当时那是一团糟。
00:10:51事情发生时我可一点也高兴不起来。
00:10:54关键是这样的。
00:10:55上一页幻灯片中的每一项检查都能通过。
00:10:58这些邮件都是有效的。
00:11:00地址都是真实的。
00:11:00它确实发送给了发过帖子的真人。
00:11:04世界上没有任何测试去真正质疑真正重要的事情。
00:11:10这封邮件压根就不该发出去吗?
00:11:13这就是差距。
00:11:14在代码中,这些测试会告诉你什么是错的,什么是对的。
00:11:17在这里,是互联网告诉我我错了。
00:11:21所以,我们要构建缺失的检查机制。
00:11:24上面那个线程的问题不在于拓展邮件本身是错的。
00:11:28而在于它在我甚至都还不知道的情况下就发了出去。
00:11:31所以,解决方法很简单。
00:11:33在它成为现实之前将其拦截。
00:11:35因此,我们有两种实现这一点的方法。
00:11:37第一,在智能体发送任何内容之前,它会检查我以前发送的邮件草稿,看它是否符合我的风格,是否符合我喜欢的标准。
00:11:47第二,在现实场景中做出任何破坏性操作之前,我们为智能体提供沙盒(send boxes),它们可以模拟真实工具,并在这些沙盒之上执行操作。
00:11:59因此,爆炸半径不会冲击现实世界,而是会冲击沙盒,然后我可以在智能体做真正的事情之前进行审查。
00:12:07把这两者结合起来,你就拥有了知识工作从未有过的东西。
00:12:11一种让智能体在事情成为现实之前检查自己工作的方法。
00:12:16它终于可以自己闭环,而不用停下来等待你;有了这一切,你就可以信任它正在采取的行动,而不会遭到我发的那些推特的轰炸。
00:12:29接下来,智能体需要的是治理。
00:12:32建立信任就是控制智能体可以做什么,在智能体周围建立正确的墙壁。
00:12:39在代码中,这个问题基本上已经解决,并且拥有多层防御。
00:12:44智能体可以在自己的分支上随心所欲地做任何事,但它不能合并到主干(main)。
00:12:49人类审查员会在它合并到主干之前介入。
00:12:52关键文件有代码所有者(code owners),所以每当它触及其中一个文件时,合适的人就会参与进来。
00:12:58我们使用智能体发布到预览部署,绝不让它触及生产部署,因此我们在那里对它进行控制。
00:13:04治理不是单一的关卡,而是多重关卡,并且根据它所暴露的爆炸半径,每个关卡的大小各不相同。
00:13:12所有这些都不会在安全的地方拖慢智能体的速度,只是防止它把生产环境搞砸。
00:13:19这些界限越紧密,你就能越信任智能体,并放手让它狂飙突进。
00:13:25你可能看过这个。
00:13:27Meta 超级智能实验室的对齐总监将一个智能体连接到她的电子邮件,然后它开始破坏她的电子邮件,删除了很多邮件。
00:13:36她告诉它停下,但它一直在继续,最后她不得不跑到一台物理机器前去阻止它,但到那时,200封电子邮件实际上已经消失了。
00:13:45她事先在提示词中告诉过它,在处理此类情况之前要进行确认,但这只是一个提示词,它很可能会被压缩掉。
00:13:53如果一个全职工作就是 AI 对齐的人都无法正确提示智能体,那么我们大概没有人能做到。
00:14:03这就是为什么这些智能体如此难以信任的真正原因,不是因为它们比编码智能体更差,而是因为它们周围没有墙。
00:14:12在代码中,在我们早期的开发过程中,墙就已经内置到系统中了。
00:14:17知识工作到处也有一些零星的碎片。
00:14:20例如,Gmail 有作用域(scopes)。
00:14:21Salesforce 有权限级别。
00:14:23但它太分散了,以至于很难进行真正的控制,人们最后大多还是通过提示词来做到这一点。
00:14:32而提示词是脆弱的。
00:14:34智能体会找到这些漏洞。
00:14:36有些事情会被压缩掉。
00:14:38而且在规模化时,这些防线中有一道会崩溃,你也会落入同样的境地,你那 200 封重要的电子邮件正在消失。
00:14:47那么,真正能阻止它的不是更好的指令,而是智能体无法跨越的墙,即使它忘记了这堵墙的存在。
00:15:00所以我们在两个层面上构建这些墙。
00:15:03第一层是确定性的,控制智能体可以触及什么、它拥有什么访问权限。
00:15:09招聘智能体可能只能阅读电子邮件。
00:15:13客服智能体可以创建电子邮件草稿,但实际上不能发送。
00:15:17边界存在于这些智能体之外。
00:15:19智能体无法与之争辩、无法将其遗忘或被压缩掉。
00:15:24指令失败是因为它活在提示词中的智能体内存里。
00:15:28这个则不然。
00:15:30但仅凭访问权限是救不了她的,因为她实际上在构建一个电子邮件智能体。
00:15:36所以它绝对需要访问该电子邮件。
00:15:39我们做的另一件事是提供策略,也就是你可以用自然语言定义智能体在拥有这些访问权限时可以做什么。
00:15:49比如“未经我的允许,切勿删除超过 10 封电子邮件”。
00:15:53切勿向特定域之外发送电子邮件。
00:15:56即使拥有那些访问权限,也能控制行为的规则。
00:16:00因此,在这两件事之间,一层控制智能体可以触及什么,另一层可以控制它利用这些触及权限能做什么行为。
00:16:09合在一起,这就是针对智能体的真正的治理。
00:16:11不是要求智能体守规矩,而是强制规定它能做什么。
00:16:17最后一个支柱,可逆性。
00:16:20这就是当事情出错时我们所面对的。
00:16:25我能撤销它吗?
00:16:27在代码中,你几乎总是可以。
00:16:30每一个更改都被记录下来了。
00:16:32事情可以被回滚。
00:16:33你可以通过 git revert 撤销最后一个提交,或者通过 git bisect 找到破坏生产环境的提交并将其还原。
00:16:41我是说,这并非十全十美。
00:16:44我不会假装成那样。
00:16:45如果有些东西进入生产环境并损坏了,那总是糟糕的。
00:16:48但它仍然不是永久性的。
00:16:50你仍然可以从中回退。
00:16:51正是这一点让你有信心让你的智能体自由发挥并施展一些魔法。
00:16:57因为即使它们把事情搞砸了,你也有退路。
00:17:03对于知识工作,没有撤销按钮。
00:17:05比如想想收件箱。
00:17:07那 200 封电子邮件已经没了。
00:17:09它们已经消失了。
00:17:10顺便说一句,这还算正常情况。
00:17:12灾难性的情况是发出了一封你无法撤回的电子邮件。
00:17:15一笔已经汇出的款项,因此你无法拿回这笔钱。
00:17:18一条被删除的记录,永远消失了。
00:17:20实际上,知识工作中的大多数操作都没有撤销按钮。
00:17:24而这改变了整个方程式。
00:17:27这改变了爆炸半径。
00:17:29有了代码,你可以在事后信任智能体。
00:17:31让它运行。
00:17:32检查结果。
00:17:33如果错了就撤销。
00:17:34在这里,没有回头路可走。
00:17:36留给你的唯一选择就是在智能体采取行动之前进行信任。
00:17:40这就是为什么这些智能体给人一种编码智能体从未有过的危险感。
00:17:44并不是因为它们经常失败。
00:17:46而是因为在这里失败是永远的。
00:17:49所以要么你完全预先防范,要么就绝不让它行动。
00:17:55老实说。
00:17:56可逆性是知识工作中最为难复制的。
00:17:59真正的撤销——就像代码中存在的那种——在知识工作的各种场景中可能并不存在。
00:18:04但我们有一些存在撤销功能的场景,我们称之为...
00:18:09比方说你添加了一个标签。
00:18:11你随后可以删除该标签。
00:18:14但对于根本无法撤销的操作,比如硬删除(会从收件箱中让邮件消失的删除),
00:18:21我们再次提供了一个沙盒,智能体可以在沙盒中率先执行该操作,
00:18:25你可以对其进行审查,然后它才会真正进入生产环境。
00:18:30所有这些都不会触及真实世界。
00:18:31这就是全部的转变。
00:18:32在代码中,你可以在错误发生后撤销它。
00:18:35在这里,你在错误发生前将其拦截。
00:18:37时机不同,结果相同。
00:18:39一个不会造成严重后果的错误。
00:18:41再次想想你。
00:18:42对于我们能够逆转的操作,我们会给它一个撤销按钮。
00:18:45对于无法逆转的操作,智能体首先会进入沙盒,
00:18:48她会收到通知:你的 1200 封电子邮件将被删除。
00:18:52你想要这样吗?
00:18:54现在还没完成。
00:18:57但在我们经历的数十亿次操作中,
00:19:00我们一路在学习哪些可以回滚、哪些不能,
00:19:04并据此准备沙盒。
00:19:09如果你主要想带走今天的一点感悟,请记住这个。
00:19:11两年来,模型一直是瓶颈。
00:19:14所以每个人都在竞相追逐更好、更强的模型。
00:19:17现在,模型已经足够好,软件工程已经达到了 100% 自主化。
00:19:23但现在其他一切都成了瓶颈。
00:19:26编写你代码的同一个模型也可以用来做招聘、销售和其他知识工作。
00:19:36但目前它是在盲目工作。
00:19:39没有历史记录、没有上下文、没有验证方法、没有护栏、没有撤销。
00:19:44所以瓶颈已经转移了。
00:19:48现在它是还没有人构建的基础设施,而这正是我们在 Composio 正在构建的。
00:19:54是的,我们总共驱动了数十亿次工具调用,每个月有 3 亿次工具调用在发生。
00:20:02如果你正在构建智能体,只需将其指向 Composio,就能见证知识工作奇迹的发生。
00:20:08如果你想构建 AI 智能体的未来底层基底,请来找我。
00:20:13我们绝对在招人,还有很多很多事情要做。
00:20:17模型会不断变得更好。
00:20:19瓶颈不会是模型。
00:20:21而是它周边的那些东西。
00:20:22谢谢大家。
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기