📋 Sessions 配置节点的所有参数
Sessions 配置参数表
基础配置
| 参数路径 | 类型 | 默认值 | 说明 | 必需 |
|---|
session.scope | string | "per-sender" | 会话作用域(遗留字段) | 否 |
session.dmScope | string | "main" | DM 会话分组模式。可选值:main(所有 DM 共享主会话)、per-peer(按发送者隔离)、per-channel-peer(按渠道+发送者隔离,推荐)、per-account-channel-peer(按账户+渠道+发送者隔离,多账户推荐) | 否 |
session.mainKey | string | "main" | 主直接聊天会话的键名(遗留字段,运行时始终使用 "main") | 否 |
session.store | string | "~/.openclaw/agents/{agentId}/sessions/sessions.json" | 会话存储文件路径 | 否 |
会话管理
| 参数路径 | 类型 | 默认值 | 说明 | 必需 |
|---|
session.identityLinks | object | {} | 将规范 ID 映射到提供者前缀的对等 ID,用于跨渠道会话共享。格式:{ alice: ["telegram:123456789", "discord:987654321012345678"] } | 否 |
session.parentForkMaxTokens | number | 100000 | 创建分叉线程会话时允许的最大父会话 totalTokens。超过此值则启动新会话而非继承父会话历史。设为 0 禁用此限制 | 否 |
session.agentToAgent.maxPingPongTurns | number | 5 | 智能体间对话的最大来回轮数 | 否 |
重置策略配置
| 参数路径 | 类型 | 默认值 | 说明 | 必需 |
|---|
session.reset.mode | string | "daily" | 重置模式。可选值:daily(每日重置)、idle(空闲重置) | 否 |
session.reset.atHour | number | 4 | 每日重置的小时(本地时间,0-23) | 否 |
session.reset.idleMinutes | number | - | 空闲重置的分钟数。当同时配置 daily 和 idle 时,先到期的生效 | 否 |
session.resetByType | object | - | 按会话类型覆盖重置策略。支持 direct、group、thread 三种类型 | 否 |
session.resetByType.direct | object | - | 直接消息会话的重置策略覆盖 | 否 |
session.resetByType.group | object | - | 群组会话的重置策略覆盖 | 否 |
session.resetByType.thread | object | - | 线程会话的重置策略覆盖(Slack/Discord 线程、Telegram 主题等) | 否 |
session.resetByChannel | object | - | 按渠道覆盖重置策略。优先级高于 reset/resetByType | 否 |
session.resetTriggers | string[] | ["/new", "/reset"] | 触发会话重置的命令列表 | 否 |
维护与清理配置
| 参数路径 | 类型 | 默认值 | 说明 | 必需 |
|---|
session.maintenance.mode | string | "warn" | 维护模式。warn:仅报告警告;enforce:执行清理 | 否 |
session.maintenance.pruneAfter | string | "30d" | 过期条目的年龄截止时间(支持 d/h/m/s 后缀) | 否 |
session.maintenance.maxEntries | number | 500 | sessions.json 中最大条目数 | 否 |
session.maintenance.rotateBytes | string | "10mb" | 当 sessions.json 超过此大小时进行轮转 | 否 |
session.maintenance.resetArchiveRetention | string | "30d" | *.reset.<timestamp> 归档文件的保留时间。默认使用 pruneAfter 值;设为 false 禁用 | 否 |
session.maintenance.maxDiskBytes | string | - | 可选的会话目录磁盘预算上限。warn 模式下仅警告;enforce 模式下删除最旧的文件/会话 | 否 |
session.maintenance.highWaterBytes | string | - | 磁盘预算清理的目标值。默认为 maxDiskBytes 的 80% | 否 |
线程绑定配置
| 参数路径 | 类型 | 默认值 | 说明 | 必需 |
|---|
session.threadBindings.enabled | boolean | true | 线程绑定会话功能的主开关。提供者可覆盖(Discord 使用 channels.discord.threadBindings.enabled) | 否 |
session.threadBindings.idleHours | number | 24 | 不活动自动取消聚焦的小时数。0 禁用 | 否 |
session.threadBindings.maxAgeHours | number | 0 | 硬性最大存活时间(小时)。0 禁用 | 否 |
发送策略配置
| 参数路径 | 类型 | 默认值 | 说明 | 必需 |
|---|
session.sendPolicy.rules | array | [] | 发送策略规则列表。按 channel、chatType、keyPrefix 或 rawKeyPrefix 匹配,首个 deny 规则生效 | 否 |
session.sendPolicy.default | string | "allow" | 默认发送策略。可选值:allow、deny | 否 |
配置示例
{
session: {
scope: "per-sender",
dmScope: "main", // main | per-peer | per-channel-peer | per-account-channel-peer
identityLinks: {
alice: ["telegram:123456789", "discord:987654321012345678"],
},
reset: {
mode: "daily", // daily | idle
atHour: 4,
idleMinutes: 60,
},
resetByType: {
thread: { mode: "daily", atHour: 4 },
direct: { mode: "idle", idleMinutes: 240 },
group: { mode: "idle", idleMinutes: 120 },
},
resetByChannel: {
discord: { mode: "idle", idleMinutes: 10080 },
},
resetTriggers: ["/new", "/reset"],
store: "~/.openclaw/agents/{agentId}/sessions/sessions.json",
parentForkMaxTokens: 100000,
maintenance: {
mode: "warn", // warn | enforce
pruneAfter: "30d",
maxEntries: 500,
rotateBytes: "10mb",
resetArchiveRetention: "30d",
maxDiskBytes: "500mb",
highWaterBytes: "400mb",
},
threadBindings: {
enabled: true,
idleHours: 24,
maxAgeHours: 0,
},
mainKey: "main",
agentToAgent: { maxPingPongTurns: 5 },
sendPolicy: {
rules: [
{ action: "deny", match: { channel: "discord", chatType: "group" } },
{ action: "deny", match: { keyPrefix: "cron:" } },
],
default: "allow",
},
},
}
相关参数(位于其他配置节点)
以下参数与会话相关,但位于 agents.defaults 配置节点:
| 参数路径 | 类型 | 默认值 | 说明 | 必需 |
|---|
agents.defaults.contextPruning | object | - | 会话上下文修剪配置(修剪旧工具结果以减少 LLM 上下文膨胀) | 否 |
agents.defaults.contextPruning.mode | string | "off" | 修剪模式。可选值:off、cache-ttl | 否 |
agents.defaults.contextPruning.ttl | string | "5m" | 缓存 TTL,控制修剪频率 | 否 |
agents.defaults.contextPruning.keepLastAssistants | number | 3 | 保护的最后助手消息数量 | 否 |
agents.defaults.contextPruning.softTrimRatio | number | 0.3 | 软修剪比例(字符基准) | 否 |
agents.defaults.contextPruning.hardClearRatio | number | 0.5 | 硬清除比例 | 否 |
CLI 命令
openclaw sessions — 列出存储的会话openclaw sessions --agent <id> — 指定智能体openclaw sessions --all-agents — 所有智能体openclaw sessions --active <minutes> — 筛选最近活跃的会话openclaw sessions --json — JSON 格式输出openclaw sessions cleanup --dry-run — 预览清理操作openclaw sessions cleanup --enforce — 强制执行清理
sessions 配置节点包含 28+ 个配置参数,涵盖基础配置、会话管理、重置策略、维护清理、线程绑定和发送策略六大类。
所有评论(0)