openclaw path

通过 oc:// 寻址方案检查和编辑工作区文件(markdown、jsonc、jsonl)的 CLI 工具。

由内置可选插件 oc-path 提供,使用前需启用:

openclaw plugins enable oc-path

核心价值

OpenClaw 状态分散在人工编辑的 markdown、注释 JSONC 配置和追加式 JSONL 日志中。openclaw path 提供稳定的地址方案,避免为每种文件格式编写一次性解析器。

子命令

子命令说明
resolve <oc-path>读取路径处的单个值(不支持通配符)
find <pattern>枚举通配符/联合/谓词路径的所有匹配
set <oc-path> <value>写入叶节点,支持 --dry-run
validate <oc-path>仅解析,打印结构分解(不访问文件系统)
emit <file>文件往返解析/输出(字节保真诊断)

全局 flags

Flag说明
--cwd <dir>解析文件 slot 的目录(默认 process.cwd())
--file <path>覆盖文件 slot 的解析路径(绝对访问)
--json强制 JSON 输出
--human强制人类可读输出
--dry-run(仅 set)打印将写入的字节,不实际写入

oc:// 语法

oc://FILE/SECTION/ITEM/FIELD?session=SCOPE

特殊语法:

  • 引号段 "a/b.c" — 保留 / 和 . 分隔符
  • 谓词 [k=v]、[k!=v]、[k<v] 等
  • 联合 {a,b,c} — 匹配任意一个
  • 通配符 *(单段)和 **(递归)— 仅 find 支持
  • 位置 $last — 最后一个索引/键
  • 序号 #N — 第 N 个匹配
  • 插入标记 +、+key、+nnn

按文件类型寻址

类型寻址模型
MarkdownH2 section(slug)、bullet item(slug 或 #N)、frontmatter via [frontmatter]
JSONC/JSON对象键和数组索引,点分隔嵌套子段(引号保护)
JSONL行地址(L1、L2、$last),行内 JSONC 风格下钻

常用示例

# 读取配置值
openclaw path resolve 'oc://config.jsonc/plugins/github/enabled'
 
# 预览写入(不实际修改)
openclaw path set 'oc://config.jsonc/plugins/slack/enabled' 'true' --dry-run
 
# 通配符搜索 JSONL
openclaw path find 'oc://session.jsonl/[event=action]/userId'
 
# 验证路径语法(不访问文件系统)
openclaw path validate 'oc://AGENTS.md/tools/$last/risk'
 
# 读取 markdown frontmatter
openclaw path resolve 'oc://AGENTS.md/[frontmatter]/name'
 
# 追加 JSONL 事件
openclaw path set 'oc://session.jsonl/+' '{"event":"checkpoint","ok":true}' --file ./logs/session.jsonl

退出码

码含义
0成功(resolve/find:至少一个匹配;set:写入成功)
1无匹配,或 set 被 substrate 拒绝
2参数或解析错误

注意事项

  • set 自动应用 redaction-sentinel 守卫,含 __OPENCLAW_REDACTED__ 的叶节点写入时被拒绝
  • JSONC 编辑通过 jsonc-parser 进行,保留注释和格式
  • path 不感知 LKG;如果文件被 LKG 追踪,下次 observe 调用决定是否 promote/recover

相关链接