Skip to content

第十一章:多个入口怎样延续任务、区分身份 ​

你在电脑里把简报改成了两段短文,出门后从聊天软件发来“发刚才那份”。助手需要先弄清:谁发的消息、属于哪个助手配置、“刚才”指哪次会话,以及对方是否有发送权限。

接入更多渠道,并不会自动得到一个处处连通的“大脑”。如果路由太粗,私聊可能混入群聊;如果每个入口都另开状态,用户又会发现助手总在从头开始。

本章的产物是身份与会话对应表。它接续第七章的持久状态、第八章的偏好,也为后面的后台投递划定目标。

11.1 入口、助手配置和会话回答不同问题 ​

入口是与系统交换信息的方式。CLI 是命令行界面,用户在终端输入任务;桌面界面或聊天软件则通过另一种界面提出相同目标。网关 Gateway 是长期运行的连接和协调服务,可以接入消息平台,承担接收、路由和交付。

Profile 是助手的持久配置与数据归属。会话则组织一段交流历史。一个 Profile 可以有多个会话;同一运行能力也可以服务多个 Profile。它们的对应关系不能由一个显示名称概括。

概念回答的问题简报例子
入口与连接消息从哪里来、结果从哪里回去电脑界面或聊天平台账号
发送者与权限谁在请求、允许做什么本人可查看私人草稿,群成员未必可以
Profile使用哪套配置与持久材料个人简报助手或工作资料助手
会话延续哪一段历史本周简报与另一个研究话题
一次运行这次具体处理哪项要求把本周草稿改短

同一个人、同一个 Profile、同一个模型,都不足以单独证明应该延续同一会话。

11.2 一条消息怎样找到正确的状态 ​

把第二章的时序图放大到开头:入口先将平台消息整理成系统能处理的事件,再核对发送者与连接信息,按路由找到所属 Profile 和会话,接着组织输入并开始运行。结果也需要沿正确的目标交回去。

图 11-1 回到统一时序:路由决定这次运行接在哪段历史之后,不能等答案写完再猜接收对象。 点击图解可放大
左右滑动查看图解细节
目标从用户入口进入对应会话,再经过模型输入准备、调用、工具执行、记录与交付

图 11-1 回到统一时序:路由决定这次运行接在哪段历史之后,不能等答案写完再猜接收对象。

Hermes 的网关用平台适配器连接不同消息渠道。适配器处理各平台的消息和发送约定,核心运行尽量复用;但平台身份、聊天范围、线程等信息仍须保留,否则无法正确区分和返回任务。

会话路由策略有具体配置与入口差异。理解设计时,不需要背某个键的拼接格式,需要看它是否区分了本应分开的交流。如果群里的不同人必须共享上下文,路由方式与各自私聊隔离的需求就不同。

还要区分“接收进入队列”与“本轮已经开始”。同一会话内的输入需要有顺序、归属和状态;网关重启后,系统要知道哪些尚未开始,哪些已经处理。这与第七章的持久历史互相配合,却不等于所有排队消息都会在任何故障后自动重放。

11.3 为什么用 Profile 隔开持久材料 ​

在 Hermes 中,Profile 有各自的 home,也就是配置和资料的归属目录。模型配置、记忆、技能、会话、定时任务与网关状态等围绕相应归属组织。需要相互独立的助手,应当先区分这些持久材料。

图 11-2 教学示意:数据归属有助于避免混用;访问控制还需要执行环境与权限机制落实。 点击图解可放大
左右滑动查看图解细节
工作 Profile 与个人 Profile 分别持有配置、记忆和会话,共享运行能力但目录边界不等于操作系统沙箱

图 11-2 教学示意:数据归属有助于避免混用;访问控制还需要执行环境与权限机制落实。

假如工作助手和个人助手共用同一份精选记忆,双方都可能读取、更新对方的偏好。只给它们起不同昵称无法消除这种交叉。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 的定时任务是否启用,以及实际投递目标。隐藏通常属于界面呈现,不能据此推断任务暂停或运行进程退出。

下一章让任务在没有新消息时启动,检查触发、执行与投递怎样衔接。

社区学习手册 · 正文与原创图解 CC BY-SA 4.0 · 代码 MIT