关于 remember
remember 是 OrchestKit 的一项技能,可将决策、模式和上下文记录到知识图谱,供后续会话使用。它支持分类、Agent 或项目范围,以及成功或失败标记;图谱存储需要另行配置 memory MCP 服务。
主要功能
- 01将决策和模式存入知识图谱
- 02自动分类或通过标记指定类别
- 03记录成功和失败结果
- 04按 Agent 或全局设定存储范围
- 05从文本提取实体与关系
适用场景
- 01为后续会话保留项目约定
- 02记录有效做法和反面模式
- 03保存特定 Agent 或跨项目的决策
MCP 相关
该技能通过另行配置的 memory MCP 服务提供的工具写入图谱数据,例如 `mcp__memory__create_entities` 和 `mcp__memory__create_relations`。OrchestKit 不包含此服务。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ yonatangross/ orchestkit --skill remember安装后在 Claude Code 中输入/remember确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
test-cases.jsonreferences/category-detection.mdconfirmation-templates.mdentity-extraction-workflow.mdexamples.mdgraph-operations.mdrules/_sections.mdduplicate-entity-detection.mdentity-relationship-validation.mdobservation-quality-gate.md详细介绍
Remember - 存储决策和模式
文件系统与 MCP memory(Opus 5.5 指南,CC 2.1.111+): Opus 5.5 能够在多会话工作中可靠地读取文件系统记忆。请善加利用:
- 短期交接状态(当前阶段、进行中的任务、待审批事项)→
.claude/chain/*.json文件。小巧、结构化、限定于会话。- 持久自动记忆(用户事实、反馈、项目约定)→
~/.claude/projects/<slug>/memory/*.md文件,并在MEMORY.md中添加一行索引。每次会话开始时读取。- 跨会话知识图谱(用于查询遍历的类型化实体及关系)→ MCP memory 服务(此技能的默认路径)。适用于未来会话需要搜索模式的情况。
三者相辅相成,并非互相替代。任何你想用 grep 搜索的内容都优先存入文件系统;任何你想遍历查询的内容都优先存入 MCP。
将重要决策、模式或上下文存储到知识图谱中,供未来会话使用。支持追踪成功/失败结果,以构建最佳实践库。
参数解析
TEXT = "$ARGUMENTS" # Full argument string, e.g., "We use cursor pagination"
FLAG = "$ARGUMENTS[0]" # First token — check for --success, --failed, --category, --agent
# Parse flags from $ARGUMENTS[0], $ARGUMENTS[1] etc. (CC 2.1.59 indexed access)
# Remaining tokens after flags = the text to remember
架构
remember 技能使用知识图谱作为存储:
- 知识图谱:通过
mcp__memory__create_entities和mcp__memory__create_relations存储实体和关系。这些工具来自 OrchestKit 未捆绑的memoryMCP 服务:请先在用户或项目范围内配置一个服务(例如@modelcontextprotocol/server-memory),然后使用claude mcp list确认。若未配置,此处的所有图谱步骤都不会执行任何操作。
优势:
- 配置好 memory 服务后,可免费本地使用
- 支持显式查询关系(例如“X 使用什么?”)
- 支持实体之间的交叉引用
- 不依赖云服务
自动提取实体:
- 将首字母大写的术语提取为潜在实体(PostgreSQL、React、pgvector)
- 检测 Agent 名称(database-engineer、backend-system-architect)
- 识别模式名称(cursor-pagination、connection-pooling)
- 识别“X 使用 Y”“X 推荐 Y”“X 需要 Y”等关系模式
用法
存储决策(默认)
remember <text>
remember --category <category> <text>
remember --success <text> # Mark as successful pattern
remember --failed <text> # Mark as anti-pattern
remember --success --category <category> <text>
# Agent-scoped memory
remember --agent <agent-id> <text> # Store in agent-specific scope
remember --global <text> # Store as cross-project best practice
标志
| 标志 | 行为 |
|---|---|
| (default) | 写入图谱 |
--success | 标记为成功模式 |
--failed | 标记为反模式 |
--category <cat> | 设置类别 |
--agent <agent-id> | 将记忆限定于特定 Agent |
--global | 作为跨项目最佳实践存储 |
类别
decision- 说明为何选择 X 而非 Y(默认)architecture- 系统设计和模式pattern- 代码约定和标准blocker- 已知问题和解决方法constraint- 限制和要求preference- 用户/团队偏好pagination- 分页策略database- 数据库模式authentication- 身份验证方法api- API 设计模式frontend- 前端模式performance- 性能优化
结果标志
--success- 效果良好的模式(正面结果)--failed- 导致问题的模式(反模式)
如果未提供任何标志,记忆将作为中性信息存储。
工作流
1. 解析输入
Check for --success flag → outcome: success
Check for --failed flag → outcome: failed
Check for --category <category> flag
Check for --agent <agent-id> flag → agent_id: "ork:{agent-id}"
Check for --global flag → use global user_id
Extract the text to remember
If no category specified, auto-detect from content
2. 自动检测类别
| 关键词 | 类别 |
|---|---|
| chose, decided, selected | decision |
| architecture, design, system | architecture |
| pattern, convention, style | pattern |
| blocked, issue, bug, workaround | blocker |
| must, cannot, required, constraint | constraint |
| pagination, cursor, offset, page | pagination |
| database, sql, postgres, query | database |
| auth, jwt, oauth, token, session | authentication |
| api, endpoint, rest, graphql | api |
| react, component, frontend, ui | frontend |
| performance, slow, fast, cache | performance |
3. 提取经验(针对反模式)
如果结果为“failed”,请查找:
- “should have”“instead use”“better to”
- 如果未找到,请提示用户:“应该改用什么做法?”
4-6. 提取实体并创建图谱
从文本中提取实体(Technology、Agent、Pattern、Project、AntiPattern),检测关系模式(“X uses Y”“chose X over Y”等),然后在知识图谱中创建实体和关系。
7. 确认类型和范围(AskUserQuestion — M118 #1466)
自动分类仅供参考。写入前,询问用户确认记忆类型和持久化范围。分类器置信度较高(≥0.9)时,将自动检测的类型预选为默认选项:
# Skip when the invocation already specifies type and scope:
# remember --type=preference --global → skip, use those values
# remember --session → skip, no persistence
#
# Otherwise, ask both:
AskUserQuestion(questions=[
{"question": "What type of memory?",
"header": "Type",
"options": [
{"label": "Preference", "description": "How I like to work (style, format, tooling)"},
{"label": "Project fact", "description": "State of THIS codebase (decisions, constraints)"},
{"label": "Reference", "description": "External system pointer (URL, doc, dashboard)"},
{"label": "Feedback", "description": "Correction to future behavior — applied as a rule"}
]},
{"question": "Apply to?",
"header": "Scope",
"options": [
{"label": "This project (default)", "description": "Scoped to .claude/projects/<this-project>/memory/"},
{"label": "All projects (global)", "description": "User-level memory at ~/.claude/memory/"},
{"label": "This session only", "description": "Print to context but don't persist"}
]}
])
默认选项规则:
- 如果自动检测的类别映射到 4 个类型选项之一,且置信度 ≥0.9,则预选该选项(用户仍可更改)。
- “此项目”始终是范围默认选项。
- 选择“仅限此会话”后会立即返回,不执行写入——适用于用户希望在对话中提出某项事实,但不将其保存的情况。
全局记忆写入会写入 ~/.claude/memory/<filename>.md,而不是项目本地记忆目录。无论选择哪个范围(项目级或用户级),都会更新 MEMORY.md 索引。
加载实体提取规则、类型分配、关系模式和图谱创建示例:Read("references/graph-operations.md")
7. 确认存储
使用适当的模板(成功、反模式或中性)显示确认信息,其中包含已创建的实体、关系和图谱统计数据。
加载输出模板和示例:Read("references/confirmation-templates.md")
基于文件的记忆更新
更新 .claude/memory/MEMORY.md 或项目记忆文件时:
- 优先使用 Edit,而不是 Write,以保留现有内容并避免覆盖
- 使用稳定的锚点行:
## Recent Decisions、## Patterns、## Preferences - 完整的 Edit 模式请参阅
memory技能中的“无需权限的文件操作”部分 - 这适用于调用方 Agent 的文件操作,不适用于上述知识图谱操作
参考资料
按需使用 Read("references/<file>") 加载:
| 文件 | 内容 |
|---|---|
category-detection.md | 记忆分类的自动检测规则(优先级顺序) |
graph-operations.md | 实体提取、类型分配、关系模式、图谱创建 |
confirmation-templates.md | 输出模板(成功、反模式、中性)和使用示例 |
相关技能
ork:memory- 搜索、加载、同步、可视化(读取操作)
错误处理
- 知识图谱不可用 → 显示配置说明
- 文本为空 → 询问用户提供内容;文本超过 2000 个字符 → 截断并提示
- 同时出现 --success 和 --failed → 请用户澄清
- 实体提取失败 → 创建通用 Decision 实体;关系创建失败 → 先创建实体,然后重试