查看: 1|回复: 1

OpenClaw 使用 codex 额度 5.6 sol 长会话越跑越贵?我做了一个可验证的安全换代器

[复制链接]

1

主题

2

回帖

7

积分

新手上路

积分
7
发表于 2026-7-14 14:31:32 | 显示全部楼层 |阅读模式
大家好,我最近把自己在长期运行 OpenClaw 项目会话时遇到的一类问题,整理成了一个独立开源项目:OpenClaw Session Keeper。

项目地址:https://github.com/MoeAisaka/openclaw-session-keeper

它要解决的不是“怎么让模型多记住一点”,而是一个更具体的工程问题:

当一个 AI Agent 项目持续运行数十轮甚至数百轮,如何在上下文不断增长、请求成本进入长上下文加价区间之前,安全地换一代物理会话,同时保留稳定的项目入口、任务状态和用户手动选择的模型配置?

为什么需要它

长会话一开始很舒服:项目背景、历史决策和当前任务都在同一条上下文里。但随着轮次增长,会逐渐出现三个问题:

每一轮都要重复处理更长的输入上下文。 即使回答很短,请求成本也可能持续上升。

部分模型存在长上下文阶梯计费。 一旦单次请求越过阈值,输入和输出都可能按更高倍率计算。

直接重置会话很危险。 最近对话、工作流状态、模型选择或关键产物路径如果没有可靠交接,任务很容易“换代即失忆”。

手动复制一段摘要可以临时缓解,但它无法稳定回答这些问题:摘要是否完整?旧转录是否真的归档?新会话是否创建成功?模型和 Thinking 配置是否继承?如果中间一步失败,应该继续还是停止?

Session Keeper 把这件事做成了一条可验证、失败即停止的工程链路。

它是怎么工作的

OpenClaw 中可以把项目入口理解为两层:

sessionKey:稳定的项目入口;

sessionId:当前承载上下文的物理会话。

Session Keeper 保留稳定的 sessionKey,只在满足条件时轮换背后的物理 sessionId。完整流程是:

持续检查 Token 、物理会话年龄和空闲状态;

到达检查点后,提取有上限的近期可见对话、活动工作流和相关长期记忆;

备份完整转录,并计算 SHA-256 校验值;

只有在会话空闲、备份完成、记忆可用且所有校验通过时,才调用 OpenClaw Gateway 的正式接口重置物理会话;

回读并验证新的 sessionId,恢复用户手动选择的模型、Thinking 与 Fast 设置;

注入一条有幂等标记的可见续接通知,让操作者知道换代已经完成。

其中任何一步失败,换代都会停止,不会带着不完整状态继续向前。

它不是什么

Session Keeper 不是一个把所有历史“魔法压缩”进提示词的摘要器,也不会声称零损失继承全部上下文。

它采用的是更保守的策略:完整转录留在本地归档,新会话只恢复继续工作所需的有限上下文,并把文件和外部状态视为事实来源。 这样做牺牲了一部分无边界的聊天连续感,换来了可审计、可恢复和可验证。

Token 与阶梯计费效果

仓库内置了一个可配置、可复算的成本估算器。默认参考场景为:

连续 40 轮;

首轮输入上下文 48,000 Token ;

每轮上下文增加 8,000 Token ;

每轮输出 2,000 Token ;

已完成请求达到 235,000 总 Token 后换代;

换代后首轮输入恢复为 48,000 Token ;

冷启动按未缓存输入计费,不假设完美缓存。

结果如下:

指标
不使用 Keeper
使用 Keeper
差异

处理的总 Token
8,240,000
5,240,000
-36.4%

长上下文加价请求
11 次
0 次
-11 次

估算 Credits
264.65
169.50
-36.0%

物理会话换代
0 次
1 次
+1 次

这组数据是公开假设下的参考场景,不是所有工作负载都能节省 36% 的承诺,也不是实际账单。真实结果会受到系统提示词、工具 Schema 、缓存命中率、上下文增长速度、模型价格和换代时机影响。

你可以直接复算,也可以替换为自己的用量参数:

python3 cost_estimator.py
python3 cost_estimator.py --json

对于没有阶梯加价的模型,把长上下文倍率设为 1,仍可评估减少重复上下文带来的 Token 变化。

安全边界

这个工具不需要模型 Provider API Key ,配置文件也不应该保存任何 Key 。当前实现还包括:

运行中的会话绝不重置;

SQLite 运行态以只读方式访问;

外部命令使用参数数组调用,不经过 Shell 拼接,并设置超时;

状态文件采用原子写入并限制为当前用户可读;

转录副本写入后重新计算哈希;

提交与推送前执行自定义脱敏扫描和 gitleaks ;

GitHub Actions 使用只读权限,关键 Action 固定到完整提交 SHA ;

main 禁止强推和删除,合并前必须通过测试与秘密扫描。

当前公开主分支已通过 32 项自动化测试,GitHub CI 覆盖 Python 3.10 、3.12 和 3.13 。

快速开始

运行环境:Python 3.10+、OpenClaw 、nmem ;当前主要面向 macOS/Linux 等 POSIX 环境。

git clone https://github.com/MoeAisaka/openclaw-session-keeper.git
cd openclaw-session-keeper

mkdir -p "$HOME/.config/openclaw-session-keeper"
cp config.example.json "$HOME/.config/openclaw-session-keeper/config.json"
chmod 600 "$HOME/.config/openclaw-session-keeper/config.json"

# 先替换示例会话,再做只读演练
python3 session_rollover.py scan --dry-run

建议先用非关键会话验证 dry-run 、路径和阈值,再接入周期任务。生产环境不要直接照抄示例阈值,应根据模型上下文窗口、计费规则和自己的平均增长速度调整。

适合谁

长期使用 OpenClaw 项目会话的个人开发者;

需要让 AI Agent 跨多轮持续执行任务的团队;

使用长上下文或阶梯式计费模型,希望控制 Token 消耗的人;

需要保留用户手动模型选择,并在会话重置后继续工作的多模型环境。

项目仍处于早期版本,欢迎提交 Issue 、真实负载数据和兼容性反馈。如果你愿意,也可以用自己的会话增长参数跑一次成本估算,把结果和实际账单差异分享出来。
回复

使用道具 举报

6

主题

45

回帖

108

积分

注册会员

积分
108
发表于 2026-7-14 15:10:31 | 显示全部楼层
openclaw 配不上这么好的模型,我都是把 openclaw 和 hermes 当玩具的,配个国产模型 拉拉新闻,跑跑总结得了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
返回顶部