Integrations
Skills 接入
AI Editor

Skills 接入

Use editor skills, rules or workflows to turn Memaster into a repeatable memory process without requiring MCP.

SkillsRulesSDK / REST

MCP 适合把 Memaster 暴露为工具;Skills 接入则适合把“什么时候检索、什么时候写入、写入什么、如何过滤”固化为编辑器行为。 对支持 Skills、Rules、Workflows 或自定义脚本的 AI 编辑器来说,这是更轻量、更可控的接入方式。

Process memory把任务开始前检索、实现中复核、完成后写入变成固定流程。
No tool protocol required不要求编辑器支持 MCP,只要能运行脚本、读取规则或调用 SDK 即可。
Project scoped通过 project、area、source、memory_type 和 tags 控制召回范围。

Skills 和 MCP 的区别

方式适合场景工作方式
Skills编辑器支持 Skills、Rules、Workflows 或自定义脚本把记忆检索/写入流程写进技能说明,由 Agent 按流程调用 SDK、REST 或本地脚本
MCP编辑器支持 MCP 工具调用把 Memaster 封装为工具,由编辑器直接调用 memaster_searchmemaster_add 等工具
SDK / REST应用或脚本直接集成业务代码直接调用 Python/TypeScript SDK 或 HTTP API

两种方式可以同时使用:用 Skills 规定“何时检索和写入”,用 MCP 提供工具执行能力。没有 MCP 时,Skills 也可以通过 SDK 或 REST 完成同样的事情。

推荐流程

准备 API Key

打开 DashboardAPI Keys,创建 msk_xxx 形式的密钥。

选择执行方式

Skills 本身是流程说明,实际读写可以用三种方式完成:

  • Python SDK:from memaster import MemoryClient
  • TypeScript SDK:import { MemoryClient } from "memaster"
  • REST API:POST /memoriesPOST /search

定义 Skill 文件

把记忆策略写成编辑器可加载的 Skill、Rule 或 Workflow,例如 memaster-memory

在任务中触发

让 Agent 在复杂任务开始前先检索,在完成后只保存稳定、可复用、无敏感信息的结论。

写入内容格式

通过 Skill / SDK / REST 写入 Memaster 的 content / text / messages[*].content 必须是一段整理过的纯文本编号列表,禁止写入对话原文、堆栈或未整理段落。

格式约定:

  1. 首行是主题句,名词短语或一句完整描述,可在末尾用括号补充范围或前提,以「:」结尾。
  2. 正文使用 1) 2) 3) 编号;嵌套要点用 a. b. c.
  3. 不要使用 1. 有序列表、- 列表项、**加粗**> 引用 等 markdown 装饰。
  4. 段与段之间留空行;同一段内可以是多句话或带嵌套编号的小节。
  5. 必须保留专有名词、版本号、路径、命令、API 名、数字、URL。
  6. 整体长度建议小于 2000 字符。结尾可用「适用范围:」或「备注:」做总结。
  7. 严禁写入密钥、token、密码、cookie、证书、原始 .env 值或敏感 PII。

好示例:

Memaster dashboard 包管理器约定:
1) server-golang/dashboard 默认使用 pnpm,禁止 npm 或 yarn。
2) 安装依赖必须执行 pnpm install --frozen-lockfile。

备注:CI 在 .github/workflows/dashboard.yml 校验 lockfile 一致性。

Skill 设计原则

一个好的 Memaster Skill 应该包含四个阶段:

阶段目标推荐动作
Start获取上下文检索用户偏好、项目事实、历史调试记录
During降低误改风险修改核心逻辑前再次检索相关实现和决策
Error处理不确定性遇到错误先检索历史修复和约束,不要凭空猜测
Finish沉淀经验保存已验证结论、架构决策、组件关系和调试结果

通用 Skill 模板

以下模板可放入支持 Skills 的编辑器,也可以改写为 Cursor Rules、Claude Code Skill 或团队工作流。

memaster-memory/SKILL.md
---
description: Use Memaster as long-term project memory before, during and after coding tasks.
---
 
