关于 capture
供 Agent 使用的记忆捕获技能,通过 origin MCP 服务记录持久信息,并指导分类和实体锚定。
主要功能
- 01将记忆分为六种类型
- 02提取主要命名实体
- 03根据上下文推断主题和空间
- 04处理修订冲突信号
适用场景
- 01保存持久的用户偏好
- 02记录带理由的项目决策
- 03保存技术经验或更正
MCP 相关
通过 origin MCP 服务的 capture 工具保存完整自足的记忆,并提供实体和空间处理指引。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill capture安装后在 Claude Code 中输入/capture确认已加载。
详细介绍
/capture
在当下捕获一条记忆。主动动词:Agent 捕捉灵光一现的时刻,就像拍下一张照片。
如何调用
使用用户提供的内容作为一条完整、自成一体的陈述,调用 origin MCP 服务的 capture 工具。从当前工作目录或对话中附加 topic——不要让用户输入。
capture(content="<args, written as a full sentence with WHY>",
memory_type="<picked from the 6 types>",
entity="<primary entity name, if any>",
space=<inferred>)
memory_type — 由 Agent 从 6 种类型中选择
配置了本地模型或 API 密钥时,守护进程会进行分类。在本地记忆模式下不会,因此 Agent 需要根据内容自行选择类型。请使用以下映射:
| 类型 | 用途 |
|---|---|
identity | 关于用户的持久信息(角色、公司、语言偏好) |
preference | “我更喜欢 X,因为 Y”——一种习惯、纠正或风格选择 |
decision | “选择 A 而非 B,因为 C”——带有理由的具体选择 |
lesson | 找到根本原因、发现变通方法、获得技术见解 |
gotcha | 容易出问题的地方、出乎意料的行为、需要留意的事项 |
fact | 关于人物、项目、工具的持久信息——尽可能关联到 entity |
如果符合两种类型,请选择最能体现这条记忆为何重要的类型。决策也意味着偏好,但 decision 更具体。
entity — 提取锚点
选择内容中最重要的一个命名对象:人物、项目、工具或地点。使用其确切名称。例如:“Alice 更喜欢 TDD,因为……”→ entity="Alice"。如果内容没有命名锚点,则省略 entity。
topic / space 推断
- 当前工作目录位于某个仓库内 → 使用仓库名称(例如
~/Repos/origin/...→"origin")。 - 当前工作目录不在任何仓库内 → 使用对话中最近的话题,或省略。
- 范围已知时始终传入
space;如果不确定,可稍后运行list_spaces(post-PR-C),或省略。
多个实体或关系
MCP capture 工具只接受一个主要 entity。如需处理其他实体或关系,请使用专用的 MCP 工具。如果内容提到了多个实体,请先捕获这条记忆,然后针对每个额外实体:
create_entity(name="<entity>", entity_type="<person|project|tool|place>")
对于两个实体之间的关系:
create_relation(from_entity="<a>", to_entity="<b>", relation_type="<verb>")
如果守护进程带有 LLM,则跳过这些调用——其摄取后的增强流程会负责提取。
要捕获的内容
- 决策:“选择方案 A,因为 B”
- 偏好:“更喜欢 TDD,因为它能及早发现回归问题”
- 纠正:“其实是 C,不是 D”
- 身份 / 项目事实:“从事 Origin 的工作;Origin 是面向 AI 工具的本地记忆守护进程”
不要捕获的内容
- 系统提示词、启动日志、心跳
- 临时任务状态(“目前正在……”)
- 工具输出、命令结果、架构转储
- 单字确认
- 用户可以轻易重新推导出的信息(文件路径、近期 Git 历史)
原子化想法
一次捕获 = 一个想法。“更喜欢 TDD”和“使用 pytest”是两次捕获,而不是一次。
何时使用
- 用户明确说“记住这个”“保存那个”“捕获这个”。
- 用户主动表达持久偏好 / 决策 / 纠正(无需询问——这是最低要求,而非触发条件)。
何时不要使用
- 会话结束时批量存储 → 使用
/handoff(多条目批次)。 - 取回记忆 → 使用
/recall。
捕获后的矛盾信号
capture 返回后,检查 response.triggered_revisions 和 response.auto_superseded。
auto_superseded(无需操作)
如果 auto_superseded 不为空,守护进程已解决矛盾。请将其作为信息提示:
Note: auto-superseded mem_X. Origin replaced a prior protected memory because
trust=high and similarity > 0.9. No action needed.
无需调用接受 / 忽略操作。修订已自动应用。
triggered_revisions(需要人工审核)
如果 triggered_revisions 非空(且 auto_superseded 为空),向用户呈现内联区块:
Stored mem_new.
This capture topic-matches a protected memory now flagged for revision:
- mem_target_abc
Action: accept (replace original content) | dismiss (drop the revision) | leave (decide later)
内联动词映射:
- accept:
accept_revision(target_source_id="mem_target_abc") - dismiss:
dismiss_revision(target_source_id="mem_target_abc") - leave:不调用;会在下次
/brief中再次显示
从技术上说,两个字段在单次响应中都可以非空(存在多个受保护的匹配项),但实际上每次捕获只会触发其中一个:当 trust=full 且 similarity > 0.9 时,会触发 auto_superseded;否则会触发 triggered_revisions。
如果两个字段都为空,则此次捕获已成功存储,没有冲突。