会话与并发工作
理解一个智能体如何在共享认知上维护多个会话,并让工作线彼此独立推进。
一个认知上下文拥有一份共享认知和多个会话。每个会话记录自己的输入输出、消息顺序、交付位置和注意状态,所有会话共同使用同一份智能体认知。
共享认知与会话边界
每条事件会记录来源会话,而普通回复只交付到当前求值的活动会话。事件进入认知上下文后,可以成为其他会话推理和召回的共享证据。
因此:
- 在会话 A 形成的认知帧可以被会话 B 使用;
- 会话 B 的新消息不会自动接管会话 A 正在等待的工具结果;
- 向另一会话发送可见消息需要明确路由,内部协调信号也必须指向具体会话。
有界会话工作集
每次模型请求只投影一组有界会话。当前会话始终优先;运行时还会从最近 24 小时内有活动记录的会话中选择最多 50 个,并按本轮上下文容量继续收窄。
每个会话在本轮只有三种结果:
- 完整投影:当前会话始终优先,其他近期会话可携带完整工作信息;
- 仅元数据投影:保留身份、状态和活跃工作,但不展开对话内容;
- 本轮排除:归档、退役、隔离、超出时间窗口、数量上限或容量预算的会话不进入编码。
本轮排除不等于删除。会话、事件和工作状态仍然持久存在。
会话退役与恢复
retire-session 让会话退出当前注意窗口,同时保留会话身份、历史事件和工作状态。
新的定向事件会确定性地恢复相应会话,使它重新进入可选工作集。智能体也可以通过 restore-session 显式恢复。会话注意状态与认知帧修改可以放在同一个上下文事务中提交。
线程隔离因果路径
会话是一段交互的边界,线程才是一项工作的因果路径。一个会话可以同时包含多条线程:
会话
├─ 线程 A:等待远程命令完成
├─ 线程 B:回答新的用户问题
└─ 线程 C:等待审批
工具结果、定时唤醒和审批决定只恢复与其因果身份匹配的线程。物理事件序列记录持久化先后,线程身份则决定事件属于哪条工作线。
并发写入共享认知
多个会话和线程可以同时针对同一认知上下文求值。运行时按上下文串行提交认知事务,并在精细语义边界上进行版本检查:互不相关的修改可以安全重放,真正冲突的修改会被拒绝并要求重新读取。
会话操作
morphz session list --context=context-default --format=json
morphz session show <session-id> --format=json
morphz session create --context=context-default
morphz session resume <session-id>
排查工作停滞时,应同时检查会话状态和线程、激活与目标中的持久依赖。