惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
MyScale Blog
MyScale Blog
M
MIT News - Artificial intelligence
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
The Blog of Author Tim Ferriss
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
C
Check Point Blog
Last Week in AI
Last Week in AI
F
Fortinet All Blogs
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
GbyAI
GbyAI
云风的 BLOG
云风的 BLOG

又耳笔记

用AI挣钱之AI建站:二维码生成器工具 用AI挣钱之AI建站:https://markdowntopdf.top Cloudflare Workers实战番外一:用Static Assets托管网站,告别传统方案 Cloudflare Workers实战(五):不止JavaScript,拥抱Python与Rust Cloudflare Workers实战(四):托管和分发静态文件 Cloudflare Workers实战(三):实现认证、重定向与缓存 Cloudflare Workers实战(二):动态修改后端响应 Cloudflare Workers实战(一):随心所欲操作客户端请求 Cloudflare workers不完全指南 使用n8n创作短篇小说 水果风波:信任的代价 用Python将PDF文件转换成图片 rust网络框架Pingora源码阅读3 rust网络框架Pingora源码阅读2 rust网络框架Pingora源码阅读1 Pingora快速入门教程1之总览 Rust模板引擎askama快速入门引擎 使用Loco快速搭建自己的后台系统 用Rust发一封图文并茂的邮件 Rust小项目: 写一个简单的恶意流量阻断器 Rust小项目: 写一个简单的网页爬虫 Rust命令行库Clap快速入门教程 Rust小项目:用Rust写一个端口扫描器 Rust真全栈开发快速入门 rust声明宏快速入门教程 Rust文本处理快速入门教程 RUST web框架axum快速入门教程6之测试 白嫖免费的Rust在线运行时shuttle RUST web框架axum快速入门教程5之中间件 用Rust来做以太坊开发5之事件日志及签名
小龙虾(OpenClaw)源码分析5:Session机制,如何保证上下文连续
About 又耳宁 关于技术与股票的一些零碎想法 · 2026-04-03 · via 又耳笔记

AI助手好不好用,关键不只是模型强不强,还得看“会不会记住该记的上下文”。
这一篇就专门聊Session

没有会话管理时,常见问题有:

  • 每次都像“失忆”,上下文断裂
  • 不同用户/群聊串线
  • 长会话越滚越大,成本和延迟失控

OpenClaw的做法是把会话当成一等公民:
既要连续,也要可控。

Session的核心职责

我把它总结成4条:

  1. 确定“这条消息属于哪个会话”
  2. 管理会话历史读写(持久化)
  3. 控制上下文窗口(压缩/重置)
  4. 暴露操作命令(如/new/reset/compact

session key到底怎么理解

最常见的理解方式:
session key = 会话身份,它通常由渠道、发送方、线程等因素组合而成。

这层设计好处是:

  • 同一用户对话可连续
  • 不同来源天然隔离
  • 便于后续按会话做队列和并发控制

前面我们看到队列文档里提到按session:<key>串行执行,其实就是这层在发挥作用。

历史存储不是细枝末节

OpenClaw里会话历史是可落盘的(JSONL思路),这件事很重要:

  • 进程重启后还能续上上下文
  • 可以做审计和排障
  • 为后续压缩策略提供输入

做AI系统时,别小看“日志化历史”,很多线上问题最后都靠它定位。

重置与压缩:不是可选项,是必选项

长期会话一定会遇到上下文膨胀。
因此OpenClaw给了两类机制:

  • 显式重置(/new/reset
  • 会话压缩(/compact

简单说就是:
该清空就清空,该提炼就提炼,不要无脑堆历史。

读源码时建议观察的点

你可以重点看下面这些问题:

  • session key在什么时候生成
  • 会话历史是在哪个阶段拼到模型上下文里
  • /reset触发后,哪些状态被清掉
  • 压缩后是否会保留关键事实(而不是全删)

这些问题比“某个函数叫什么”更重要。

小结

这一篇我们明确了:

  • Session是上下文连续性的核心基础设施
  • 需要在“连续性”和“资源可控”之间平衡
  • 会话机制和后续队列/并发策略是联动的

下一篇进入高频痛点:并发消息来了之后,OpenClaw怎么避免串台和打架。

参考链接