Google Chat
在 Google Cloud 中创建 Google Chat 应用并连接到 AgentConnect,配置服务账号与 HTTPS 回调,让 Agent 回复私信和空间中的 @ 提及。
Google Chat 集成把 Agent 连接到你在自己的 Google Cloud 项目中创建的 Chat 应用,该应用以 Google Workspace 插件(add-on)形式构建。Google 只通过 HTTPS 回调投递应用的事件,没有 socket 模式,所以部署需要一个公开的回调地址。AgentConnect Cloud 已经提供。
创建应用
向导的开始之前一步列出了需要准备的东西:
- 一个能配置 Chat 应用的 Google Workspace 账号。
- 一个已启用 Google Chat API 的 Google Cloud 项目。
- 该项目已启用 Cloud Resource Manager API。AgentConnect 通过它读取项目编号。
- 同一项目中一个具有 Browser 角色的服务账号,以及它的 JSON 密钥。密钥必须在 Chat 应用自己的项目中创建;来自其他项目的密钥会被拒绝。
然后在 Google Cloud 控制台中打开 APIs & Services → Google Chat API → Configuration:
- 把应用构建为 Google Workspace 插件,这是新应用的默认选项。已有的 Chat 应用需要先转换,转换不可撤销。
- 设置应用的名称、头像和描述。
- 在 Functionality 下勾选 Receive 1:1 messages 和 Join spaces and group conversations。
- 在 Connection settings 下选择 HTTP endpoint URL,所有触发器使用同一个 URL,填入向导显示的值,即部署的公开回调源地址加上
/googlechat/events,例如https://relay.example.test/googlechat/events。 - 可选:在 Commands 下添加一个名为
/help的斜杠命令,描述填 "Show how to use this app",命令 ID 填1。任何未占用的 ID 都可以,AgentConnect 按名称匹配。之后可以在 Chat 里用/help查看应用的命令。 - 在 Visibility 下,选择 Workspace 域中可以使用该应用的人员和群组。私有应用不需要在 Marketplace 上架。
- 点击 Save。
连接
在你的 Agent 上,打开集成 → 添加集成 → Google Chat。粘贴服务账号密钥 JSON,向导会从中填入项目 ID。项目编号可以不填:AgentConnect 会自己查出来,填了则会核对。然后点击连接。
AgentConnect 会先向 Google 验证密钥,再保存;每次尝试之后都会清空密钥输入框。被拒绝时,提示会直接说明该怎么改:项目不对、密钥来自其他项目、Cloud Resource Manager API 未启用、缺少 Browser 角色,或 Chat API 尚未配置。
连接之后,向导会显示三个状态:
- 已保存——Google 已接受该密钥。
- 已连接——回调地址已生效,Agent 已在线。
- 已添加——该应用已在某个空间或私聊中。
然后测试一下:给应用发一条私信,或者把它添加到一个空间并 @ 提及它。
使用
- 私信——直接给应用发消息,每条消息都会送达 Agent。回复以流式方式送达,最后编辑成最终内容。
- 空间——把应用添加到空间并 @ 提及它。Agent 会在该消息所在的话题中回复。Google 只把提及了应用的空间消息投递给它,话题内的回复也是如此:没有提及应用的话题回复不会送达,Agent 也就无法回答。因此空间的触发条件只有 @ 提及、按决策和关闭,没有所有消息。
- 欢迎和帮助——应用被添加到空间或私聊时会先自我介绍。如果应用添加了
/help命令,输入/help并从 Chat 的命令列表中选中它,可以查看文字命令。 - 处理中——Agent 两秒内还没有任何输出时,应用会先发一条 "⏳ Working on it…",回答出来后替换它。如果 Agent 决定不回答,这条消息会被撤回,Google Chat 会显示有一条消息已被删除。
- 格式——Agent 的 Markdown 按 Google Chat 支持的子集渲染:粗体、斜体、删除线、行内代码、代码块、列表和链接。标题显示为粗体行,图片显示为链接,表格显示为等宽文本块。较长的回复会拆成多条消息。
- 提问——Agent 需要你输入时,会在对话里发一张卡片:每个选项一个按钮,或是一个带 Confirm 的简短表单。能看到卡片的人都可以回答,回答后卡片会显示结果。点 Dismiss 即拒绝回答。
- 审批——当工具调用需要批准时,Agent 会在线程中发布一张卡片,提供 Runtime 自己的选项。谁能回答它,由 Agent 的聊天中可以做什么决定。
当前版本不支持:双向的附件、对话框、群组私信、/help 以外的斜杠命令,以及表情回应。
关于停止、取消、排队以及更改支持的会话设置,参见对话内命令。
控制台中的可见性
与应用的私信只对发送者本人可见。发送者用同一个 Google 账号登录控制台,或在个人资料中关联了它之后,就能在控制台中打开;其他人都不能,组织所有者也不例外。空间中的对话对整个组织可见,无论空间里有谁。
说明
- 你自己的 Chat 应用绑定一个 Agent,一个 Google Cloud 项目只容纳一个 Chat 应用。删除集成会释放该应用以供复用(下次选择使用已有机器人)。
- 在集成 → 消息应用 → Google Chat 中粘贴新的服务账号密钥,即可轮换你自己应用的密钥。部署自带的 Chat 应用的密钥则在 Setup Server 中轮换。
- 应用所在的空间会列在该集成下。私聊在收到第一条消息后出现,以对方的名字命名。
自托管
自托管部署需要先配置好公开的回调地址,和 Linear 的要求一样。运维者还可以配置一个部署自带的 Chat 应用,通过各组织内置的 AgentConnect Agent 服务所有组织。