ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Trellis Session Insight 技能深度解析:用 `trellis mem` 打通 AI 跨会话记忆检索

Trellis Session Insight 技能深度解析:用 `trellis mem` 打通 AI 跨会话记忆检索 桌面应用【免费下载链接】EcoPaste跨平台的剪贴板管理工具 | Cross-platform clipboard management tool项目地址https://gitcode.com/ayangweb/EcoPaste点击查看免费下载导读本文围绕 EcoPaste 仓库内.kiro/skills/trellis-session-insight/SKILL.md所定义的能力型技能展开它教会 AI 如何在正确时机调用trellis mem—— 一个本地化、只读的跨会话记忆检索 CLI用来索引并搜索历史 AI 对话日志。读完本文你将掌握trellis mem的全部子命令与标志位用法、判断该不该翻历史的触发模式与反模式以及拿到检索结果后如何在 PRD、spec、任务笔记之间做出正确的落盘决策。背景这套 Skill 在仓库中的位置本技能文件位于 .kiro/skills/trellis-session-insight/SKILL.md与其配套的还有两份权威参考文档references/cli-quick-reference.mdtrellis mem五个子命令的完整标志位速查表运行时trellis mem help输出与之相同是运行时之外的权威来源references/triggering-patterns.md中英文逐字触发短语清单按用户意图而非表面措辞分组。从设计定位上看这是一个能力型capability技能而非工作流型workflow技能。它没有固定的输出文件、没有强制写回步骤、没有finish-work 后必须运行的硬性规则。技能存在意义是让 AI 知道这个能力存在并在恰当的对话时刻自行判断是否启用、以及拿返回值做什么。trellis mem是什么trellis mem是一个本地 CLI用于索引用户在过往对话中产生的 AI 会话日志并提供列表、搜索、按 Trellis 任务边界切片、以及导出清洗后对话的能力。具体来说它直接读取各平台本地存储的 JSONL 文件平台日志存放路径Claude Code~/.claude/projects/Codex~/.codex/sessions/Pi Agent~/.pi/agent/sessions/OpenCode尚未支持索引provider 适配器待实现需要特别注意的是OpenCode 日志目前不可索引。当目标会话明显来自 OpenCode 时应直接向用户说明这一限制而不是猜测或编造覆盖能力。隐私与只读边界mem的所有读取都发生在本地任何内容都不会被上传。同时它对平台 JSONL 存储保持只读不推送、不同步到远端。什么时候该翻历史六类触发场景技能的判定标准可以概括为一句话一位资深同事会不会在回答前问一句我们之前是不是已经聊过这个—— 会问就该调mem。具体有六类可操作的场景头脑风暴重演风险Brainstorm rerun risk新任务触及用户此前涉足过的领域想在再次向用户提问前确认是否已有决策。眼熟的 Bug 调试Familiar-bug debugging当前 bug 模式与用户之前报告/修复过的相似拉取相关历史会话可能省下一整轮调试循环。跨会话续接Cross-session continuation用户隔了一段时间回来只说where were we / 继续上次的上下文完全隐式。决策检索Decision retrieval用户提到我们当时对 X 的决定但该决定存在于旧的头脑风暴对话中而不是任何prd.md或spec/文件里。收尾复盘Finish-work retrospective按需触发用户明确要求总结本次任务的决定/痛点/意外点——注意这是用户主动要求时才做不是每次 finish-work 的强制步骤。跨历史找规律Pattern-spotting across past work用户问我是不是老在 X 上犯同样的错需要跨会话搜索来回答。反过来如果以上场景都不适用就不要调用mem。它是一件工具不是一种仪式。什么时候不该翻历史四大禁区上下文已在手边相关信息已经出现在当前对话轮次、prd.md、design.md、最近的git log或已打开的文件中。mem是为已经掉出即时可及范围的信息准备的。问的是代码事实而非对话事实用户问的是代码里的某个事实时git log -p/grep/ 直接读文件更快也更权威。身处子代理中trellis-implement/trellis-check子代理的派发 prompt 已经包含了精选过的implement.jsonl/check.jsonl上下文此时叠加mem通常只会造成信息冗余。用户明确拒绝用户已经说了别翻历史直接回答我问的。references/triggering-patterns.md中还列举了五类反模式提问均不适用mem用户提问正确做法这个函数是干什么的读文件这个测试为什么挂读测试输出和源码我们代码库里 X 的正确模式是什么grep / 读 spec 文件Y 的最新 npm 版本是多少调用npm view修这个 bug。直接调试仅当怀疑有历史上下文时才用mem拿到mem返回值之后五种即时决策mem的输出应被当作原材料raw material而非交付物。拿到之后根据实时对话氛围决定处置方式在回复中内联引用某段具体的历史交流恰好能回答当前问题——引用时附带 session-id / phase便于用户自行核实。更新task/prd.md或task/design.mdmem挖出了某个本应落盘却没落盘的关键决策。先向用户展示拟议的修改。追加到任务本地笔记例如task/notes.md或扩展已有笔记文件——当发现属于当前任务记录、但又不适合放进 PRD 时。更新.trellis/spec/发现的是项目级通用约定或坑点时调用trellis-update-spec技能来做这件事——session-insight的职责止步于发现。仅仅吸收在接下来几轮对话中用更好的回答回报用户什么也不写。对一次性回忆来说这通常是最正确的选择。Trellis 不规定唯一的落盘目的地。把每一次回忆都强塞进固定文件只会让文件膨胀成噪音——让现场情况决定去向。这与仓库中其他记忆系统的分工互为补充.trellis/workspace/存跨会话的工作记录journal.trellis/tasks/存具体任务的需求与状态.trellis/spec/存需要长期遵守的工程约定详见 .kiro/skills/trellis-meta/references/local-architecture/workspace-memory.md。怎么调用五个子命令速查mem的 CLI 接口由五个子命令组成其中list是缺省子命令。完整的标志位参考见 references/cli-quick-reference.md子命令用途list列出会话。未指定子命令时的默认动作。search keyword查找内容匹配关键字的会话。context session-id钻入单个会话Top-N 命中轮次 周边上下文可与--grep组合做关键字锚定。extract session-id导出清洗后的对话可用--phase/--grep进行切片。projects列出活跃项目cwd及其会话数用于发现其他子命令该传哪个--cwd。最常见的 80% 用例就是下面这几条# 查找内容提到某关键字的会话默认按当前项目范围加 --global 搜索本机所有项目 trellis mem search keyword # 导出一个会话的对话可按 phase 或关键字过滤 trellis mem extract session-id --phase brainstorm trellis mem extract session-id --grep keyword # 钻入会话Top-N 命中轮次 周边上下文 trellis mem context session-id --turns 3 --around 2 # 还不知道 session id 时先从 list 过滤开始 trellis mem list --cwd project-path trellis mem projects # → 列出活跃项目 cwd再收窄范围标志位全景表在适用处mem支持以下标志含义以trellis mem help的运行时输出为最终权威标志适用子命令含义--platform claude\|codex\|opencode\|pi\|all全部默认all。OpenCode 适配器在0.6.0-beta.*上仍是 stub见下文注意事项。--since YYYY-MM-DDlist / search日期下界含当天。--until YYYY-MM-DDlist / search日期上界含当天。--globallist / search包含本机所有项目的会话。默认只搜当前项目cwd。--cwd pathlist / search强制指定项目 cwd而非从当前所在位置推断。--limit Nlist / search限制输出行数。默认50。--grep KWextract / context按关键字过滤轮次空白分隔的多 token 按 AND 语义处理。--phase brainstorm\|implement\|allextract按 Trellis 任务边界切片会话。brainstorm[task.py create, task.py start)区间implement 区间外的轮次。默认all。--turns Ncontext返回的命中轮次数。默认3。--around Ncontext每个命中点包含的周边轮次数。默认1。--max-chars Ncontext总字符预算。默认6000约 1500 tokens。--include-childrensearch / context将 OpenCode 子代理会话合并进其父会话。--json全部输出机器可解析的 JSON 而非人类可读文本。Phase 切片的原理--phase切片依赖会话 bash 调用记录中出现的task.py create与task.py start调用作为边界brainstorm区间是[task.py create, task.py start)implement区间是其余轮次默认all不做切片。在做当前任务的收尾复盘时--phase brainstorm可以恢复规划期的讨论--phase implement可以恢复执行循环。一个重要的限制如果用户在另一个终端AI 记录循环之外运行了task.py该会话将不存在 phase 边界此时--phase all是安全的回退。常用单行命令示例# 本机任何项目的历史会话里谁讨论过 deadlock trellis mem search deadlock --global --limit 20 # 在指定会话内部找出提到 lock contention 的 Top 5 轮次及其周边 2 轮上下文 trellis mem context 5842592d --grep lock contention --turns 5 --around 2 # 恢复某会话的 brainstorm 窗口——用户一周前启动的任务续接时很有用 trellis mem extract 5842592d --phase brainstorm # 列出本机所有有 Trellis 会话的项目及会话数 trellis mem projects注意context示例中的 session-id5842592d为占位示意实际使用时请先通过list/search/projects获取真实 id。输出形态人读与机读默认人类可读输出不加--json按终端宽度折行session id 高亮轮次标记可见。适合直接内联阅读但不适合粘贴进 markdown 文件。--json输出schema 稳定、可安全解析。当要把mem输出管道化到后续步骤例如为 Lessons 章节做摘要时优先使用--json。注意事项与已知边界参考文档明确列出了四类必须牢记的 caveatsOpenCode 适配器仍是 stub在0.6.0-beta.*版本上当--platform解析到 OpenCode或all且本应包含 OpenCode时mem会打印一行 reader unavailable 提示并继续处理其他平台。在适配器发布之前不要在回复中承诺 OpenCode 覆盖。Phase 边界依赖记录--phase切片依赖会话中记录的task.py create/task.py startbash 调用。从外部终端运行task.py的会话没有 phase 边界。索引直接基于平台 JSONL 文件如果用户清空了 Claude / Codex / Pi 的会话存储mem无法恢复已不在磁盘上的内容。只读无远端同步、不改动平台 JSONL。基于mem发现所做的任何写入都是你自己对编辑工具的后续调用。当这份参考不够用时在用户的 shell 中运行trellis mem help。运行时帮助是权威来源在快速迭代的 beta 版本中会比这份参考文档更新得更快。触发短语清单训练直觉的对照表references/triggering-patterns.md 提供了大量逐字用户短语中英双语按背后的意图而非表面措辞分组。技能建议用这些来校准直觉命中其中之一却没有想起mem很可能就是漏掉了一次明显的回忆。意图分组典型用户短语节选推荐调用路径旧方案回忆How did we solve this last time? / 上次怎么解的 / 我记得以前修过类似的search symptom keyword --global --limit 10再对最接近的命中context决策检索What was the decision on X? / 我们当时为啥选了 X 而不是 Y?search decision keyword定位会话再extract id --phase brainstorm恢复讨论跨会话续接Where were we? / 继续上次的 / 接着昨天那个任务list --task current-task-dir找最近会话再extract最后一个眼熟 Bug 调试Doesnt this look like that bug from last month? / 这个 bug 是不是上次那个?search error message fragment --global锚定错误字符串中短小而独特的 token自我模式识别Do I always make this mistake? / 我每次都踩这个坑吗?search topic --global --limit 50扫描日期/项目分布可选地extract两三个做对比收尾复盘按需Summarize what we did in this task. / 复盘下这个任务从.trellis/.runtime/sessions/*.json或mem list --task task-dir拿到当前任务 session id分别extract --phase brainstorm与--phase implement对收尾复盘场景技能还强调总结时应尽量附上具体的 file:line 引用是否把总结写入某处PRD、spec、笔记文件由用户决定——可以提议但不要自动写入。与其他技能的分工边界trellis-session-insight明确声明了自己的 Out of scope避免与其他技能职责混淆mem不编辑代码、不更新文件任何写回动作都是你在当下做出的判断。mem对平台 JSONL 存储只读不推送、不同步到远端。本技能不替代trellis-update-spec把发现提升为项目级指导是trellis-update-spec的职责见 .kiro/skills/trellis-update-spec/SKILL.md也替代不了平台原生的任务/spec 工作流。这条分工在整体架构上是自洽的从 .kiro/agents/trellis.json 可以看到主代理通过 hook 注入workflow-state面包屑来定位当前任务与阶段而mem解决的是历史对话里发生了什么从 .kiro/skills/trellis-finish-work/SKILL.md 可以看到会话收尾时会把工作记录写入 workspace journal——mem检索的正是这些跨会话的痕迹两者形成写入—检索的闭环。总结trellis mem是一把精心限界的记忆检索工具它只读、本地、索引三大主流平台的 AI 会话日志用五个子命令覆盖找会话、看上下文、导对话、列项目的完整检索路径。而trellis-session-insight这个能力型技能的价值在于教 AI克制地使用它——只在资深同事会问我们是不是聊过的时刻调用拿到结果后按现场情况决定是内联引用、补写 PRD、追加笔记、升级 spec 还是单纯吸收。判断力本身才是这个技能真正想传递的东西。赞分享桌面应用【免费下载链接】EcoPaste跨平台的剪贴板管理工具 | Cross-platform clipboard management tool项目地址https://gitcode.com/ayangweb/EcoPaste点击查看免费下载相关推荐跨会话记忆检索Trellis Session Insight 技能与 trellis mem CLI 完整实战指南跨会话记忆检索Trellis Session Insight 技能与 trellis mem CLI 完整实战指南 导读 Trellis 是当前仓库ayan桌面应用Trellis Session Insight 实战指南用 trellis mem 在跨会话间检索 AI 历史记忆Trellis Session Insight 实战指南用 trellis mem 在跨会话间检索 AI 历史记忆 trellis session insig桌面应用EcoPaste 仓库中的 Trellis Session Insight 技能trellis mem 跨会话记忆检索实战指南EcoPaste 仓库中的 Trellis Session Insight 技能 trellis mem 跨会话记忆检索实战指南 本指南以 .agents/s桌面应用上一篇FireLens日志路由AWS容器监控的终极解决方案下一篇vxrn中的A/B测试优化React Native应用的用户体验创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进