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
- 对方找到 bot(你把句柄给他)。
- 他发一条消息 —— Telegram 一般是
/start。 - 网关创建一个被钉到该通道句柄的 guest user。
- 你(owner)来决定:留作 guest、把他链接到一条已存在的 user 记录(他是你认识的人)、或通过网关管理界面把他提升为 user,也可以让智能体调用
user_role_set。
支持的管理面在 第 14 章 · 管理成员。
Web
- 你把智能体 URL 分享出去。
- 他签入(如果智能体是 protected)或直接进入(如果是 public)。
- 创建一个 Web 身份 —— 流程和通道一样。
- owner 之后的选项也一样:留 guest、链接、提升。
12.4 邀请前 Owner 的检查清单
挨个过一遍:
- 访问级别定好了吗? Public、protected,还是 private。分享 URL 前先决定。见 第 13 章。
- 新身份的默认角色? 默认是 guest。如果你想要一个仅邀请可入的体验,把访问级别设为 private,逐个手动审批新身份。
- 工作区里有敏感文件吗? 工作区里的任何东西,凡是能跟智能体对话且有文件工具权限的人都能拿到。把敏感内容挪走,或加一条策略规则。见 第 10 章 和 第 15 章。
- MCP 凭证? GitHub、Slack 等的 token 是通过智能体的工具可达的 —— 任何被允许调用对应工具的人,都能以这些凭证行事。如果某个工具只该给 owner 用,上一条角色策略。
12.5 角色差异
| Owner | User | Guest | |
|---|---|---|---|
| 邀请他人 | ✓ | — | — |
| 把 guest 提升为 user | ✓ | — | — |
| 撤销访问 | ✓ | — | — |
只有 owner 能邀请与撤销。User 和 guest 能与智能体对话,但不能改变谁可以访问。
12.6 How-to 配方
12.6.1 通过 Telegram 把同事邀为 user
步骤
- 确保智能体已配好 Telegram 通道(见 第 17 章)。
- 把 bot 句柄发给他(例如
@my_agent_bot)。 - 等他发出第一条消息 —— 一个 guest 身份会被创建出来。
- 在管理界面的 Users 选项卡看最近的身份,或以 owner 让智能体列出用户。
- 在管理界面提升他,或以 owner 对智能体说:“把
<user-id>在main上提升为 user。”
验证 —— 他让智能体写一份文件;文件写成功(guest 写不了,user 可以)。
12.6.2 把智能体开放为公开 Web URL,guest 可访问
场景 —— 你要做一个公开 demo 智能体。
步骤
- 把访问级别设为 public(第 13 章)。
- 分享智能体的聊天 URL。
- 访客自动作为 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 指引
- 邀请之后管理访问 → 第 14 章 · 管理成员。
- 设置智能体的 public / protected / private → 第 13 章 · 访问级别。
- 在默认之外限制某角色能做的事 → 第 15 章 · 策略与审批。