# Memaster Memory Skill
 
## When to use
 
Use this skill for coding tasks, debugging, refactors, architecture decisions and documentation changes.
 
## Before starting
 
1. Search Memaster for global user preferences.
2. Search Memaster for project facts related to the task.
3. Search Memaster for project-specific preferences when the task affects style, architecture or workflow.
4. Apply retrieved memories only when they are relevant to the current task.
 
## During implementation
 
1. Before creating files, search for file structure and naming patterns.
2. Before writing important functions, search for similar implementations.
3. Before making architecture decisions, search for previous decisions and user preferences.
4. When stuck or debugging, search for related errors and fixes before guessing.
 
## Before finishing
 
1. Save stable implementation details, component relationships, debugging conclusions or user preferences.
2. Do not save secrets, API keys, tokens, private keys or raw `.env` values.
3. Include project, area, source, memory_type and tags metadata.
4. Summarize what was validated.

官方 Skill 脚本方式

推荐直接使用 memaster-memory Skill 自带的 scripts/memaster_memory.py。它通过 REST API 访问 Memaster,不要求编辑器支持 MCP,并内置 doctor/search/add/list/get/update/delete 常用命令。

环境变量

.env.local
MEMASTER_API_KEY=msk_xxx
MEMASTER_BASE_URL=https://api.memaster.cn
MEMASTER_AGENT_ID=skills
MEMASTER_SOURCE=skills
MEMASTER_PROJECT=my-project
MEMASTER_AREA=backend
MEMASTER_SCOPE=memory-workflow
MEMASTER_INFER=false
MEMASTER_TOP_K=5
MEMASTER_TIMEOUT_SECONDS=20

MEMASTER_USER_ID 不再默认自动应用。Memaster REST API 已按 API Key 所属账号隔离;只有需要进一步限定终端用户时,才显式传 --user-id

常用命令

python3 scripts/memaster_memory.py doctor
 
python3 scripts/memaster_memory.py search \
  --query "当前任务相关的项目规则是什么?" \
  --project "my-project" \
  --source "skills" \
  --top-k 5
 
python3 scripts/memaster_memory.py add \
  --title "Memaster dashboard 包管理器" \
  --memory-type project_info \
  --project "my-project" \
  --area "dashboard" \
  --scope "package-manager" \
  --tags "项目,规范,包管理" \
  --no-infer \
  --content $'Memaster dashboard 包管理器约定:\n1) server-golang/dashboard 默认使用 pnpm,禁止 npm 或 yarn。\n2) 安装依赖必须执行 pnpm install --frozen-lockfile。'
 
python3 scripts/memaster_memory.py list \
  --project "my-project" \
  --source "skills"
 
python3 scripts/memaster_memory.py get --memory-id "memory-id"
 
python3 scripts/memaster_memory.py update \
  --memory-id "memory-id" \
  --project "my-project" \
  --area "docs" \
  --tags "更新,文档" \
  --content $'更新后的主题:\n1) 新事实 1\n2) 新事实 2'
 
python3 scripts/memaster_memory.py delete \
  --memory-id "memory-id" \
  --yes

过滤能力

searchlist 支持按结构化字段过滤:

python3 scripts/memaster_memory.py search \
  --query "支付回调之前怎么处理?" \
  --project "memaster" \
  --area "server-golang/pricing" \
  --source "skills" \
  --memory-type debug \
  --tags "支付,调试" \
  --filters '{"scope":"payment-callback"}'

delete 是破坏性操作,必须带 --yes 才会执行。

scripts/memaster_memory.py
import os
import sys
from memaster import MemoryClient
 
client = MemoryClient(
    api_key=os.environ["MEMASTER_API_KEY"],
    base_url=os.getenv("MEMASTER_BASE_URL", "https://api.memaster.cn"),
    timeout=float(os.getenv("MEMASTER_TIMEOUT_SECONDS", "60")),
)
 
command = sys.argv[1]
 
