关于 pma-mem
pma-mem 是基于 Memos 的项目知识记录与检索技能,供 Agent 在实施任务前查询决策、发现和模式,并保存可复用知识。它要求按类型标记、写入前查重,并将相关条目建立关联。
主要功能
- 01通过 Memos API 查询与记录知识
- 02使用五种类型标签分类
- 03写入前按 topicHash 查重
- 04通过关系链接相关条目
- 05提供知识整理与同步流程
适用场景
- 01实施前查找已有决策和模式
- 02记录调试发现或技术选择
- 03保存并关联多个知识点
- 04整理重复或过时的备忘录
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ zzci/ skills --skill pma-mem安装后在 Claude Code 中输入/pma-mem确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/classification.mdstorage-api.mdknowledge-sync.md详细介绍
Knowledge Palace
捕获和检索项目知识。存储后端:Memos($MEMOS_URL、$MEMOS_TOKEN)。
常驻规则
- 执行任何操作前,确认
$MEMOS_URL和$MEMOS_TOKEN。如果缺少,请询问用户。 - 每条知识记录都必须有一个类型标签。
- 写入前,始终按 topicHash 检查是否存在重复项。
- 一条备忘 = 一个知识点。切勿将多个主题合并到一条备忘中。
- 相关知识点必须通过备忘关系(
REFERENCE)进行关联。 - 实施之前:先查询相关知识。检查是否存在适用于当前任务的已有决策、发现和模式。
何时查询
Agent 在以下情况下应查询知识库:
- 遇到错误或意外行为时:查询
#discovery+ 关键词 — 可能有人之前遇到过 - 做出技术选择时:查询
#decision+ 关键词 — 检查是否已有决策及其原因 - 实施某种模式时:查询
#pattern+ 关键词 — 复用经过验证的方法 - 验证假设时:查询
#fact+ 关键词 — 在此基础上构建之前先确认
知识类型
共 5 种类型,使用扁平标签,每条备忘恰好一个:
#fact · #event · #discovery · #decision · #pattern
其他标签可选且不受限制 — Agent 根据内容决定。
完整的分类规则、内容指南和质量检查:请参阅 references/classification.md。
备忘格式
## {title}
{content — preserve context and reasoning, not just the conclusion}
#fact
- 底部注释是元数据:
topicHash(去重键,取标题 md5 的前 8 个字符)+from:(知识来源,例如session、bkd/issueId、manual) - 标签放在内容正文中,而非元数据中
操作
写入
AUTH="Authorization: Bearer $MEMOS_TOKEN"
API="$MEMOS_URL/api/v1"
# 1. Check duplicate by topicHash
HASH=$(echo -n "Title here" | md5sum | cut -c1-8)
EXISTS=$(curl -s -H "$AUTH" \
"$API/memos?filter=content.contains(\"$HASH\")" \
| jq '.memos | length')
# 2. Create (if not exists)
curl -s -X POST -H "$AUTH" -H 'Content-Type: application/json' \
"$API/memos" \
-d '{"content":"## Title\n\nContent\n\n#fact\n\n","visibility":"PRIVATE"}' | jq
# 3. Update (if exists and changed)
curl -s -X PATCH -H "$AUTH" -H 'Content-Type: application/json' \
"$API/memos/{uid}?updateMask=content" \
-d '{"content":"...updated..."}' | jq
# 4. Link related memos
curl -s -X PATCH -H "$AUTH" -H 'Content-Type: application/json' \
"$API/memos/{uid}/relations" \
-d '{"relations":[{"relatedMemo":"memos/{otherUid}","type":"REFERENCE"}]}' | jq
查询
行动前使用查询检索知识。将内容返回到 Agent 上下文中。
# By type
curl -s -H "$AUTH" "$API/memos?filter=tag+in+[\"discovery\"]" \
| jq '.memos[]|{uid,snippet}'
# By type + keyword
curl -s -H "$AUTH" "$API/memos?filter=tag+in+[\"decision\"]" \
| jq '.memos[]|.content' | grep -i "keyword"
# Full-text search
curl -s -H "$AUTH" \
"$API/memos?filter=content.contains(\"keyword\")" \
| jq '.memos[]|{uid,snippet}'
# Get full content
curl -s -H "$AUTH" "$API/memos/{uid}" | jq '.content'
# Follow links
curl -s -H "$AUTH" "$API/memos/{uid}/relations" \
| jq '.relations[].relatedMemo'
捕获
在对话过程中,当用户说“记住这个”/“保存这个”/“存储这个”时, 或当 Agent 发现值得保留的知识时:
- 从当前对话中提取一个或多个知识点
- 为每个知识点分配类型和标签,并生成 topicHash
- 去重 → 创建/更新 → 如果有多个知识点,则进行关联
Agent 还应主动建议捕获以下内容:
- 通过调试确认的非显而易见的技术事实
- 权衡各种方案后做出的决策
- 实施过程中发现的注意事项或陷阱
- 效果良好的可复用模式或工作流
整理
按需进行:用户要求清理,或 Agent 在查询时发现备忘内容重叠。
- 加载一个标签组:
curl -s -H "$AUTH" "$API/memos?filter=tag+in+[\"auth\"]&pageSize=100" | jq - 检查是否存在近似重复、已被取代的事实或片段
- 合并为一条备忘,并归档原始备忘 — 详情请参阅
references/knowledge-sync.md
参考资料包
references/classification.md类型定义、内容指南、标签规则、质量检查和整理规则。references/storage-api.mdMemos REST API 参考(CRUD、筛选器、关系、分页、附件)。references/knowledge-sync.md自动同步工作流:扫描、提取、去重、增量更新和自动化指南。
快速路由
- 对知识进行分类或格式化:加载
references/classification.md。 - API 详细信息(updateMask、筛选器、错误代码):加载
references/storage-api.md。 - 从任务系统自动同步:加载
references/knowledge-sync.md。 - 简单捕获或查询:直接使用上述操作。
评论
支持 Markdown