Skip to content

第九章:不同入口怎样管理状态 ​

你在工作群里让 Hermes 写技术简报,又在私人终端里讨论旅行安排。两边可能使用同一套软件,却不应该因为“是同一个 Agent 产品”就把身份、记忆和权限混在一起。

本章把经常一起出现的几个名词拆开:它们分别描述入口、对话、持久状态和界面呈现。

9.1 入口、会话和持久身份不是一回事 ​

名称主要责任不应直接推导出的结论
CLI(命令行界面)接收终端输入并呈现结果开一个终端就等于新建了隔离身份
Gateway(消息网关)连接平台、适配消息、路由与管理会话所有经过网关的用户共享同一段历史
Session(会话)组织某段对话的历史与生命周期程序重启必然结束会话
Profile(配置档)组织一份持久配置及状态目录目录分开就有操作系统级安全隔离
Bot Mode bot把 Profile 呈现为可持续交互的具名 Bot它等同于临时委托产生的子 Agent

这些概念有联系,但不能互相替代。一次排查先确认“哪个入口、哪个 Profile、哪段 Session”,比直接说“AI 串台了”更容易找到问题。

9.2 Profile 把持久状态分开 ​

该版本的 Profile 是独立的 Hermes home,组织配置、凭据、记忆、技能、会话与定时任务等状态。可以分别服务工作和个人场景。

图 9-1 Profile 的状态边界示意。具体文件访问权限仍取决于运行用户、工具和执行环境。 点击图解可放大
左右滑动查看图解细节
工作与个人 Profile 分别保存配置、记忆和会话

图 9-1 Profile 的状态边界示意。具体文件访问权限仍取决于运行用户、工具和执行环境。

因此,工作 Profile 查不到个人偏好,可能恰好是预期的隔离结果;反过来,如果二者都允许工具访问同一个公共目录,文件层面仍可能发生交集。逻辑分区与资源访问要分别检查。

9.3 Bot Mode 提供持续的交互对象 ​

Hermes 的 Bot Mode 以 Profile 为基础,为 Bot 提供名字、呈现与长期对话入口。官方文档区分了普通 Profile、Bot Mode bot、平台消息 bot 和委托子 Agent。

尤其要看会话生命周期:Bot 的固定聊天与普通临时会话并非处处使用同样的重置规则。不能把普通会话里的“新建”操作,机械理解为所有 Bot 场景都会产生全新关系与历史。

这一点也与第六章相连:长期保留的同一会话和新会话加载记忆,是不同机制。谈“跨会话记忆有效”之前,要先确认是否真的跨过了会话边界。

9.4 同一个任务从多个入口继续,需要路由依据 ​

下面是教学示意:工作群发来“修改简报第二项”,系统需要识别群与发送者、选择目标会话,再把消息带到相应任务历史。如果只是把最近一份简报全局当作当前任务,就可能误改另一个用户的资料。

图 9-2 回到第二章的主线:会话选择发生在模型判断之前,是正确上下文的重要前提。 点击图解可放大
左右滑动查看图解细节
消息入口先经过会话与上下文,再进入核心行动

图 9-2 回到第二章的主线:会话选择发生在模型判断之前,是正确上下文的重要前提。

入口越多,认证、消息顺序、重复事件、会话选择与结果投递越需要明确规则。共享核心可以复用能力,但不能跳过这些入口责任。

不写代码的小练习 ​

为工作群与私人终端画一张入口、Profile、Session 的对应表。再单独列出可访问目录,检查“聊天分开”与“文件可接触范围”是否被错误地当成了同一边界。

本章要点 ​

  • 入口描述消息通道,会话描述一段历史,Profile 描述持久配置与状态。
  • Bot Mode、平台 bot 与临时子 Agent 不是同一个概念。
  • 会话延续、压缩和重新开始,需要按具体场景核对生命周期。
  • 状态目录隔离不等于文件、网络或操作系统权限隔离。

理解题 ​

1. 两个 Profile 的聊天记录分开,是否就能放心让它们处理同一个敏感目录?

不能只根据聊天隔离判断。还要看工具使用的系统身份、目录权限、执行后端与允许范围。Profile 首先组织 Hermes 状态,不自动构成所有资源的安全边界。

2. 为什么重启网关后仍然记得刚才的对话,不能直接证明持久记忆在起作用?

可能是同一会话历史从存储中恢复了。应区分完整会话恢复、精选记忆加载与历史检索,不能把所有延续行为都归到 MEMORY.md。

对照官方实现 ​

身份与状态确定后,任务还可以不依赖一条新的聊天消息来触发。

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