使用 sessions_history 为独立会话(cron jobs、子代理、事件处理器)提供主会话的完整对话上下文,运行低成本的后台任务。
上下文- 提醒代表团 : (aca "SmartBeat"). 问题: 孤立的会议(cron jobs, sub- agents) 看不到您的主要会话对话历史是一项面向实际任务的技能,主要用于它们很便宜( 使用 Haiku) , 但看不到上下文。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
问题: 独立会话(如 cron 任务、子代理)无法访问你的主会话对话历史。它们成本低廉(使用 Haiku),但对上下文完全不可见。
解决方案: 使用 sessions_history,让独立会话完整获知你在主聊天中发生的所有内容——成本仅为在主会话中全程运行的十分之一。
你希望每天生成一份报告,包含“昨晚我们完成了哪些工作”——但在主会话中用 Sonnet 运行该任务,单次成本约为 $0.30;若改用 Haiku 在独立会话中执行,则单次仅需约 $0.03,却无法访问对话历史。
解决方案: 独立会话首先查询主会话历史。
// 在你的 cron payload.message 中:
"1. 查询主会话历史:sessions_history('agent:main:telegram:direct:{userId}', limit=50)
2. 读取记忆文件:memory/YYYY-MM-DD.md
3. 获取奥斯汀 78721 地区天气
4. 综合以下内容生成报告:
- 最近对话要点
- 记忆文件摘要
- 当前天气状况
5. 通过 Telegram + 邮件发送"
成本: ~$0.03(使用 Haiku,比主会话中运行 Sonnet 便宜 10 倍)
上下文: 对夜间工作的完整感知
# 列出所有会话以定位主会话
sessions_list(limit=10)
# 典型主会话 key 格式:
# agent:main:telegram:direct:{userId}
# agent:main:main
// 在 cron 任务、子代理或事件处理器中:
sessions_history({
sessionKey: "agent:main:telegram:direct:8264585335",
limit: 50 // 最近 50 条消息
})
即使你处于独立会话中,该调用仍可返回主会话的完整对话历史。
你的独立会话现在具备:
晨间报告:
调度时间:每日上午 8 点 模型:Haiku(~$0.03/次) 任务:读取夜间工作进展、检查邮件、发送摘要 上下文:主会话最近 50 条消息
日终总结:
调度时间:每日晚上 9 点 模型:Haiku 任务:今日完成事项?待办事项有哪些? 上下文:今日全部对话记录
周期性状态检查:
调度时间:每两小时一次(上午 9 点至晚上 9 点) 模型:Haiku 任务:邮件/日历中是否存在紧急事项? 上下文:近期关于优先级的讨论
后台构建任务:
sessions_spawn({
task: "根据我们的讨论构建 AREF 产品页",
model: "haiku",
// 在任务 prompt 中:
// "首先查询主会话历史,了解我们关于 AREF 需求的讨论……"
})
研究类任务:
sessions_spawn({
task: "调研 Unreal Engine 集成模式。参考我们此前关于 AREF 目标的讨论。",
model: "haiku"
})
Webhook 到达 → 由独立会话处理:
// Webhook 载荷触发独立会话 // 会话逻辑: "1. 查询主会话:J 和我此前就该客户达成过哪些共识? 2. 基于该上下文处理 Webhook 3. 执行操作或发出通知"
| 方式 | 模型 | 上下文 | 单次成本 | 适用场景 |
|---|---|---|---|---|
| 主会话 | Sonnet | 完整 | ~$0.30 | 复杂交互式工作 |
| 独立会话(无上下文) | Haiku | 无 | ~$0.03 | 简单定时任务 |
| 上下文感知委托 | Haiku | 完整 | ~$0.03 | 需要上下文的后台任务 |
节省效果: 成本约为主会话的 1/10,同时保持同等上下文感知能力。
sessions_list({ kinds: ["main"], limit: 5 })
// 或:
sessions_list({ limit: 10 })
// 查找形如:agent:main:telegram:direct:{yourUserId} 的 key
建议从 50 开始,再根据实际需求调整。
最佳效果来自:
"1. sessions_history(limit=30) → 今日讨论内容 2. read memory/2026-02-13.md → 已记录的决策 3. 综合两个来源获取完整视图"
每日晨间报告的完整示例:
Cron 任务配置:
{
schedule: { kind: "cron", expr: "0 8 * * *", tz: "America/Chicago" },
sessionTarget: "isolated",
payload: {
kind: "agentTurn",
model: "haiku",
message: `生成晨间报告:
1. 查询主会话:sessions_history('agent:main:telegram:direct:8264585335', limit=50)
2. 读取昨日记忆文件:memory/YYYY-MM-DD.md
3. 获取天气:奥斯汀 78721
4. 检查邮件(gog 或 himalaya)
5. 检查今日日历事件
报告格式:
📍 WEATHER: [天气状况]
🌙 OVERNIGHT: [来自会话历史 — 我们夜间的工作内容]
📝 PERSISTENT NOTES: [来自记忆文件]
📧 EMAIL: [仅紧急邮件]
📅 CALENDAR: [今日日程]
🔗 DASHBOARD: [任务控制中心链接]
使用 message 工具发送至 Telegram。
注意:独立会话发送邮件需提供 SMTP 凭据;为保障可靠性,更推荐通过主会话心跳机制完成邮件投递。`
},
delivery: { mode: "announce", to: "8264585335", channel: "telegram" }
}
成本: $0.03/份($1/月)
上下文: 对夜间工作的完整感知
执行时机: 每日上午 8 点准时执行
历史记录截断:
sessions_history 返回内容有限(通常为最近 N 条消息)主会话必须已存在:
非实时性:
1. 编写优质记忆摘要
即便可访问会话历史,持久化的记忆文件仍是关键资产。切勿仅依赖对话历史。
2. 按需查询历史
limit=10 适用于快速获取上下文,limit=50 适用于较重任务,limit=100 适用于深度分析。
3. 高效链式调用工具
sessions_history → memory_get → web_search → message
先获取上下文,再执行动作。
4. 分工建模:Haiku 用于委托,Sonnet 用于决策
“会话历史为空”
sessions_list()limit 参数“内容被截断”
limit 值(消息数量越少,单条内容越完整)“独立会话无法发送消息”
message 工具,而非 sessions_senddelivery.mode,或直接调用 message 工具本模式由 RGBA Research 在 OpenClaw 优化工作中发现。
作为开放模式发布于 ClawHub,供社区使用。
联系: https://rgbaresearch.com
许可证: MIT(可免费使用、修改与分享)
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章