
问题现象 #
很多 AI 助手用户发现:晚上使用大模型时,响应速度明显变慢。
同一个问题,白天 2-3 秒回复,晚上可能要 8-10 秒。这是为什么?
经过分析,主要有以下 4 个原因:
原因分析 #
1️⃣ 服务端高峰期负载(最主要原因) #
时间重合: 晚上 19:00-23:00 是国内 AI 使用高峰
共享资源: 阿里云百炼、OpenAI 等 API 都是多租户共享,高峰期 GPU 资源紧张
排队等待: 请求队列变长,首 token 延迟增加
实测数据:
白天(10:00):首 token 延迟 50-100ms
晚上(21:00):首 token 延迟 150-300ms+2️⃣ 会话 Token 累积 #
问题机制: 每次对话,AI 都需要把完整历史上下文发送给大模型。
你问 → AI 回答
↓
历史对话加入上下文
↓
下次提问 → 带上全部历史(包括之前的长代码、长分析)
↓
发送给大模型 → 177k token 全部作为输入实际案例:
会话开始:0 token
3 轮对话后:50k token
10 轮对话后:177k token ← 响应明显变慢Token 分布示例:
04:49 问候 → ~100 token
09:51 查看任务 → ~2k token
09:52 备份脚本(完整代码) → ~50k token ← 脚本占大头
09:53 确认配置 → ~10k token
09:56 响应速度分析 → ~80k token ← 长分析占大头
09:58 记忆系统解释 → ~35k token
─────────────────────────────────────
总计输入:177k token3️⃣ 网络延迟 #
晚上公网拥堵,API 网关延迟增加:
- 白天:50-100ms
- 晚上:150-300ms+
4️⃣ 模型热度 #
热门模型(如 qwen3.5-plus、GPT-4)高峰期实例可能扩容不及时,冷启动需要重新加载模型。
优化方案 #
方案 A:会话分拆(最简单有效) #
适用场景: 长任务完成后
操作方法:
备份任务已完成 → "开个新会话" → 历史清零效果对比:
| 指标 | 清理前 | 清理后 | 改善 |
|---|---|---|---|
| 输入 Token | 177k | 71k | -60% |
| 上下文 | 32k | 36k | 基本持平 |
| 响应速度 | 慢 | 快 ✅ | 明显提升 |
71k 是什么? 启动时自动加载的记忆文件(MEMORY.md + 近三天记忆),这是"干净"的会话。
方案 B:自动压缩(需配置) #
原理: 当会话 token 超过阈值时,自动总结历史、释放上下文。
配置示例(openclaw.json):
{
"context": {
"compaction": {
"enabled": true,
"threshold": 50000, // 超过 50k token 自动压缩
"strategy": "summary"
}
}
}压缩策略:
summary:用 3k token 总结 50k token 历史truncate:直接截断,保留最近 N 条hybrid:混合策略
方案 C:引用式记忆(推荐) #
原理: 重要信息存文件,会话里只记引用。
脚本生成后 → AI 记录"已创建 /var/www/your-site/backup.sh"
→ 不保留完整代码在会话里
→ 需要时从文件读取优点:
- 会话 token 增长慢
- 信息持久化(跨会话)
- 可追溯、可搜索
方案 D:错峰使用 #
适用场景: 非紧急任务
策略:
- 复杂任务 → 上午 9:00-11:00
- 简单查询 → 随时
- 批量处理 → 凌晨或工作日白天
实战技巧 #
1. 识别 Token 累积信号 #
响应变慢(>5 秒)
↓
检查会话长度(>50 条消息)
↓
考虑清理或分拆2. 高效会话管理 #
好习惯:
✅ 一个会话一个主题
✅ 长任务完成后开新会话
✅ 重要信息让 AI 记到文件
✅ 定期清理旧会话坏习惯:
❌ 一个会话聊几天
❌ 跨多个项目混合讨论
❌ 不清理,token 累积到 200k+3. 提示词优化 #
减少 Token 消耗:
❌ "请详细解释一下这个概念,包括历史背景、应用场景、优缺点..."
✅ "解释 XXX 概念,3 句话"
❌ "帮我写一个完整的备份脚本,要包含错误处理、日志记录、定时任务..."
✅ "写备份脚本,核心功能即可"效果: 响应快 2-3 倍,Token 少 50-70%
4. 批量操作合并 #
❌ 分 5 次问:
"查看任务"
"设置备份"
"确认配置"
"分析速度"
"清理会话"
✅ 一次说完:
"设置备份任务,备份到本地,保留 30 天,完成后清理会话"记忆系统的作用 #
记忆系统解决的是"跨会话记忆"(下次启动还记得)
会话压缩解决的是"当前会话 token 量"(响应速度)
两个是互补的,不是替代关系。
示例工作流:
1. 备份任务配置 → AI 记到 memory/2026-03-14.md
2. 任务完成 → "开个新会话"
3. 新会话启动 → 自动读取记忆文件
4. AI 知道之前的配置 → 无需重复说明成本估算 #
Token 成本(以阿里云百炼为例) #
| 模型 | 输入价格 | 输出价格 | 177k 成本 |
|---|---|---|---|
| qwen3.5-plus | ¥0.002/k | ¥0.006/k | ¥0.35/次 |
| qwen3-max | ¥0.02/k | ¥0.06/k | ¥3.54/次 |
优化后(71k):
- qwen3.5-plus:¥0.14/次(省 60%)
- qwen3-max:¥1.42/次(省 60%)
时间成本 #
| 场景 | 响应时间 | 10 次对话 |
|---|---|---|
| 优化前(177k) | 8 秒 | 80 秒 |
| 优化后(71k) | 3 秒 | 30 秒 |
| 节省 | 62% | 50 秒 |
工具推荐 #
OpenClaw 会话管理 #
# 查看当前会话状态
openclaw status
# 输出示例:
# 🧮 Tokens: 177k in / 3.1k out
# 📚 Context: 32k/1.0m (3%)
# 🧹 Compactions: 0记忆系统配置 #
# 启动时自动加载
- MEMORY.md(长期记忆)
- memory/2026-03-12.md(昨天)
- memory/2026-03-13.md(前天)
- memory/2026-03-14.md(今天)监控脚本 #
#!/bin/bash
# check-session-token.sh
# 检查当前会话 token 使用量
RESPONSE=$(curl -s https://your-ai-api/status)
TOKENS=$(echo $RESPONSE | jq '.tokens.in')
if [ $TOKENS -gt 100000 ]; then
echo "⚠️ 警告:会话 token 已超过 100k,建议清理"
else
echo "✅ 会话 token 正常:$TOKENS"
fi总结 #
核心要点 #
- 晚上慢的主要原因:高峰期负载 + Token 累积
- 最简单的优化:长任务完成后开新会话
- 最彻底的方案:配置自动压缩 + 引用式记忆
- 最佳实践:一个会话一个主题,定期清理
行动清单 #
- 感觉响应慢时,检查会话 token 量
- 超过 100k token → 开新会话
- 重要信息让 AI 记到文件
- 配置自动压缩(可选)
- 错峰使用(复杂任务放白天)
下一步计划 #
- 配置自动 compaction
- 实现 Token 监控告警
- 优化记忆系统加载策略
- 研究模型缓存机制
Token 管理是大模型使用的核心技能。 掌握这些技巧,不仅省钱,更重要的是节省时间——毕竟,谁愿意对着转圈圈的界面发呆呢?