关于 obelisk
obelisk 是通过 obelisk CLI 检索本地编码 Agent 历史记录的技能。它指导 Agent 按范围搜索、核实会话证据,并整理历史结论与已保存记忆。
主要功能
- 01按范围检索历史记录
- 02搜索会话和消息
- 03查找并核验已保存记忆
- 04使用受限 JavaScript 查询
- 05基于证据整理结果
适用场景
- 01查找编码会话中的既往决策
- 02依据消息核验记忆中的结论
- 03回顾指定项目或时间段的工作
- 04编写简洁的历史记录摘要
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tommy0103/ obelisk-skill --skill obelisk安装后在 Claude Code 中输入/obelisk确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
package.jsonreferences/advanced-helpers.mdapi-reference.mdmemory-workflow.mdpitfalls.mdquery-patterns.mdrecap-patterns.mdrecap-writing.mdretrieval-semantics.mdschema.mdreferences/recap/overview.mdpattern1-cover.mdpattern2-thinking.mdpattern3-vibe.mdpattern4-workflow.mdpattern5-closing.mdwriting1-cover.mdwriting2-thinking.mdwriting3-vibe.mdwriting4-workflow.mdwriting5-closing.md详细介绍
obelisk
通过已安装的 obelisk CLI 检索本地编码 Agent 历史记录。
编写范围受限的 JS 查询,读取其 JSON 结果,然后依据证据作答。
检索工作流
- 选择范围最窄的项目、文件、会话、时间范围或主题。 编写查询前,先阅读下方匹配的参考内容。
- 通常从新任务开始时调用
overview({ limit: 6 });如果已有确切的会话 ID、消息 UUID 或绝对文件路径,则跳过初步了解。Overview 是导航图,不是证据。 - 使用
memories()回想之前的结论,并通过search()或限定范围的辅助函数对照会话证据进行核实。使用英文记忆查询词。 使用messages()展开选中的命中项,而不是加载整个会话。 - 在查询中进行分组、去重和投影。返回稳定 ID 和简短 片段;尽量将综合结果的 JSON 控制在约 10k–12k 个字符。
- 根据简洁的证据作答。若先前的记忆对答案有影响,请自然地说明。可以提议保存持久的新结论;写入记忆文件或更改记忆记录前,先等待批准。
将 is_invoking: true 视为当前会话,而不是独立的历史证据。普通对话证据使用可见的非元文本;
思考内容和工具输出具有不同的证据作用。查询这些内容或已被取代的分支前,请先阅读检索语义。
运行查询
使用唯一的临时目录,避免查询路径冲突:
qdir=$(mktemp -d /tmp/obq.XXXXXX 2>/dev/null || { d="/tmp/obq.$$.$RANDOM"; mkdir "$d"; echo "$d"; })
qfile="$qdir/query.mjs"
cat > "$qfile" <<'JS'
const hits = search('auth fix', { limit: 5 });
return hits.map(h => ({
session_id: h.session.id, uuid: h.message.uuid,
content_type: h.message.content_type,
snippet: h.message.text?.slice(0, 240),
}));
JS
obelisk --query "$qfile"
CLI 会在异步包装器中运行该文件;return 会输出 JSON。查询为只读,脚本内无法访问文件系统或网络。对于广泛的历史记录,请参考查询模式中的首轮检索示例进行调整,而不是使用这个简短的关键词示例。
快速进行关键词查找:
obelisk --search "keyword" --nonce "obq-<unique-token-you-invent>"
输入唯一的字面随机数:Shell 替换无法识别转录中的调用。查询文件的身份通过记录的路径或脚本内容解析。
最新索引与权限
必须成功调用 CLI:它会在检索前刷新 ~/.obelisk/obelisk.sqlite。刷新失败时,绝不要退而使用过时的只读索引。
如果命令因 ~/.obelisk 的写入权限错误而失败(例如
SQLITE_READONLY、EACCES 或 EPERM),请使用 sandbox_permissions: "require_escalated" 重新运行相同命令,或使用宿主环境提供的等效写入权限机制。如果无法访问或访问被拒绝,请停止并报告阻碍因素。直接读取 SQLite 或 JSONL 不能替代成功刷新索引。
选择辅助函数
默认的检索方式如下:
| 辅助函数 | 用途 |
|---|---|
overview | 了解项目和近期入口点。 |
sessions | 根据结构化筛选条件查找会话。 |
search | 按主题查找消息证据。 |
messages | 读取单条消息、限定范围的窗口或会话区间(CLI 0.3.0+)。 |
memories | 回想先前保存的结论。 |
summaries | 读取已记录的会话摘要。 |
sql | 执行其他辅助函数无法完成的联接或聚合。 |
专业辅助函数和旧版辅助函数仍可调用;需要时请阅读其 API 约定。依赖不确定的选项名称和行字段前,请先核实。
按任务加载参考资料
仅加载当前任务所需的参考资料。每份参考资料都说明了自己的约定或操作步骤;不要预加载整个目录。
| 执行此操作前 | 阅读 |
|---|---|
| 综合性总结、设计历史、进度摘要、常规周报/月报,或用户做过、学到、决定、尝试或放弃的事情 | 查询模式和检索语义。 |
| 有范围限制的项目/文件/会话搜索、多步骤检索、关联分析或证据分类 | 检索语义。 |
| 选择辅助工具选项、字段、分页方式或专用/旧版辅助工具 | API 参考;展开消息时,阅读 messages 约定。 |
| 编写原始 SQL | 执行前阅读架构。 |
| 保存、归档或更新记忆 | 写入文件或运行变更操作前阅读记忆工作流。 |
| 特定工作流的检索 | 高级辅助工具。 |
| 从错误中恢复,或解决 FTS、排序、行结构或原始记录方面的意外情况 | 常见问题。 |
显式使用 /obelisk recap ... | 首次查询前阅读回顾概述,然后按卡片逐项披露。 |
仅当 /obelisk 后的第一个词是 recap 时,才路由到回顾流程;常规周报/月报不会选择该流程。
经批准的记忆变更通过单独的变更入口在本地执行:
obelisk --attune /tmp/register-memory.mjs。先通过 --query 检索所需 ID;--attune 仅开放 remember() 和 forget()。