12. 邀请他人

共享一个智能体,意思就是让别人也能和它对话。机制是:决定他们的角色(user 或 guest —— owner 不是被邀请来的,他们拥有实例)、给他们一个触达智能体的方式(通道链接或 Web URL),让身份系统把他们在通道上的存在绑到一条存好的用户记录上。

本章是这套流程的实操指南。概念基础在 第 5 章 · 用户与身份


12.1 先定角色

  • User —— 你信任的、可以使用智能体完整读写工具的熟人。可以对话、上传文件、用启用了的技能、调用策略允许 user 用的 MCP 工具。
  • Guest —— 其他所有人。默认工具集被削减 —— 不能写文件、不能写记忆、不能 exec。适合面向公众的智能体、随手共享、演示。

你可以之后把 guest 升级为 user,所以拿不准时从 guest 起步。


12.2 三种触达方式

Web URL。 Web UI 有按智能体的聊天 URL。任何拿到 URL 的人都能进入一个会话,具体要看智能体的访问控制(public / protected / private —— 见 第 13 章)。

通道句柄。 如果你已经把 Telegram / Discord / Slack 接到智能体上,把 bot 的句柄发出去。某人发的第一条消息会创建一个 (channel, channel_user_id) 身份元组,默认是 guest。

CLI。 不算邀请路径 —— CLI 是给装好 hermit 且配置指向同一网关的 owner 与可信 user 用的。


12.3 各通道的邀请流程

Telegram / Discord / Slack

  1. 对方找到 bot(你把句柄给他)。
  2. 他发一条消息 —— Telegram 一般是 /start
  3. 网关创建一个被钉到该通道句柄的 guest user。
  4. 你(owner)来决定:留作 guest、把他链接到一条已存在的 user 记录(他是你认识的人)、或通过网关管理界面把他提升为 user,也可以让智能体调用 user_role_set

支持的管理面在 第 14 章 · 管理成员

Web

  1. 你把智能体 URL 分享出去。
  2. 他签入(如果智能体是 protected)或直接进入(如果是 public)。
  3. 创建一个 Web 身份 —— 流程和通道一样。
  4. owner 之后的选项也一样:留 guest、链接、提升。

12.4 邀请前 Owner 的检查清单

挨个过一遍:

  • 访问级别定好了吗? Public、protected,还是 private。分享 URL 前先决定。见 第 13 章
  • 新身份的默认角色? 默认是 guest。如果你想要一个仅邀请可入的体验,把访问级别设为 private,逐个手动审批新身份。
  • 工作区里有敏感文件吗? 工作区里的任何东西,凡是能跟智能体对话且有文件工具权限的人都能拿到。把敏感内容挪走,或加一条策略规则。见 第 10 章第 15 章
  • MCP 凭证? GitHub、Slack 等的 token 是通过智能体的工具可达的 —— 任何被允许调用对应工具的人,都能以这些凭证行事。如果某个工具只该给 owner 用,上一条角色策略。

12.5 角色差异

OwnerUserGuest
邀请他人
把 guest 提升为 user
撤销访问

只有 owner 能邀请与撤销。User 和 guest 能与智能体对话,但不能改变谁可以访问。


12.6 How-to 配方

12.6.1 通过 Telegram 把同事邀为 user

步骤

  1. 确保智能体已配好 Telegram 通道(见 第 17 章)。
  2. 把 bot 句柄发给他(例如 @my_agent_bot)。
  3. 等他发出第一条消息 —— 一个 guest 身份会被创建出来。
  4. 在管理界面的 Users 选项卡看最近的身份,或以 owner 让智能体列出用户。
  5. 在管理界面提升他,或以 owner 对智能体说:“把 <user-id>main 上提升为 user。”

验证 —— 他让智能体写一份文件;文件写成功(guest 写不了,user 可以)。


12.6.2 把智能体开放为公开 Web URL,guest 可访问

场景 —— 你要做一个公开 demo 智能体。

步骤

  1. 把访问级别设为 public(第 13 章)。
  2. 分享智能体的聊天 URL。
  3. 访客自动作为 guest 进入;你不需要再做什么。

常见问题 —— 公开智能体必须对触及你凭证或文件的工具有严格的策略。如果一个公开 guest 启用了 mcp_github,读取公开 issue 没问题;但如果你的 token 有写权限,他也能开 PR。给 guest 角色加一条 deny 写类工具的策略。见 第 15 章


12.6.3 撤销某人的访问

在管理界面把他降级,或以 owner 让智能体降级该用户。想彻底解除成员关系,用成员 API:DELETE /api/agents/<agent-id>/members/<user-id>

如果他再次接触智能体,会创建一个全新的 guest 身份(除非通道本身在运维层做了访问控制)。


12.7 FAQ

能发邮件邀请吗? 内置没有。通过你已经在用的渠道把 URL 或 bot 句柄发过去就行。

我需要一个邀请系统或注册流程吗? 不需要。身份在某人首次接触智能体时才懒创建。事后你来仲裁。

有人能在一个智能体上是 user、在另一个上是 guest 吗? 可以。角色按智能体划分。


12.8 指引