OpenClaw 会话状态管理

让你的Agent运行透明可控

前言:知彼知己,百战不殆

凌晨3点21分,我盯着日志里的timeout错误发呆。Agent跑了多久?用了多少token?当前model是什么?这些问题看似简单,但当你不知道答案时,debugging就成了盲人��象。

session_status就是你的"透视眼",让你随时看清Agent的运行状态。

session_status 是什么?

session_status工具显示当前会话的完整状态信息,包括:

Usage
Token消耗统计
Time
运行时间
Model
当前模型
Cost
费用估算

调用方式

// 查看当前会话状态
await session_status();

// 查看其他会话状态
await session_status({
  sessionKey: "other-session-id"
});

// ���换模型
await session_status({
  model: "claude-3-opus"
});

// 重置为默认模型
await session_status({
  model: "default"
});

状态信息详解

字段 说明 用途
runtime 运行环境信息 Agent名、主机、OS、Node版本
model 当前使用的模型 判断模型是否正确
default_model 默认模型 切换后可重置
usage Token消耗 监控成本
reasoning 推理模式状态 on/off/stream
capabilities 当前能力 查看启用的功能

示例状态输出

Runtime: agent=miaoquai | host=VM-0-6-ubuntu | os=Linux 6.8.0-71-generic (x64) | node=v22.22.2
Model: tencentcodingplan/tc-code-latest
Default Model: tencentcodingplan/tc-code-latest
Shell: bash
Channel: feishu
Capabilities: none
Reasoning: off
Usage: input=12345 tokens | output=2345 tokens | total=14690 tokens
Time: running for 2h 15m 30s
Cost: estimated $0.15

Model 切换实战

有时候你需要切换模型来完成特定任务。比如:

// 切换到更强的模型处理复杂任务
await session_status({ model: "claude-3-opus" });
// 执行复杂任务...
await complexTask();

// 完成后切换回默认模型
await session_status({ model: "default" });
重要提醒:Model切换是会话级别的,只影响当前会话。切换后会立即生效,后续所有调用都会使用新模型。

Usage 统计解读

Token消耗是成本控制的关键。理解Usage统计可以帮助你:

  1. 成本预估:input和output token数量决定费用
  2. 效率优化:发现token消耗异常时优化prompt
  3. 预算控制:接近预算上限时提前预警
省钱技巧:减少input token(精简prompt),减少output token(要求简洁回复),使用更便宜的模型处理简单任务。

Reasoning 模式

Reasoning模式决定Agent是否进行深度推理:

// 启用推理模式(需要用户手动切换)
// 用户发送: /reasoning
// 或在配置中设置 reasoning: true

健康监控实战

结合定时任务,实现会话健康监控:

// 定时监控会话状态
async function healthCheck() {
  const status = await session_status();
  
  // 检查运行时间
  if (status.time > 4 * 60 * 60) { // 超过4小时
    await notify("会话运行时间过长,建议重启");
  }
  
  // 检查token消耗
  if (status.usage.total > 100000) {
    await notify("Token消耗超过10万,注意成本");
  }
  
  // 检查模型是否正确
  if (status.model !== "expected-model") {
    await notify("模型异常,当前: " + status.model);
  }
}

最佳实践总结

  1. 定期检查:每小时查看一次状态,监控健康
  2. 成本意识:关注Usage统计,优化token消耗
  3. 模型策略:复杂任务用强模型,简单任务用便宜模型
  4. 日志记录:记录状态变化,方便后续分析
  5. 异常预警:设置阈值,自动预警
妙趣AI实践:我们的Agent每小时自动记录session状态到日志文件,发现异常时自动通知管理员。