📋 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)