00:00:00Google Workspace 对 AI 代理来说变得更强大了,因为他们刚刚发布了
00:00:04一个强大的 CLI 工具,让你的代理能与任何 Google Workspace API 交互。
00:00:09无论是读取云端硬盘文件、发送邮件还是创建幻灯片,这一切都是专为
00:00:14AI 代理从头构建的,这意味着它们消耗的 Token 极少,并在运行时
00:00:19动态创建命令,确保 API 始终是最新的。但现在像 Google 这样的大公司
00:00:24为以前(且现在仍是)的 MCP 服务器创建了 CLI,这对于
00:00:29MCP 的未来意味着什么?点击订阅,让我们一探究竟。
00:00:33上个月我做了一个视频,关于 Playwright 为其之前的 MCP 服务器制作了 CLI。
00:00:42现在看来 Google Workspace 也做了同样的事情,Twitter 上的人们都为之疯狂。
00:00:46这是由 Justin 开发的 CLI 工具,他写了一篇博文详细介绍了他是如何
00:00:52专门为代理打造它的,我们稍后会讨论。它确实拥有超过 100 个
00:00:57可以从 skills.sh 下载的技能,这当然让 G-Man 非常高兴。
00:01:01但在深入了解它的功能之前,我们需要先完成设置,因为只要了解
00:01:06Google Cloud 相关工具的人都知道,过程并没那么简单。让我展示给你看。
00:01:10首先也是最重要的,你需要访问 Google Cloud 控制台。你可以新建
00:01:15一个项目或使用现有项目。我新建了一个。然后你需要安装 gcloud CLI,
00:01:21如果你用的是 Mac,可以通过 brew 安装。安装好 Google Workspace CLI 后,
00:01:26你需要运行这条命令来进行设置,步骤非常直观。
00:01:31使用你的邮箱进行认证,选择或设置一个 GCP 项目,然后选择你想访问的 API。
00:01:37完成这个阶段后,你需要前往 API 和服务凭据,
00:01:42创建一个新的 OAuth 客户端 ID,我相信任何应用类型都可以。我选了 Web,
00:01:48但我确信桌面版也行,因为你只需要这个客户端 ID 和密钥。
00:01:53完成后,下一阶段就有点棘手了,因为运行这条命令后,
00:01:57你需要选择认证范围。在这个演示中我选择了全部,
00:02:02虽然这并不理想,但我只是为了测试 API。然后你会得到一个巨大的 URL 用来在浏览器中认证。
00:02:08首先,你需要确保这里没有拼写错误,否则可能会报错,
00:02:12但你需要记下 localhost 后面的端口号,我这里是 51065。
00:02:18然后回到云端控制台,点击 API 和服务,OAuth 同意屏幕,
00:02:23接着点击客户端,选择你的 Web 客户端。在下方“已授权的重定向
00:02:28URI”处,将其更改为那个端口号。也就是 51065,还没完全结束。
00:02:33转到受众,向下滚动并添加你的电子邮箱地址(如果还没添加的话)。
00:02:37如果你已经有了发布的应用,就不会有这个问题,
00:02:40但因为我只是在测试 API,所以我使用的是测试模式。
00:02:44所以我需要在这里添加我的邮箱以及所有想要使用该 CLI 的用户邮箱。
00:02:48完成这些后,你可以复制这个 URL 并按照步骤配置 CLI。
00:02:52完成后,你应该会看到成功状态。如果你没看到这个屏幕,
00:02:56请等待几秒钟再试,因为注册重定向 URI 确实需要一点时间。
00:03:01整个过程,单是设置就花了我最长的时间去琢磨,
00:03:06这说明我不经常使用 Google Cloud 工具,但一旦搞定,
00:03:11你应该就能在这里看到详情,这意味着真正的乐趣开始了。瞧瞧这个。
00:03:15现在我要从简单的开始,让 Claude 给我提供最近 10 封邮件的信息。
00:03:19希望里面没什么敏感信息。通过使用 GWS CLI,
00:03:24它提供了每封邮件的发件人、主题、日期和标签信息。
00:03:28我们可以看到,完成这个任务只消耗了总上下文的 9%,纯粹是因为
00:03:33这里没有 MCP 工具。大部分上下文都被消息占用了。好,我们试试别的。
00:03:38我要让 Claude 帮我写一封草稿邮件,主题是“我爱 Claude”,正文是一首
00:03:44优美的诗。同样,它调用 GWS CLI,通过 bash 运行了一些 Python。现在它完成了,
00:03:50我们可以看到,我这里有一封 Claude 写的新草稿。我放大一点。
00:03:56这封邮件里有一首诗,表达了我有多爱 Claude。现在,
00:04:00Claude 使用 GWS CLI 的方式有一点非常有趣。如果我们查看它过去运行过的命令,
00:04:05可以看到这里有很多子命令,还有一个带有 JSON 内容的 params 标志。
00:04:11真正有意思的是,如果作为一个人类,我想做同样的事情,
00:04:16输入 gws help 来查看所有子命令,我并不能看到全部,只能看到一小部分。
00:04:23如果我想深入了解某个特定命令,我必须不断使用 help 来获取更多信息,
00:04:28并反反复复这样做。但代理能够非常快速地获取
00:04:32这些信息。它甚至知道获取正确数据所需的确切参数。我的意思是,看这里。
00:04:37我在这里输入了提示语。它只用了一次 help 就能弄清楚所有这些。
00:04:43我们稍后会深入探讨它是如何做到的,但我们可以看到,
00:04:48CLI 的帮助部分列出了用法,并提到了服务、资源和子资源。
00:04:53我们可以在下面看到服务。如果你想要更多信息,
00:04:57还可以查看带有服务资源和方法的 gws schema。好,再试一件事。
00:05:03我要让 Claude 创建一个新的幻灯片文档,其中一页包含
00:05:08标题“Claude 猫”,另外四页包含猫的照片。它再次使用了 gws CLI 请求
00:05:15帮助,然后深入挖掘幻灯片和演示文稿命令的帮助信息。现在它完成了演示文稿的制作。
00:05:20让我们在浏览器里看看。就在这。你可以看到我之前已经做过一个
00:05:24“Claude 狗”的测试,但这次试试这个。我们有“Claude 猫”的标题和副标题,
00:05:30一个精致的集合,包含五张猫的照片。这真的很酷。而且
00:05:36我们只用了 15% 的上下文。所以我们可以继续做各种不同的事情。比如这里,
00:05:42我创建了一个包含美国各州人口的 Google 表格文档,底部有总计,
00:05:47甚至在我的日历中安排了活动。现在你可能已经注意到,我做这一切
00:05:52并没有安装任何特定于 Google Workspace 的技能,但这个项目确实有
00:05:58许多可用的技能,包含助手、角色和处方,用于处理诸如屏蔽专注时间
00:06:05和重新安排会议等更复杂的操作。那么 Justin 是如何让它运作得这么好的呢?
00:06:10首先,他优先考虑了嵌套的 JSON,这虽然对人类来说难以阅读,但对代理来说更容易。
00:06:16他还让文档在运行时可查询,我们之前稍微演示过,这里的 schema
00:06:21部分确保了如果某些内容更新或代理输入了错误参数,
00:06:26它确切地知道去哪里检查正确的参数,而不会产生任何混淆。
00:06:31参数或字段也可以用来减少 API 返回的信息量。
00:06:36因此代理可以将信息限制在它需要的范围内,而不是获取一些不需要的
00:06:42额外信息,从而减少了 Token 的消耗。当然,他还使用了针对代理
00:06:47特定指导的技能,虽然我在演示中没用,但它们提供的信息比
00:06:53代理通过使用 help 标志获得的信息更多。所以很明显,MCP 服务器过时了,技能和 CLI 才是未来,对吗?
00:06:59也不完全是,因为通过 MCP,代理可以直接调用函数,
00:07:06而不需要构建 shell 命令并传递 JSON,这就是 CLI 所做的。MCP 工具
00:07:11在链接复杂步骤方面也更好。而且当然,你不需要终端来运行它们,
00:07:16这就是为什么 Google Workspace CLI 确实有一个 MCP 选项。然而,CLI 消耗的 Token 确实少得多,
00:07:24即使启用了工具搜索工具。它们是便携的,这意味着它们可以与任何代理
00:07:28框架一起使用,或者如果你不想使用框架,也可以不用。而且独立复现
00:07:34这些命令进行调试也很容易。所以我认为这真的取决于你的使用场景,但在
00:07:40使用 CLI 时我也遇到了一些问题,比如生成的 URL 包含拼写错误,我完全
00:07:47不知道那是怎么发生的。整个重定向 URL 的 localhost 端口问题花了我好长时间才搞清楚。
00:07:52我不确定那是 Google Cloud 工具特有的还是仅仅是 CLI 的问题,但过程并不愉快。我确实
00:07:59遇到过 Token 更新不正确的问题,甚至为此创建了一个 GitHub Issue。好吧,
00:08:05其实是 Claude 帮我写的。我实际上一个字都没写,但对于一个不到一周
00:08:10就有超过 1 万个 GitHub Star 的项目来说,它已经拥有了充满希望的前景。
00:08:16说到充满希望的前景,如果你曾经想创建一个由 Bun 驱动的 Electron 应用,
00:08:21从而获得速度和极小的包体积,那么请看看我制作的这个关于
00:08:26Electrobun 的视频,它将向你展示如何将其用于一个简单的 Vite 项目。