if command == "search":
    result = client.search(
        query=sys.argv[2],
        agent_id=os.getenv("MEMASTER_AGENT_ID", "skills"),
        top_k=int(os.getenv("MEMASTER_TOP_K", "5")),
        filters={
            "project": os.getenv("MEMASTER_PROJECT", ""),
            "source": os.getenv("MEMASTER_SOURCE", "skills"),
        },
    )
    print(result)
 
if command == "add":
    result = client.add(
        agent_id=os.getenv("MEMASTER_AGENT_ID", "skills"),
        infer=os.getenv("MEMASTER_INFER", "").lower() in {"1", "true", "yes", "on"},
        messages=[{"role": "user", "content": sys.argv[2]}],
        metadata={
            "project": os.getenv("MEMASTER_PROJECT", ""),
            "area": os.getenv("MEMASTER_AREA", ""),
            "source": os.getenv("MEMASTER_SOURCE", "skills"),
            "memory_type": os.getenv("MEMASTER_MEMORY_TYPE", "project_info"),
        },
    )
    print(result)

MEMASTER_INFER=true 写入 Skill 的环境变量后,add 会请求服务端先抽取稳定记忆并去重;如果启用该能力,建议同时增大 MEMASTER_TIMEOUT_SECONDS,因为 LLM 抽取通常比普通写入耗时更长。

编辑器配置示例

Claude Code Skill

复杂编码任务开始前,使用 Memaster Skill 检索项目事实、用户偏好和历史调试结论。任务完成后,只把稳定、已验证且不包含密钥的结论写入 Memaster。

Cursor Rules

.cursor/rules/memaster-memory.mdc
复杂任务开始前,先通过 Memaster 检索项目事实、用户偏好和历史调试记录。修改核心逻辑前再次检索相关实现模式。任务完成后,保存稳定结论、验证命令和架构决策;不要保存 API Key、Token、私钥或 `.env` 真实值。

OpenClaw Skills

OpenClaw 官方插件已经内置 Triage、Recall、Dream 和 Agent Tools。需要更细的领域行为时,可在插件配置中调整 skills.domainrecall.tokenBudgetkeywordSearchidentityAlwaysInclude

openclaw.json
{
  "plugins": {
    "entries": {
      "openclaw-memaster": {
        "config": {
          "skills": {
            "triage": { "enabled": true },
            "recall": { "enabled": true, "tokenBudget": 1500 },
            "dream": { "enabled": true },
            "domain": "coding"
          }
        }
      }
    }
  }
}

metadata 建议

字段示例说明
projectmemaster仓库或产品名
areaserver-golang/docs文件或模块区域
scopeai-editor-integrations主题范围
sourceskills / cursor / claude-code来源
memory_typeimplementation / debug / user_preference记忆类型
tags["文档", "Skills", "编辑器"]标签

安全要求

  • 不保存 API Key、Token、私钥、密码。
  • 不保存 .env 文件中的真实值。
  • 不保存未经验证的猜测。
  • 保存用户偏好时要确保是明确偏好,而不是一次性上下文。
  • 写入前尽量附带 projectarea,避免跨项目召回。

验证接入

export MEMASTER_API_KEY="msk_xxx"
export MEMASTER_AGENT_ID="skills"
export MEMASTER_SOURCE="skills"
export MEMASTER_PROJECT="memaster"
export MEMASTER_AREA="docs"
 
python3 scripts/memaster_memory.py add \
  --title "Memaster dashboard 包管理器" \
  --memory-type project_info \
  --project "memaster" \
  --area "dashboard" \
  --tags "包管理,规范" \
  --no-infer \
  --content $'Memaster dashboard 包管理器约定:\n1) server-golang/dashboard 默认使用 pnpm,禁止 npm 或 yarn。\n2) 安装依赖必须执行 pnpm install --frozen-lockfile。'
 
python3 scripts/memaster_memory.py search \
  --query "这个项目默认使用什么包管理器?" \
  --project "memaster" \
  --source "skills" \
  --top-k 3

如果检索结果包含 pnpm,说明 Skills → SDK/REST → Memaster 的链路正常。完成测试后,可用 delete --memory-id <id> --yes 删除临时记忆。

下一步