gwscli:专为 AI Agent 打造的 Google Workspace 全能命令行工具(搭配 Claude Code)

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

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 项目。

Key Takeaway

gwscli 为 AI 代理提供了一种比传统 MCP 更轻量、高效且易于扩展的方式来全面接管 Google Workspace 的各项功能。

Highlights

Google 发布的 gwscli 是专为 AI Agent 深度优化的 Google Workspace 命令行工具

该工具相比传统的 MCP 服务器具有更低的 Token 消耗且更易于 Agent 动态调用 API

gwscli 支持读取邮件、创建云端硬盘文件、制作 Google Slides 幻灯片等多种自动化任务

开发者 Justin 通过嵌套 JSON 和运行时可查询文档提升了 Agent 对复杂参数的理解力

gwscli 的优势在于其便携性、可调试性以及与各种 AI 框架的良好兼容性

尽管目前在 Google Cloud 认证设置和 Token 刷新方面仍存在一些配置上的挑战

该项目在发布不到一周内即获得超过 1 万个 GitHub 星标,展现了巨大的潜力

Timeline

gwscli 简介及其对 AI 代理的意义

视频开篇介绍了 Google Workspace 新推出的 CLI 工具 gwscli,强调其专门为 AI 代理的交互逻辑而设计。它能够处理云端硬盘文件、发送邮件以及创建幻灯片等任务,核心优势在于消耗的 Token 极少。该工具允许代理在运行时动态创建命令,确保始终调用最新的 API 接口。视频提到了这种 CLI 模式与传统 MCP 服务器之间的竞争关系,并引发了对 MCP 未来发展方向的思考。开发者 Justin 编写的博文详细说明了该工具如何集成了超过 100 种技能,极大提升了 AI 代理的功能边界。

复杂的 Google Cloud 项目配置与认证流程

这部分详细演示了使用 gwscli 前必须完成的繁琐设置步骤,包括访问 Google Cloud 控制台和创建新项目。用户需要安装 gcloud CLI 并通过 OAuth 客户端 ID 进行认证,作者提醒在此过程中选择 Web 应用类型较为常用。其中最棘手的部分是配置“已授权的重定向 URI”,必须确保 localhost 端口号与 CLI 运行时的输出完全一致。此外,由于处于测试模式,必须在 OAuth 同意屏幕中手动添加测试用户的电子邮箱。作者直言这是整个过程中最耗时的部分,但一旦配置成功,真正的自动化乐趣便会随之而来。

实际应用演示:邮件处理与草稿生成

作者通过 Claude 配合 gwscli 展示了读取最近 10 封邮件的功能,并分析了该过程仅占用 9% 的上下文空间。随后,他指令 Claude 撰写一封包含优美诗歌的邮件草稿,系统通过 Bash 成功调用 Python 脚本完成任务。视频深入分析了 Agent 是如何利用 help 命令和 JSON 参数来理解复杂的 API 结构的。普通用户难以阅读的长串子命令,对于 Agent 来说却是获取精确指令路径的高效媒介。通过 schema 标志,Agent 甚至能一次性搞清楚所有必需的参数,展现了极强的自主学习能力。

进阶演示:自动生成幻灯片与表格任务

在此环节中,作者展示了如何让 Claude 自动创建包含多张猫咪照片的 Google Slides 幻灯片演示文稿。代理通过不断挖掘幻灯片服务的帮助信息,成功生成了标题页及后续的内容页。除了幻灯片,gwscli 还能胜任创建包含复杂数据的 Google 表格以及在日历中安排日程等任务。令人印象深刻的是,这些操作都维持了较低的 Token 使用率,通常在 15% 左右。即便没有安装特定的技能插件,Agent 依然能通过 CLI 的自述文件自行探索并执行大部分基础指令。

gwscli 的技术设计理念与底层逻辑

视频详细解释了 Justin 在设计该工具时采用的几个核心原则,首先是优先考虑嵌套 JSON 以适应 Agent 的阅读习惯。其次,文档被设计为运行时可查询的,这意味着 Agent 即使输入错误参数,也能通过查询 schema 快速自我纠正。这种设计减少了因 API 更新或参数变动导致的混淆,提高了系统的鲁棒性。通过字段限制功能,Agent 可以精准筛选所需的数据量,避免获取无关信息从而进一步节省 Token。此外,专门针对代理的“技能”提供了比常规 help 信息更深入的指导逻辑。

CLI 与 MCP 的对比及未来展望

作者对比了 CLI 和 MCP 两种模式的优劣,指出 MCP 在多步骤复杂链接和非终端环境下更具优势。然而,CLI 在 Token 节省、便携性和调试便捷度方面表现卓越,几乎可以运行在任何 Agent 框架中。视频中也坦诚分享了遇到的一些问题,如认证重定向中的端口错误以及 Token 刷新失效的 bug。尽管存在这些初期的不完善,gwscli 在 GitHub 上的极高热度足以证明开发者对其的高度期待。最后,作者通过介绍 Electrobun 项目,鼓励观众探索更多提升效率的开发者工具。

Community Posts

View all posts