第十一章:多个入口怎样延续任务、区分身份
你在电脑里把简报改成了两段短文,出门后从聊天软件发来“发刚才那份”。助手需要先弄清:谁发的消息、属于哪个助手配置、“刚才”指哪次会话,以及对方是否有发送权限。
接入更多渠道,并不会自动得到一个处处连通的“大脑”。如果路由太粗,私聊可能混入群聊;如果每个入口都另开状态,用户又会发现助手总在从头开始。
本章的产物是身份与会话对应表。它接续第七章的持久状态、第八章的偏好,也为后面的后台投递划定目标。
11.1 入口、助手配置和会话回答不同问题
入口是与系统交换信息的方式。CLI 是命令行界面,用户在终端输入任务;桌面界面或聊天软件则通过另一种界面提出相同目标。网关 Gateway 是长期运行的连接和协调服务,可以接入消息平台,承担接收、路由和交付。
Profile 是助手的持久配置与数据归属。会话则组织一段交流历史。一个 Profile 可以有多个会话;同一运行能力也可以服务多个 Profile。它们的对应关系不能由一个显示名称概括。
| 概念 | 回答的问题 | 简报例子 |
|---|---|---|
| 入口与连接 | 消息从哪里来、结果从哪里回去 | 电脑界面或聊天平台账号 |
| 发送者与权限 | 谁在请求、允许做什么 | 本人可查看私人草稿,群成员未必可以 |
| Profile | 使用哪套配置与持久材料 | 个人简报助手或工作资料助手 |
| 会话 | 延续哪一段历史 | 本周简报与另一个研究话题 |
| 一次运行 | 这次具体处理哪项要求 | 把本周草稿改短 |
同一个人、同一个 Profile、同一个模型,都不足以单独证明应该延续同一会话。
11.2 一条消息怎样找到正确的状态
把第二章的时序图放大到开头:入口先将平台消息整理成系统能处理的事件,再核对发送者与连接信息,按路由找到所属 Profile 和会话,接着组织输入并开始运行。结果也需要沿正确的目标交回去。
Hermes 的网关用平台适配器连接不同消息渠道。适配器处理各平台的消息和发送约定,核心运行尽量复用;但平台身份、聊天范围、线程等信息仍须保留,否则无法正确区分和返回任务。
会话路由策略有具体配置与入口差异。理解设计时,不需要背某个键的拼接格式,需要看它是否区分了本应分开的交流。如果群里的不同人必须共享上下文,路由方式与各自私聊隔离的需求就不同。
还要区分“接收进入队列”与“本轮已经开始”。同一会话内的输入需要有顺序、归属和状态;网关重启后,系统要知道哪些尚未开始,哪些已经处理。这与第七章的持久历史互相配合,却不等于所有排队消息都会在任何故障后自动重放。
11.3 为什么用 Profile 隔开持久材料
在 Hermes 中,Profile 有各自的 home,也就是配置和资料的归属目录。模型配置、记忆、技能、会话、定时任务与网关状态等围绕相应归属组织。需要相互独立的助手,应当先区分这些持久材料。
假如工作助手和个人助手共用同一份精选记忆,双方都可能读取、更新对方的偏好。只给它们起不同昵称无法消除这种交叉。Profile 把归属显式化,使“哪个助手写了什么”更容易管理。
这不意味着每份材料在任何情况下都物理独享。外部记忆服务、共享资源或登录配置可能另有自己的共享规则。复制配置也未必是创建完全空白的助手:记忆、方法或外部服务设置可能随复制方式带入,历史与定时任务又可能采用不同规则。
因此,判断隔离程度要列出实际对象:是否共享记忆服务?能否访问同一工作目录?能否调用相同平台账号?Profile 的目录不同,不能代替这些检查。
11.4 Bot 为什么既像一个助手,又不是新的一层大脑
Bot 这个词容易混用。消息平台的 bot 是一个平台账号,凭据让网关以这个账号接收和发送消息。Hermes 桌面 Bot Mode 中的 Bot 则以 Profile 为基础,增加名字、头像、列表呈现与持续 Bot Chat 等交互方式。
同一个 Profile 仍可从命令行使用;不是每个 Profile 都必须出现在 Bot 名单里。一个平台账号也不能凭外观推断背后所有会话如何隔离。
持续 Bot Chat 强调长期对话关系,这会改变某些操作的含义。例如,在这种规范会话中,/new 可以被转为压缩当前上下文,而不是像普通会话那样新开一段历史。名称相同的按钮或命令,需要结合所在入口理解,不能只靠字面猜测。
这个设计让常用助手容易找回,也带来长期状态维护的责任:压缩不代表抹去所有历史,隐藏 Bot 也不意味着后台任务已停止。界面状态、会话状态与任务状态要分别确认。
11.5 “另一入口继续”应当明确继续什么
回到开头的“发刚才那份”。至少有三种合理方案。
第一种是延续同一规范会话。好处是历史完整,代价是所有允许接入的人可能面对同一上下文,授权与顺序管理更重要。
第二种是在独立会话中找回明确产物,例如“本周简报草稿第 2 版”。它不需要继承全部聊天,但产物必须有可定位的标识、归属和版本,不能只按“最近生成的文件”猜。
第三种是只共享偏好和方法,重新执行任务。这更容易保持会话隔离,却可能增加取材开销,而且不能冒充原草稿的原样继续。
这三种是设计选择,不是声明 Hermes 在任何入口都会自动采用其中某种。你需要按具体入口的会话行为和实际产物来判断。
| 教学场景 | 应明确的归属 | 含糊时的风险 |
|---|---|---|
| 本人私聊追问本周草稿 | 发送者、Profile、草稿标识与版本 | 错用上周内容 |
| 群成员要求转发“刚才那份” | 群身份、可见范围与投递授权 | 泄露私人材料 |
| 工作助手与个人助手同名 | 所在连接与 Profile | 选择错误配置或记忆 |
| Bot 隐藏后仍有例行任务 | 定时任务所属 Profile 与启用状态 | 以为界面隐藏就是停止执行 |
11.6 本章案例留下什么
为简报助手补一张任务卡:材料属于个人 Profile;本周草稿有明确标识;私人聊天与群聊不默认共享历史;只有本人可以批准向指定目标投递。换入口时先找产物与授权,再决定恢复历史还是另开运行。
这张卡是教学设计,不表示网站已经启动了这样的机器人。它的价值是让后续调度有明确的执行身份、状态与交付对象,不必每周依赖某个窗口刚好开着。
本章要点
- 入口、平台身份、Profile、会话和一次运行各有职责,不能互相代替。
- 网关接收与路由消息,平台适配器处理渠道差异;正确路由发生在组织模型输入之前。
- Profile 管理持久归属,隔离访问仍需核对文件、账号、外部服务与执行环境。
- 跨入口继续可以延续会话、取回产物或重新执行,要明确采用哪一种。
理解题
1. 电脑与聊天软件使用同一个模型,为什么助手仍不知道“刚才那份”?
模型相同不表示会话、Profile 或产物相同。先确认消息路由和归属,再看能否恢复原历史,或者按标识取回草稿;不能靠更换模型补上未带入的状态。
2. 给工作助手新建 Profile,能否断定它无法读取个人文件?
不能。Profile 把默认配置和材料分开,实际文件访问取决于执行权限、挂载目录和工具配置。若仍可访问同一文件系统,目录归属不是强制沙箱。
3. 用户隐藏了 Bot,却继续收到每周简报,最先检查什么?
检查该 Profile 的定时任务是否启用,以及实际投递目标。隐藏通常属于界面呈现,不能据此推断任务暂停或运行进程退出。
下一章让任务在没有新消息时启动,检查触发、执行与投递怎样衔接。