/export-trajectory 会将当前会话打包为一个已脱敏的支持包,涵盖:
- 发送给模型的提示词、系统提示词和工具
- 哪些对话消息和工具调用促成了答案
- 运行是否超时、中止、压缩,或遇到提供方错误
- 当时启用的是哪些模型、插件、技能和运行时设置
- 提供方返回的使用情况和提示缓存元数据
/diagnostics;它会收集
已净化的 Gateway 支持包,并且对于 OpenAI Codex harness 会话,在获得批准后还能向 OpenAI 发送 Codex
反馈。在你需要详细的、按会话划分的提示词、工具和对话时间线时,请使用 /export-trajectory。
快速开始
在当前活动会话中发送(别名/trajectory):
.openclaw/trajectory-exports/ 内解析。绝对路径和
~ 路径会被拒绝。
轨迹捆绑包可能包含提示词、模型消息、工具模式、工具
结果、运行时事件和本地路径,因此聊天命令始终会通过执行审批。
当你打算创建捆绑包时,只需批准一次导出;不要使用全部允许。
在群组聊天中,OpenClaw 会将审批提示和导出结果私下发送给所有者,
而不是把轨迹详情发布回共享房间。
对于本地检查或支持工作流,可直接运行底层 CLI 命令:
--output <path>(.openclaw/trajectory-exports 内的目录名)、--store <path>(会话存储覆盖)、--agent <id>(用于存储解析的 agent id)、--json(结构化输出)。
访问
轨迹导出是一个所有者命令。发送者必须通过正常的命令授权检查以及该频道的所有者检查。会记录什么
OpenClaw 代理运行默认开启轨迹捕获。 运行时事件包括:session.startedtrace.metadatacontext.compiledprompt.submittedmodel.fallback_step,包括源模型、下一个模型、失败原因/详情、链位置,以及链是否继续、成功或耗尽model.completedtrace.artifactssession.ended
支持包文件
manifest.json 列出了给定包中存在的文件;当会话未捕获相应的运行时数据时,某些文件会被省略。
捕获存储
运行时轨迹事件与会话一起存储在按代理划分的 SQLite 数据库中。导出轨迹时会生成一个经过脱敏处理的 JSONL 支持包;实时运行时捕获并不是会话旁边的 JSONL 侧车文件。 旧版.trajectory.jsonl 和 .trajectory-path.json 文件可能仍会
来自较早版本或显式的旧版文件导出。会话维护会将这些文件视为清理目标;活动捕获则写入数据库行。
禁用捕获
/export-trajectory 仍然可以导出会话分支,但仅运行时数据,例如已编译的上下文、提供方产物以及提示元数据,可能会缺失。
调整 flush 超时
OpenClaw 在代理清理期间会 flush 运行时轨迹行。默认 清理超时时间为 10,000 ms。在慢磁盘或大型存储上,请在启动 OpenClaw 之前设置OPENCLAW_TRAJECTORY_FLUSH_TIMEOUT_MS:
openclaw-trajectory-flush 超时并继续;它不会更改轨迹大小上限。要调整所有未传递显式超时的代理清理步骤,请设置
OPENCLAW_AGENT_CLEANUP_TIMEOUT_MS。
隐私和限制
轨迹捆绑包用于支持和调试,不用于公开发布。OpenClaw 在写入导出文件之前会对敏感值进行脱敏:- 凭据和已知的类秘密负载字段
- 图像数据
- 本地状态路径
- 工作区路径,会替换为
$WORKSPACE_DIR - 主页目录路径(如已检测到)
- 运行时捕获:实时捕获是一个滚动窗口,上限为 10 MiB,会丢弃最旧的事件以为新事件腾出空间;导出可接受现有的旧版运行时侧车文件,最大为 50 MiB
- 会话文件:50 MiB
- 每次导出的运行时事件:200,000
- 导出的事件总数:250,000
- 单个运行时事件行在超过 256 KiB 时会被截断
故障排查
如果导出没有运行时事件:- 确认 OpenClaw 启动时未设置
OPENCLAW_TRAJECTORY=0 - 在会话中再运行一条消息,然后重新导出
- 检查
manifest.json中的runtimeEventCount
- 使用像
bug-1234这样的相对名称 - 不要传入
/tmp/...或~/... - 将导出保留在
.openclaw/trajectory-exports/内