Skip to content
雲里
里雾

Session 🌱 Seed

开发

aka: 会话, Session Management

Content

一段有状态的交互过程,在不同语境下含义不同,但核心都是”在无状态的基础设施上维护状态”:

Acceptance

(留空)

Question

  • Session 和 Connection 的本质区别是什么?为什么 HTTP 是无状态的却需要 session?
  • 在 AI Agent 场景下,session 承载的是”对话上下文”还是”身份认证”?和传统 Web session 的侧重点有何不同?
  • session 的生命周期管理(创建→活跃→过期→清理)和操作系统的进程管理有什么类比?

See Also

Reference

  • 来源:2026-03-20 Ghost-in-the-Shell cron 系统改造
  • 上下文:OpenClaw 的 main/isolated session 机制、session store 维护策略

YoYo’s Note

Session(会话):一段有状态的交互过程。

在不同语境下含义不同,但核心都是”在无状态的基础设施上维护状态”:

语境Session 是什么存储什么
Web(HTTP)服务器端的用户状态容器(Cookie/Session ID 关联)登录态、购物车、偏好
数据库一次连接的上下文事务、临时表、锁
终端/SSH一次 shell 交互环境变量、工作目录、进程组
AI Agent(OpenClaw)一段对话的完整上下文消息历史、工具调用记录、模型状态

AI Agent 场景的特殊性:

  • 传统 session 主要解决”认证”问题(你是谁),AI session 主要解决”记忆”问题(我们聊到哪了)
  • OpenClaw 的 isolated session 类似一次性函数调用,main session 类似长期运行的 REPL
  • Session 积累 = 上下文积累 = token 消耗,所以需要主动管理生命周期(不像 Web session 过期就过期,AI session 过期意味着丢失对话历史)

Answer

Q: Session vs Connection?
Connection 是传输层的物理链路(TCP 连接),Session 是应用层的逻辑状态。一个 session 可以跨多个 connection(比如你关了浏览器再打开,TCP 连接断了但 session 还在,因为有 Cookie)。HTTP 无状态 = 每个请求独立,服务器不记得上一个请求是谁发的。Session 就是在这个无状态协议上”假装有状态”的机制。

Q: AI Agent 的 session 承载什么?
主要是”对话上下文”(消息历史 + 工具调用记录),不是身份认证。传统 Web session 的核心问题是”你是谁”,AI session 的核心问题是”我们聊到哪了”。这也导致 AI session 比 Web session 重得多——一个 AI session 可能有几十万 token 的历史,而 Web session 通常只有几 KB 的状态。

分享这张卡片:
分享到 X

Session

#编程

反向链接